Function at 0x423706
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x62b0b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x20c]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x218], eax
xor eax, eax
push eax
push 0x1a
push ecx
push eax
mov dword [ebp - 0x210], ebx
call fcn.004240ce
lea eax, [ebp - 0x20c]
push eax
call fcn.004532f1
movsd dword es:[edi], dword [esi]
sti
add al, byte [eax]
add esp, 0x14
mov dword [ebp - 0x214], eax
call fcn.0043a55a
test al, al
je 0x42377d
mov eax, 0x52cae5a
pop edx
scasb al, byte es:[edi]
sub al, 5
shr byte [ebx], 1
pop esi
out dx, al
stc
jnp 0x423748
mov ecx, 0xabe7554
sahf
xchg ebx, eax
sahf
loope 0x4237d9
jae 0x42375f
mov ebx, dword [ebp - 0x210]
cmp dword [ebp - 0x214], 0
je 0x423889
mov esi, 0x620760
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00452fa8
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.00452fa8
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00452fa8
add esp, 0x18
call fcn.0043ab03
test al, al
je 0x4237dd
stc
jmp 0x4237ca
or byte [ebx], bl
wait
or dword es:[edi + ebx*2], esp
into
invalid
sti
and dword [eax - 0xb7a7233], eax
std
invalid
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4237fb
lea eax, [ebp - 0x20c]
push eax
call fcn.004235d5
pop ecx
call fcn.0043a629
test al, al
je 0x423818
pop esi
into
mov byte [esi - 0x2a], bl
fstp qword [ebp + 0x1854c927]
mov ebx, 0xdca23f61
mov edx, 0xe8d87a26
mov esi, 0x84000170
sal byte [esp + ebx - 0x11], 0x8f
cmp al, 0xe
fidiv dword [edi + 0x62]
or dh, byte [ebx + 0x126d7222]
jle 0x4238ac
call fcn.0043a8db
test al, al
je 0x42383d
out dx, eax
invalid
sub byte [ecx], bh
mov esi, esp
inc ecx
mov edi, 0x763ed87a
mov edi, 0xc1e872eb
jb 0x423842
call fcn.0043ab03
add byte [eax + eax*8 + 0x70e91574], al
mov edx, 0x7105901
jl 0x4237f5
test al, al
je 0x42385b
jmp 0x1fc9fbb
ja 0x4238bb
pop ds
stosd dword es:[edi], eax
mov edi, 0xc4aa0a4
movsd dword es:[edi], dword [esi]
out dx, eax
cmp word [ebp - 0x20c], 0
jne 0x423869
xor eax, eax
jmp 0x423876
lea eax, [ebp - 0x20c]
push eax
call fcn.004532f1
pop ecx
mov ecx, dword [ebp - 0x218]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.00401a60
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00433ee3
mov esp, ebp
pop ebp
ret
cld
mov eax, dword [ebp + 8]
and dword [ebp - 0x218], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
or al, 0x57
push 0x20c
mov dword [ebp - 0x214], eax
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00445350
add esp, 0xc
lea eax, [ebp - 0x210]
push 0x105
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call fcn.0043a6f8
test al, al
je 0x423910
xchg edi, eax
cmpsd dword [esi], dword es:[edi]
clc
dec edi
mov al, byte [0xac181c7c]
or al, 0xa4
pop edi
and ecx, dword [edi + 0x46]
adc dword [ecx + ebx*4 - 0x5f8ed006], edi
ror byte [edx - 0x1767b5a2], 0x8a
insb byte es:[edi], dx
add dword [eax], eax
call fcn.0043a59f
test al, al
je 0x423937
pop es
sub eax, 0x3392da63
loope 0x423957
jb 0x423973
push es
cmp dword [edi], ecx
rcr dword [ecx + edi - 0x19d1abaa], cl
push edi
pop ss
wait
aas
jmp 0x423953
lea eax, [ebp - 0x210]
push 0x5c
push eax
call fcn.004454aa
pop ecx
pop ecx
test eax, eax
je 0x423951
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [ebp - 0x214]
in al, dx
std
invalid
lea eax, [ebp - 0x210]
push eax
call fcn.00401870
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x214]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00433ee3
mov esp, ebp
add eax, 0xe58b0001
pop ebp
ret