Function at 0x43a070
Capabilities:
Check if file exists

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x64
push 0xffffffffffffffff
push 0x49e68d
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x4ba094]
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.0043b2d0
mov eax, dword [ebp - 0x38]
add esp, 0x10
test eax, eax
jne 0x43a0f9
movq xmm0, qword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
test edi, edi
je 0x43a67e
movq qword [edi], xmm0
mov dword [edi + 8], eax
or eax, 0xffffffff
or edx, 0xffffffff
jmp 0x43a661
xorps xmm0, xmm0
movlpd qword [ebp + 0x18], xmm0
cmp eax, 3
jne 0x43a64f
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.0043fbb0
add esp, 0x14
test byte [ebp + 0x14], 1
je 0x43a17e
mov ecx, dword [ebp + 0x14]
cmp ecx, 1
jne 0x43a158
cmp dword [ebp + 0xc], 0
setne al
test al, al
je 0x43a17e
movq xmm0, qword [ebp + 0xc]
test edi, edi
jne 0x43a172
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
jmp 0x43a68a
movq qword [edi], xmm0
mov dword [edi + 8], ecx
jmp 0x43a5c2
mov eax, dword [0x4bc5c4]
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 0x43a1af
cmp dword [esi + 0x34], 0
je 0x43a1af
xor al, al
jmp 0x43a1b1
mov al, 1
test al, al
jne 0x43a5f1
lea eax, [esi + 0xc]
push eax
lea ecx, [ebp + 0x48]
call fcn.00404640
mov dword [ebp + 0x2c], 0xffffffff
cmp dword [ebp + 4], 0
lea eax, [ebp + 0x48]
mov byte [ebp - 4], 3
je 0x43a436
push eax
call fcn.004310d0
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 0x43a22b
sar edx, 1
push edx
push ecx
lea ecx, [ebp + 0x30]
call fcn.0040d6a0
mov ebx, dword [0x4bc5c4]
mov byte [ebp - 4], 4
nop
test ebx, ebx
jne 0x43a244
mov esi, 0xc0000002
jmp 0x43a304
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 [0x4bc5c0]
mov dword [ebp - 0x18], 0x40
nop
test al, al
jne 0x43a297
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 0x43a304
test dword [ebp - 0x18], 0x1000
je 0x43a304
nop
mov byte [0x4bc5c0], 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 0x43a34a
mov ecx, dword [ebp + 0x30]
lea edx, [edx*2 + 2]
mov eax, ecx
mov byte [ebp - 4], 5
cmp edx, 0x1000
jb 0x43a33c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43a6a6
push edx
push ecx
call fcn.0042c525
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 0x43a3f4
cmp esi, 0xc000000f
je 0x43a392
cmp esi, 0xc0000034
je 0x43a392
cmp esi, 0xc000003a
je 0x43a392
cmp esi, 0xc00000be
je 0x43a392
cmp esi, 0xc00000cc
jne 0x43a4e6
mov ebx, dword [ebp + 0x24]
lea eax, [ebp + 0x28]
push edi
push eax
call fcn.004401b0
add esp, 8
test edi, edi
je 0x43a3bf
mov eax, dword [edi + 8]
test al, 1
je 0x43a3bf
cmp eax, 1
jne 0x43a5a7
cmp dword [edi], 0
jne 0x43a5a7
mov eax, dword [ebp + 0x2c]
mov byte [ebp - 4], 0xa
cmp eax, 0xffffffff
je 0x43a3d2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x5c]
mov byte [ebp - 4], 0xb
cmp eax, 8
jb 0x43a19a
inc eax
lea ecx, [ebp + 0x48]
push eax
push dword [ebp + 0x48]
call fcn.004228fe
jmp 0x43a19a
mov eax, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x24]
push edi
lea ecx, [ebp + 0x48]
push ecx
push eax
call fcn.0043a070
add esp, 0xc
add dword [ebp + 0x20], eax
adc ebx, edx
mov dword [ebp + 0x24], ebx
test edi, edi
je 0x43a395
mov eax, dword [edi + 8]
test al, 1
je 0x43a4d4
cmp eax, 1
jne 0x43a42d
cmp dword [edi], 0
je 0x43a395
mov byte [ebp - 4], 8
jmp 0x43a5ab
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 0x43a3fa
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x43a395
cmp eax, 3
je 0x43a395
cmp eax, 0x7b
je 0x43a395
cmp eax, 0xf
je 0x43a395
cmp eax, 0x15
je 0x43a395
cmp eax, 0x57
je 0x43a395
cmp eax, 0xa1
je 0x43a395
cmp eax, 0x35
je 0x43a395
cmp eax, 0x43
je 0x43a395
push str.boost::filesystem::remove_all
push edi
lea ecx, [ebp + 0x48]
push ecx
push eax
call fcn.0043e960
add esp, 0x10
mov byte [ebp - 4], 7
jmp 0x43a5ab
lea eax, [ebp + 0x28]
push edi
push eax
call fcn.004401b0
add esp, 8
jmp 0x43a3a6
cmp esi, 0xc0000003
ja 0x43a516
je case.0x43a535.1073741815
cmp esi, 0x80000005
je 0x43a50f
cmp esi, 0x80000006
jne case.0x43a535.1073741815
mov eax, 0x12
jmp 0x43a58e
mov eax, 0x6f
jmp 0x43a58e
cmp esi, 0xc0000225
ja case.0x43a535.1073741815
je 0x43a582
add esi, 0x3ffffff8
cmp esi, 0xfb
ja case.0x43a535.1073741815
movzx eax, byte [esi + 0x43a6d8]
jmp dword [eax*4 + 0x43a6ac]
mov eax, 0xe
jmp 0x43a58e
mov eax, 6
jmp 0x43a58e
mov eax, 0x57
jmp 0x43a58e
mov eax, 0x37
jmp 0x43a58e
mov eax, 2
jmp 0x43a58e
mov eax, 5
jmp 0x43a58e
mov eax, 0x35
jmp 0x43a58e
mov eax, 0x43
jmp 0x43a58e
mov eax, 0x91
jmp 0x43a58e
mov eax, 0x10b
jmp 0x43a58e
mov eax, 0x490
jmp 0x43a58e
mov eax, 0x32
push str.boost::filesystem::remove_all
push edi
lea ecx, [ebp + 0x48]
push ecx
push eax
call fcn.0043e960
add esp, 0x10
mov byte [ebp - 4], 6
jmp 0x43a5ab
mov byte [ebp - 4], 9
mov eax, dword [ebp + 0x2c]
cmp eax, 0xffffffff
je 0x43a5ba
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp + 0x48]
call fcn.00405830
mov esi, dword [ebp + 0x28]
test esi, esi
je 0x43a5e9
or eax, 0xffffffff
lock xadd dword [esi], eax
add eax, 0xffffffff
jne 0x43a5e9
test esi, esi
je 0x43a5e9
mov ecx, esi
call fcn.0043efb0
push esi
call fcn.0043f0c0
add esp, 4
or eax, 0xffffffff
or edx, 0xffffffff
jmp 0x43a661
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x43a61c
or eax, 0xffffffff
lock xadd dword [esi], eax
add eax, 0xffffffff
jne 0x43a61c
test esi, esi
je 0x43a61c
mov ecx, esi
call fcn.0043efb0
push esi
call fcn.0043f0c0
add esp, 4
mov esi, dword [ebp + 0x20]
mov eax, dword [0x4bc5bc]
nop
push eax
push dword [ebp + 8]
call fcn.0043aad0
add esp, 8
test eax, eax
je 0x43a657
push str.boost::filesystem::remove_all
push edi
push dword [ebp]
push eax
call fcn.0043e960
add esp, 0x10
or eax, 0xffffffff
or edx, 0xffffffff
jmp 0x43a661
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
jmp 0x43a61f
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.0042c665
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.0043dcc0
push 0x4b77b8
lea eax, [ebp - 0x68]
push eax
call fcn.00441fb2
call fcn.0044e6cf
nop
inc ebx
movsd dword es:[edi], dword [esi]
inc ebx
add byte [edx - 0x5b], cl
inc ebx
add byte [ecx - 0x5b], dl
inc ebx
add byte [eax - 0x5b], bl
inc ebx
add byte [0xa55f0043], bh
inc ebx
add byte [esi - 0x5b], ah
inc ebx
add byte [ebp - 0x5b], ch
inc ebx
add byte [ebp + 0x43], dh
add byte [ebx - 0x5b], bh
inc ebx
add byte [ecx + 0x43a5], cl
or cl, byte [edx]
or cl, byte [edx]
add dword [edx], eax
add ecx, dword [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
add al, 10
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or al, byte [168430090]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or al, byte [ebx]
or cl, byte [edx]
or cl, byte [edx]
or al, byte [ebx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or al, byte [esi]
or al, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or al, byte [edi]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or cl, byte [edx]
or byte [edx], cl
or esp, ecx
int3