global _Z8findfilePc
global main
extern exit
extern chdir
extern strcmp
extern stat
extern remove
extern strstr
extern readdir
extern opendir
extern getcwd
extern _GLOBAL_OFFSET_TABLE_
SECTION .text
_Z8findfilePc:
push rbp
mov rbp, rsp
sub rsp, 2240
mov qword [rbp-8B8H], rdi
lea rax, [rbp-820H]
mov esi, 2049
mov rdi, rax
call getcwd
test rax, rax
sete al
test al, al
jne ?_007
lea rdi, [rel ?_013]
call opendir
mov qword [rbp-8H], rax
cmp qword [rbp-8H], 0
je ?_008
?_001: mov rax, qword [rbp-8H]
mov rdi, rax
call readdir
mov qword [rbp-10H], rax
cmp qword [rbp-10H], 0
setne al
test al, al
je ?_009
mov rax, qword [rbp-10H]
add rax, 19
test rax, rax
jz ?_002
mov rax, qword [rbp-10H]
lea rdx, [rax+13H]
mov rax, qword [rbp-8B8H]
mov rsi, rax
mov rdi, rdx
call strstr
test rax, rax
jz ?_002
lea rdi, [rel ?_014]
call remove
?_002: mov rax, qword [rbp-10H]
lea rdx, [rax+13H]
lea rax, [rbp-8B0H]
mov rsi, rax
mov rdi, rdx
call stat
cmp eax, -1
sete al
test al, al
jne ?_003
mov rax, qword [rbp-10H]
add rax, 19
lea rsi, [rel ?_013]
mov rdi, rax
call strcmp
test eax, eax
je ?_004
mov rax, qword [rbp-10H]
add rax, 19
lea rsi, [rel ?_015]
mov rdi, rax
call strcmp
test eax, eax
jz ?_005
mov eax, dword [rbp-898H]
and eax, 0F000H
cmp eax, 16384
jne ?_001
mov rax, qword [rbp-10H]
add rax, 19
mov rdi, rax
call chdir
cmp eax, -1
sete al
test al, al
jnz ?_006
mov rax, qword [rbp-8B8H]
mov rdi, rax
call _Z8findfilePc
lea rdi, [rel ?_015]
call chdir
cmp eax, -1
sete al
test al, al
je ?_001
mov edi, 1
call exit
?_003: nop
jmp ?_001
?_004: nop
jmp ?_001
?_005: nop
jmp ?_001
?_006: nop
jmp ?_001
?_007: nop
jmp ?_009
?_008: nop
?_009: leave
ret
main:
push rbp
mov rbp, rsp
sub rsp, 176
mov dword [rbp-0A4H], edi
mov qword [rbp-0B0H], rsi
lea rax, [rel ?_016]
mov qword [rbp-8H], rax
lea rax, [rel ?_014]
mov qword [rbp-10H], rax
lea rdx, [rbp-0A0H]
mov rax, qword [rbp-8H]
mov rsi, rdx
mov rdi, rax
call stat
cmp eax, -1
sete al
test al, al
jz ?_010
mov edi, 1
call exit
?_010: mov eax, dword [rbp-88H]
and eax, 0F000H
cmp eax, 16384
jz ?_011
mov edi, 1
call exit
?_011: mov rax, qword [rbp-8H]
mov rdi, rax
call chdir
cmp eax, -1
sete al
test al, al
jz ?_012
mov edi, 1
call exit
?_012: mov rax, qword [rbp-10H]
mov rdi, rax
call _Z8findfilePc
mov eax, 0
leave
ret
SECTION .data
SECTION .bss
SECTION .rodata
?_013:
db 2EH, 00H
?_014:
db 69H, 6DH, 70H, 6FH, 72H, 74H, 61H, 6EH
db 74H, 2EH, 74H, 78H, 74H, 00H
?_015:
db 2EH, 2EH, 00H, 00H, 00H, 00H, 00H, 00H
?_016:
db 43H, 3AH, 5CH, 55H, 73H, 65H, 72H, 73H
db 5CH, 6DH, 61H, 72H, 69H, 6FH, 5CH, 44H
db 6FH, 63H, 75H, 6DH, 65H, 6EH, 74H, 73H
db 5CH, 74H, 65H, 73H, 74H, 5CH, 00H
SECTION .eh_frame
db 14H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
db 01H, 7AH, 52H, 00H, 01H, 78H, 10H, 01H
db 1BH, 0CH, 07H, 08H, 90H, 01H, 00H, 00H
db 1CH, 00H, 00H, 00H, 1CH, 00H, 00H, 00H
dd _Z8findfilePc-$-20H
dd 0000018AH, 100E4100H
dd 0D430286H, 01850306H
dd 0008070CH, 0000001CH
dd 0000003CH
dd _Z8findfilePc-$+14AH
dd 000000A7H, 100E4100H
dd 0D430286H, 0CA20206H
dd 00000807H
Comments
0 B
|👍
/👎