Function at 0x423ab0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59ee6b
mov eax, dword fs:[0]
push eax
sub esp, 0xc64
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xc5c], edx
mov dword [ebp - 0xc64], ecx
mov dword [ebp - 0xc68], ecx
push 0x208
lea eax, [ebp - 0xc40]
mov dword [ebp - 0xc6c], 0
push 0
push eax
call fcn.00576f50
push 0x208
lea eax, [ebp - 0x830]
push 0
push eax
call fcn.00576f50
add esp, 0x18
call fcn.00435fa0
add dword [eax], eax
test al, al
je 0x423b48
xor dword [esi + 0x142cb511], 0x41
push ebp
mov byte [edx + 0x13], al
pop ecx
pop esp
out 0xc1, al
push ebx
cmp byte [esi + 0x75e8d9a2], 0x99
xchg ecx, eax
outsb dx, byte [esi]
mov al, byte [0x20868dc]
add byte [eax], al
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00576f50
push 0x208
lea eax, [ebp - 0xa38]
push 0
push eax
call fcn.00576f50
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00576f50
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.00576f50
add esp, 0x30
call fcn.004360f0
test al, al
je 0x423bbb
jge 0x423b26
sub eax, esp
cwde
xor al, 0xe3
xchg ecx, eax
xchg ecx, eax
out dx, eax
push esi
pop edx
add byte [esi + 0x2b], bh
bnd jmp 0x423bfd
xor eax, eax
mov dword [ebp - 0xc44], 7
mov dword [ebp - 0xc48], 0
mov word [ebp - 0xc58], ax
push ecx
push 0x1a
lea edx, [ebp - 0xc40]
mov dword [ebp - 4], eax
call fcn.00424260
add esp, 8
xor ecx, ecx
nop
movzx eax, word [ebp + ecx - 0xc40]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x21a], ax
test byte [0xfffffde6], cl
test ax, ax
jne 0x423bf0
lea eax, [ebp - 0x218]
push 0x5c
push eax
call fcn.00575fd0
add esp, 8
mov dword [ebp - 0xc60], eax
call fcn.004368d0
test al, al
je 0x423c3a
jmp [edx + 0x5c]
xlatb
or ebp, dword [edi + 0x703ff3fa]
jle 0x423c7a
sub byte [ebp - 0x4d], bl
sbb al, 0x4b
cmp al, 0xe4
and dword [eax + ebp*8], esi
xor dword [eax], ebp
add dword [eax], eax
call fcn.00436470
test al, al
je 0x423c5e
mov dword [edx - 0x94a1f3b], esi
loop 0x423cc8
sbb edi, ecx
dec esi
sbb al, 0x4b
lodsd eax, dword [esi]
ljmp 0xb684
call fcn.00436470
test al, al
je 0x423c82
add byte [eax + eax*8 + 0x29891b74], al
mov dword [ecx], ebp
xchg ebx, eax
sbb byte [ebx + 0x7c], bh
stc
pop ebx
aaa
shl dword [ebx + 0x6146a5bb], 0xf8
js 0x423c0d
cmp ebx, dword [esi]
push ds
lodsb al, byte [esi]
jae 0x423c62
push ds
push ss
adc byte [edx - 0x75], 0x85
mov al, byte [0x85fffff3]
ror byte [edi], 0x84
mov bh, 2
add byte [eax], al
mov eax, dword [ebp - 0xc60]
test eax, eax
je 0x423f47
xor ecx, ecx
mov word [eax], cx
movzx eax, word [ebp + ecx - 0x218]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x832], ax
test ax, ax
jne 0x423c95
lea ecx, [ebp - 0x830]
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x423cb6
mov eax, dword [0x61bd60]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, sym.imp.SHLWAPI.dll_PathFileExistsW
mov dword [ecx], eax
mov eax, dword [0x61bd64]
mov dword [ecx + 4], eax
mov eax, dword [0x61bd68]
mov dword [ecx + 8], eax
mov ax, word [0x61bd6c]
mov word [ecx + 0xc], ax
lea eax, [ebp - 0x830]
push eax
call edi
test eax, eax
mov ecx, 1
mov eax, 0
cmovne eax, ecx
mov dword [ebp - 0xc60], eax
call fcn.00436320
test al, al
je 0x423d30
retf
call fcn.00435f30
test al, al
je 0x423d5b
into
dec edx
xchg ebp, eax
mov esi, 0x655fa023
invalid
xor ecx, ecx
nop dword [eax]
movzx eax, word [ebp + ecx - 0x218]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x422], ax
test ax, ax
jne 0x423d60
lea ecx, [ebp - 0x420]
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x423d81
mov eax, dword [0x61bd4c]
mov dword [ecx], eax
mov eax, dword [0x61bd50]
mov dword [ecx + 4], eax
mov eax, dword [0x61bd54]
mov dword [ecx + 8], eax
mov eax, dword [0x61bd58]
mov dword [ecx + 0xc], eax
mov eax, dword [0x61bd5c]
mov dword [ecx + 0x10], eax
lea eax, [ebp - 0x420]
push eax
call edi
test eax, eax
mov ecx, 1
mov eax, 0
cmovne eax, ecx
xor ecx, ecx
mov dword [ebp - 0xc68], eax
movzx eax, word [ebp + ecx - 0x218]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0xa3a], ax
test ax, ax
jne 0x423dd4
lea ecx, [ebp - 0xa38]
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x423df5
mov eax, dword [0x61bd80]
mov dword [ecx], eax
mov eax, dword [0x61bd84]
mov dword [ecx + 4], eax
mov eax, dword [0x61bd88]
mov dword [ecx + 8], eax
mov eax, dword [0x61bd8c]
mov dword [ecx + 0xc], eax
mov ax, word [0x61bd90]
mov word [ecx + 0x10], ax
call fcn.00435de0
test al, al
je 0x423e4a
invalid
push edx
fidiv dword [edi*8 - 0x39d8afee]
jae 0x423e19
cmp al, 0xd
pop es
sti
mov dl, 0x62
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call fcn.00436400
test al, al
je 0x423e69
lea edx, [esi - 0x32]
leave
mov esp, 0x50f71fd1
xchg esp, eax
pop es
jns 0x423e8b
sub cl, bh
inc dx
xchg ebp, eax
scasd eax, dword es:[edi]
cli
fisttp qword [ebp - 0xa377b]
call dword [eax - 1]
xlatb
lea eax, [ebp - 0xa38]
push eax
call edi
test eax, eax
mov ecx, 1
mov eax, 0
cmovne eax, ecx
mov ecx, dword [ebp - 0xc60]
test ecx, ecx
je 0x423ee6
mov ecx, dword [ebp - 0xc68]
test ecx, ecx
je 0x423ee6
test eax, eax
je 0x423ee6
push dword [ebp - 0xc5c]
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x628]
push str._s_s_
push eax
call fcn.00408f60
add esp, 0x10
lea eax, [ebp - 0x628]
push eax
call edi
test eax, eax
jne 0x423ed2
lea ecx, [ebp - 0x628]
call fcn.00423740
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0xc58]
call fcn.00403920
jmp 0x423f58
call fcn.00435ec0
test al, al
je 0x423eff
ja 0x423ec1
add al, dh
xor eax, 0x8575b765
imul esp, edi, 0x44a049a4
or al, ch
dec esp
add dword es:[eax], eax
call fcn.00436550
test al, al
je 0x423f1f
mov ecx, 0x2c9f2000
mov dl, 0xc9
inc ebx
adc dword [edi + edi*2], 0x3ce1465c
xchg esi, eax
xor al, 0x40
cmp byte [edx], cl
ret
call fcn.00436400
test al, al
je 0x423f47
push ecx
invalid
mov edx, dword [ebp - 0xc5c]
lea ecx, [ebp - 0xc58]
call 0x424660
mov ebx, dword [ebp - 0xc64]
xor eax, eax
mov ecx, ebx
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], 0
mov word [ebx], ax
lea eax, [ebp - 0xc58]
push eax
call fcn.00403f30
lea ecx, [ebp - 0xc58]
call fcn.00402d00
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret