Function at 0x47efa0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0x43c
push ebx
push ebp
mov ebp, dword [esp + 0x448]
push esi
push edi
mov edi, edx
cmp ebp, 1
je 0x47efc1
cmp ebp, 2
je 0x47efc1
xor bh, bh
jmp 0x47efc3
mov bh, 1
mov esi, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x38]
push eax
push 0x104
push ecx
call esi
lea ecx, [esp + 0x34]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47efe2
sub ecx, edx
sar ecx, 1
je 0x47f002
cmp word [esp + ecx*2 + 0x32], 0x5c
jne 0x47f002
xor eax, eax
mov word [esp + ecx*2 + 0x32], ax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x244]
push eax
push 0x104
push edi
call esi
lea ecx, [esp + 0x240]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47f021
sub ecx, edx
sar ecx, 1
je 0x47f047
cmp word [esp + ecx*2 + 0x23e], 0x5c
jne 0x47f047
xor eax, eax
mov word [esp + ecx*2 + 0x23e], ax
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x47f21c
test al, 0x10
je 0x47f21c
mov bl, byte [esp + 0x454]
test bl, bl
je 0x47f0fe
movzx edi, word [esp + 0x34]
mov ebp, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test edi, 0xffffff80
jne 0x47f094
push 1
push edi
call ebp
add esp, 8
test eax, eax
je 0x47f094
or edi, 0x20
movzx esi, word [esp + 0x240]
test esi, 0xffffff80
jne 0x47f0b3
push 1
push esi
call ebp
add esp, 8
test eax, eax
je 0x47f0b3
or esi, 0x20
cmp di, si
jne 0x47f0c0
cmp word [esp + 0x36], 0x3a
je 0x47f0f7
movzx eax, bh
lea edx, [esp + 0x240]
push 0
push eax
lea ecx, [esp + 0x3c]
call fcn.0047efa0
add esp, 8
test al, al
je 0x47f21c
mov dl, 1
lea ecx, [esp + 0x34]
call fcn.0047f230
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x43c
ret
mov ebp, dword [esp + 0x450]
lea eax, [esp + 0x240]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x47f127
test al, 0x10
je 0x47f21c
test bh, bh
je 0x47f21c
test bl, bl
jne 0x47f175
jmp 0x47f141
test bl, bl
jne 0x47f175
xor edx, edx
lea ecx, [esp + 0x240]
call fcn.00461e60
test al, al
je 0x47f21c
lea ecx, [esp + 0x34]
add ecx, 0xfffffffe
nop dword [eax + eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x47f150
mov eax, dword [str..]
mov dword [ecx], eax
mov eax, dword [0x4efd54]
mov dword [ecx + 4], eax
mov ax, word [0x4efd58]
mov word [ecx + 8], ax
lea ecx, [esp + 0x34]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47f180
sub ecx, edx
sar ecx, 1
xor eax, eax
mov word [esp + ecx*2 + 0x36], ax
lea ecx, [esp + 0x240]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47f1a0
xor eax, eax
sub ecx, edx
sar ecx, 1
xorps xmm0, xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 0x2e], eax
movlpd qword [esp + 0x26], xmm0
mov word [esp + ecx*2 + 0x242], ax
lea eax, [esp + 0x34]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x240]
mov dword [esp + 0x20], eax
movzx eax, bl
xor eax, 1
inc eax
mov dword [esp + 0x18], eax
mov eax, 0x614
mov word [esp + 0x24], ax
cmp ebp, 2
jne 0x47f201
mov eax, 0x615
mov word [esp + 0x24], ax
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
pop edi
pop esi
test eax, eax
pop ebp
sete al
pop ebx
add esp, 0x43c
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x43c
ret