Function at 0x43d7c0
Capabilities:
Check if file exists

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x64
push 0xffffffffffffffff
push 0x49907d
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x4b50a4]
xor eax, ebp
mov dword [ebp + 0x60], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x70]
lea eax, [ebp + 0xc]
mov esi, dword [ebp + 0x6c]
xorps xmm0, xmm0
mov edi, dword [ebp + 0x74]
push eax
push ebx
lea eax, [ebp - 0x38]
mov dword [ebp + 8], esi
push esi
push eax
mov dword [ebp], ebx
movq qword [ebp + 0xc], xmm0
mov dword [ebp + 0x14], 0
call fcn.0043ea20
mov eax, dword [ebp - 0x38]
add esp, 0x10
test eax, eax
jne 0x43d849
movq xmm0, qword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
test edi, edi
je 0x43ddce
movq qword [edi], xmm0
mov dword [edi + 8], eax
or eax, 0xffffffff
or edx, 0xffffffff
jmp 0x43ddb1
xorps xmm0, xmm0
movlpd qword [ebp + 0x18], xmm0
cmp eax, 3
jne 0x43dd9f
xor eax, eax
movq qword [ebp - 0x4c], xmm0
mov dword [ebp - 0x44], eax
movq qword [ebp + 0xc], xmm0
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x28], eax
mov dword [ebp - 4], eax
mov byte [ebp - 0x28], al
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], esi
push eax
push 0x10
lea eax, [ebp + 0x28]
push ebx
push eax
call fcn.00443300
add esp, 0x14
test byte [ebp + 0x14], 1
je 0x43d8ce
mov ecx, dword [ebp + 0x14]
cmp ecx, 1
jne 0x43d8a8
cmp dword [ebp + 0xc], 0
setne al
test al, al
je 0x43d8ce
movq xmm0, qword [ebp + 0xc]
test edi, edi
jne 0x43d8c2
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
jmp 0x43ddda
movq qword [edi], xmm0
mov dword [edi + 8], ecx
jmp 0x43dd12
mov eax, dword [0x4b797c]
mov dword [ebp + 4], eax
nop
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x20], esi
mov esi, dword [ebp + 0x28]
mov byte [ebp - 4], 1
test esi, esi
je 0x43d8ff
cmp dword [esi + 0x34], 0
je 0x43d8ff
xor al, al
jmp 0x43d901
mov al, 1
test al, al
jne 0x43dd41
lea eax, [esi + 0xc]
push eax
lea ecx, [ebp + 0x48]
call fcn.00406280
mov dword [ebp + 0x2c], 0xffffffff
cmp dword [ebp + 4], 0
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 3
je 0x43db86
push eax
call fcn.00434890
mov ecx, dword [ebp + 0x58]
mov edx, eax
sub ecx, edx
mov dword [ebp + 0x30], 0
add esp, 4
mov dword [ebp + 0x40], 0
cmp dword [ebp + 0x5c], 8
lea eax, [ebp + 0x48]
mov dword [ebp + 0x44], 7
cmovae eax, dword [ebp + 0x48]
add edx, edx
xor esi, esi
mov word [ebp + 0x30], si
lea ecx, [eax + ecx*2]
lea eax, [edx + ecx]
cmp ecx, eax
je 0x43d97b
sar edx, 1
push edx
push ecx
lea ecx, [ebp + 0x30]
call fcn.0040f220
mov ebx, dword [0x4b797c]
mov byte [ebp - 4], 4
nop
test ebx, ebx
jne 0x43d994
mov esi, 0xc0000002
jmp 0x43da54
cmp dword [ebp + 0x44], 8
lea eax, [ebp + 0x30]
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0x18
cmovae eax, dword [ebp + 0x30]
movlpd qword [ebp + 0x18], xmm0
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x40]
add eax, eax
movlpd qword [ebp - 0x14], xmm0
mov word [ebp + 0x1a], ax
mov word [ebp + 0x18], ax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
lea eax, [ebp + 0x18]
mov dword [ebp - 0x1c], eax
mov al, byte [0x4b7978]
mov dword [ebp - 0x18], 0x40
nop
test al, al
jne 0x43d9e7
or dword [ebp - 0x18], 0x1000
push 0
push 0
push 0x204020
push 1
push 7
push 0
push 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x110199
lea eax, [ebp + 0x2c]
push eax
call ebx
mov esi, eax
cmp esi, 0xc000000d
jne 0x43da54
test dword [ebp - 0x18], 0x1000
je 0x43da54
nop
mov byte [0x4b7978], 1
nop
and dword [ebp - 0x18], 0xffffefff
lea eax, [ebp - 0x40]
push 0
push 0
push 0x204020
push 1
push 7
push 0
push 0
push eax
lea eax, [ebp - 0x24]
push eax
push 0x110199
lea eax, [ebp + 0x2c]
push eax
call ebx
mov esi, eax
mov edx, dword [ebp + 0x44]
mov byte [ebp - 4], 3
cmp edx, 8
jb 0x43da9a
mov ecx, dword [ebp + 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
mov byte [ebp - 4], 5
cmp edx, 0x1000
jb 0x43da8c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43ddf6
push edx
push ecx
call fcn.0042fe99
add esp, 8
mov byte [ebp - 4], 3
xor eax, eax
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x44], 7
mov word [ebp + 0x30], ax
test esi, esi
jns 0x43db44
cmp esi, 0xc000000f
je 0x43dae2
cmp esi, 0xc0000034
je 0x43dae2
cmp esi, 0xc000003a
je 0x43dae2
cmp esi, 0xc00000be
je 0x43dae2
cmp esi, 0xc00000cc
jne 0x43dc36
mov ebx, dword [ebp + 0x24]
lea eax, [ebp + 0x28]
push edi
push eax
call fcn.00443900
add esp, 8
test edi, edi
je 0x43db0f
mov eax, dword [edi + 8]
test al, 1
je 0x43db0f
cmp eax, 1
jne 0x43dcf7
cmp dword [edi], 0
jne 0x43dcf7
mov eax, dword [ebp + 0x2c]
mov byte [ebp - 4], 0xa
cmp eax, 0xffffffff
je 0x43db22
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x5c]
mov byte [ebp - 4], 0xb
cmp eax, 8
jb 0x43d8ea
inc eax
lea ecx, [ebp + 0x48]
push eax
push dword [ebp + 0x48]
call fcn.00426ab1
jmp 0x43d8ea
mov eax, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x24]
push edi
lea ecx, [ebp + 0x48]
push ecx
push eax
call fcn.0043d7c0
add esp, 0xc
add dword [ebp + 0x20], eax
adc ebx, edx
mov dword [ebp + 0x24], ebx
test edi, edi
je 0x43dae5
mov eax, dword [edi + 8]
test al, 1
je 0x43dc24
cmp eax, 1
jne 0x43db7d
cmp dword [edi], 0
je 0x43dae5
mov byte [ebp - 4], 8
jmp 0x43dcfb
cmp dword [ebp + 0x5c], 8
push 0
cmovae eax, dword [ebp + 0x48]
push 0x2200000
push 3
push 0
push 7
push 0x110199
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp + 0x2c], eax
cmp eax, 0xffffffff
jne 0x43db4a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x43dae5
cmp eax, 3
je 0x43dae5
cmp eax, 0x7b
je 0x43dae5
cmp eax, 0xf
je 0x43dae5
cmp eax, 0x15
je 0x43dae5
cmp eax, 0x57
je 0x43dae5
cmp eax, 0xa1
je 0x43dae5
cmp eax, 0x35
je 0x43dae5
cmp eax, 0x43
je 0x43dae5
push str.boost::filesystem::remove_all
push edi
lea ecx, [ebp + 0x48]
push ecx
push eax
call fcn.004420b0
add esp, 0x10
mov byte [ebp - 4], 7
jmp 0x43dcfb
lea eax, [ebp + 0x28]
push edi
push eax
call fcn.00443900
add esp, 8
jmp 0x43daf6
cmp esi, 0xc0000003
ja 0x43dc66
je case.0x43dc85.1073741815
cmp esi, 0x80000005
je 0x43dc5f
cmp esi, 0x80000006
jne case.0x43dc85.1073741815
mov eax, 0x12
jmp 0x43dcde
mov eax, 0x6f
jmp 0x43dcde
cmp esi, 0xc0000225
ja case.0x43dc85.1073741815
je 0x43dcd2
add esi, 0x3ffffff8
cmp esi, 0xfb
ja case.0x43dc85.1073741815
movzx eax, byte [esi + 0x43de28]
jmp dword [eax*4 + 0x43ddfc]
mov eax, 0xe
jmp 0x43dcde
mov eax, 6
jmp 0x43dcde
mov eax, 0x57
jmp 0x43dcde
mov eax, 0x37
jmp 0x43dcde
mov eax, 2
jmp 0x43dcde
mov eax, 5
jmp 0x43dcde
mov eax, 0x35
jmp 0x43dcde
mov eax, 0x43
jmp 0x43dcde
mov eax, 0x91
jmp 0x43dcde
mov eax, 0x10b
jmp 0x43dcde
mov eax, 0x490
jmp 0x43dcde
mov eax, 0x32
push str.boost::filesystem::remove_all
push edi
lea ecx, [ebp + 0x48]
push ecx
push eax
call fcn.004420b0
add esp, 0x10
mov byte [ebp - 4], 6
jmp 0x43dcfb
mov byte [ebp - 4], 9
mov eax, dword [ebp + 0x2c]
cmp eax, 0xffffffff
je 0x43dd0a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp + 0x48]
call fcn.004075b0
mov esi, dword [ebp + 0x28]
test esi, esi
je 0x43dd39
or eax, 0xffffffff
lock xadd dword [esi], eax
add eax, 0xffffffff
jne 0x43dd39
test esi, esi
je 0x43dd39
mov ecx, esi
call fcn.00442700
push esi
call fcn.00442810
add esp, 4
or eax, 0xffffffff
or edx, 0xffffffff
jmp 0x43ddb1
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x43dd6c
or eax, 0xffffffff
lock xadd dword [esi], eax
add eax, 0xffffffff
jne 0x43dd6c
test esi, esi
je 0x43dd6c
mov ecx, esi
call fcn.00442700
push esi
call fcn.00442810
add esp, 4
mov esi, dword [ebp + 0x20]
mov eax, dword [0x4b7974]
nop
push eax
push dword [ebp + 8]
call fcn.0043e220
add esp, 8
test eax, eax
je 0x43dda7
push str.boost::filesystem::remove_all
push edi
push dword [ebp]
push eax
call fcn.004420b0
add esp, 0x10
or eax, 0xffffffff
or edx, 0xffffffff
jmp 0x43ddb1
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
jmp 0x43dd6f
add esi, 1
mov eax, esi
adc ebx, 0
mov edx, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x60]
xor ecx, ebp
call fcn.0042feac
lea esp, [ebp + 0x64]
pop ebp
ret
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
push ebx
push str.boost::filesystem::remove_all
lea ecx, [ebp - 0x68]
call fcn.00441410
push 0x4b24f8
lea eax, [ebp - 0x68]
push eax
call fcn.00445702
call fcn.00451c51
nop
xchg ebx, eax
fadd qword [ebx]
lcall 0x43dc, 0xa10043dc
add byte [eax - 1946139684], ch
fadd qword [ebx]
scasd eax, dword es:[edi]
fadd qword [ebx]
mov dh, 0xdc
inc ebx
add byte [ebp - 0x3bffbc24], bh
fadd qword [ebx]
retf