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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49e635
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x4ba094]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov dword [ebp - 0x50], 0
movq qword [ebp - 0x58], xmm0
mov dword [ebp - 0x1c], 0
nop
mov edi, dword [ebp + 8]
mov eax, edi
cmp dword [edi + 0x14], 8
jb 0x439c0d
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x439fcb
mov esi, dword [ebp + 0xc]
mov ecx, ebx
and ecx, 0x410
xorps xmm0, xmm0
movlpd qword [ebp - 0x3c], xmm0
cmp ecx, 0x10
jne 0x439fc0
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 0
push eax
push 0
push 0x10
lea eax, [ebp - 0x10]
push edi
push eax
call fcn.0043fbb0
add esp, 0x14
test byte [ebp - 0x50], 1
je 0x439ee9
mov edx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x58]
cmp edx, 1
jne 0x439c80
test edi, edi
setne al
test al, al
je 0x439ee9
mov dword [ebp - 0x2c], 0x14
mov dword [ebp - 0x28], 0x4ba110
mov byte [ebp - 4], 1
cmp edx, 1
jne 0x439cfb
mov ecx, 0x4ba110
call fcn.004341b0
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], ecx
cmp eax, 1
jne 0x439cb7
mov ecx, dword [ebp - 0x54]
jmp 0x439cce
test eax, eax
jne 0x439cc4
xor edx, edx
mov ecx, 0x4ba184
jmp 0x439cd1
mov ecx, dword [ebp - 0x54]
call fcn.004341b0
mov ecx, eax
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x24], edx
lea esi, [ebp - 0x44]
mov dword [ebp - 0x20], ecx
mov eax, dword [ecx]
push esi
push edx
mov eax, dword [eax + 0x14]
call eax
test al, al
jne 0x439dfd
mov ecx, dword [ebp - 0x40]
lea edx, [ebp - 0x24]
push dword [ebp - 0x44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
jmp 0x439d32
test edx, edx
mov ecx, 0x4ba0b8
lea edx, [ebp - 0x2c]
cmovne ecx, dword [ebp - 0x54]
push edx
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test al, al
jne 0x439dfd
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x58]
push dword [ebp - 0x2c]
test eax, eax
mov ecx, 0x4ba110
cmovne ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push edx
call eax
test al, al
jne 0x439dfd
mov dword [ebp - 0x34], 0x72
mov dword [ebp - 0x30], 0x4ba110
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 2
cmp eax, 1
jne 0x439db7
mov ecx, 0x4ba110
call fcn.004341b0
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], ecx
cmp eax, 1
jne 0x439d77
mov ecx, dword [ebp - 0x54]
jmp 0x439d8e
test eax, eax
jne 0x439d84
xor edx, edx
mov ecx, 0x4ba184
jmp 0x439d91
mov ecx, dword [ebp - 0x54]
call fcn.004341b0
mov ecx, eax
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x18], edx
lea esi, [ebp - 0x4c]
mov dword [ebp - 0x14], ecx
mov eax, dword [ecx]
push esi
push edx
mov eax, dword [eax + 0x14]
call eax
test al, al
jne 0x439df3
mov ecx, dword [ebp - 0x48]
lea edx, [ebp - 0x18]
push dword [ebp - 0x4c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
jmp 0x439dec
test eax, eax
lea edx, [ebp - 0x34]
mov ecx, 0x4ba0b8
cmovne ecx, dword [ebp - 0x54]
push edx
push dword [ebp - 0x58]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test al, al
jne 0x439df3
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x58]
push dword [ebp - 0x34]
test eax, eax
mov ecx, 0x4ba110
cmovne ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push edx
call eax
test al, al
je 0x439df5
mov al, 1
mov byte [ebp - 4], 0
test al, al
je 0x439e65
mov esi, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x439e2d
mov eax, 0xffffffff
lock xadd dword [esi], eax
add eax, 0xffffffff
jne 0x439e2d
test esi, esi
je 0x439e2d
mov ecx, esi
call fcn.0043efb0
push esi
call fcn.0043f0c0
add esp, 4
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 5
jb 0x439c00
mov ecx, dword [ebp + 0xc]
movq xmm0, qword [ebp - 0x58]
mov eax, dword [ebp - 0x50]
test ecx, ecx
jne 0x439eca
sub esp, 0xc
mov ecx, esp
push dword [ebp + 8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
push str.boost::filesystem::remove_all:_path_cannot_be_opened_as_a_directory
jmp 0x43a054
mov ecx, dword [ebp + 0xc]
movq xmm0, qword [ebp - 0x58]
mov eax, dword [ebp - 0x50]
test ecx, ecx
je 0x43a040
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov esi, dword [ebp - 0x10]
test esi, esi
je 0x43a012
or eax, 0xffffffff
lock xadd dword [esi], eax
add eax, 0xffffffff
jne 0x43a012
test esi, esi
je 0x43a012
mov ecx, esi
call fcn.0043efb0
push esi
call fcn.0043f0c0
add esp, 4
or eax, 0xffffffff
or edx, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
or eax, 0xffffffff
or edx, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x20], 0
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 4], 3
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], ecx
mov edi, dword [ebp - 0x10]
test edi, edi
je 0x439f54
cmp dword [edi + 0x34], 0
je 0x439f54
lea eax, [edi + 0xc]
push esi
push eax
call fcn.00439bc0
add esp, 8
add dword [ebp - 0x1c], eax
adc dword [ebp - 0x14], edx
test esi, esi
je 0x439f33
mov ecx, esi
call fcn.004342f0
test al, al
jne 0x439e7f
lea eax, [ebp - 0x10]
push esi
push eax
call fcn.004401b0
add esp, 8
test esi, esi
je 0x439f00
mov ecx, esi
call fcn.004342f0
test al, al
je 0x439f00
jmp 0x439e7f
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x439f7f
or eax, 0xffffffff
lock xadd dword [edi], eax
add eax, 0xffffffff
jne 0x439f7f
test edi, edi
je 0x439f7f
mov ecx, edi
call fcn.0043efb0
push edi
call fcn.0043f0c0
add esp, 4
mov edi, dword [ebp - 0x14]
push esi
push ebx
push dword [ebp + 8]
call fcn.0043a980
add esp, 0xc
test esi, esi
je 0x439fa5
mov ecx, dword [esi + 8]
test cl, 1
je 0x439fa5
cmp ecx, 1
jne 0x43a012
cmp dword [esi], 0
jne 0x43a012
movzx eax, al
cdq
add eax, dword [ebp - 0x1c]
adc edx, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
jmp 0x439f82
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x43a02a
cmp eax, 3
je 0x43a02a
cmp eax, 0x7b
je 0x43a02a
cmp eax, 0xf
je 0x43a02a
cmp eax, 0x15
je 0x43a02a
cmp eax, 0x57
je 0x43a02a
cmp eax, 0xa1
je 0x43a02a
cmp eax, 0x35
je 0x43a02a
cmp eax, 0x43
je 0x43a02a
push str.boost::filesystem::remove_all
push dword [ebp + 0xc]
push edi
push eax
call fcn.0043e960
add esp, 0x10
or eax, 0xffffffff
or edx, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
sub esp, 0xc
mov ecx, esp
push dword [ebp + 8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
push str.boost::filesystem::remove_all
lea ecx, [ebp - 0x74]
call fcn.0043dcc0
push 0x4b77b8
lea eax, [ebp - 0x74]
push eax
call fcn.00441fb2
int3