Function at 0x407a00
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a3ebe
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x630198]
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 - 0x120], ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x134], eax
call fcn.00426431
test al, al
je 0x407a5d
jmp [eax - 0x42]
pop ss
xchg sp, ax
xor ebp, eax
in eax, 0x3f
std
ja fcn.004079d0
push ebp
push 0xbbfdd65a
add ebp, dword [esi - 0x6a]
dec esi
clc
je 0x407a45
add ebp, eax
invalid
call fcn.004261c4
test al, al
je 0x407a7e
mov dword [ecx - 0x2d2f0a4f], ecx
add dword [edi + 0x24], 0xfffffffb
xor edi, eax
fild word [esp + ebx]
jle 0x407a04
out dx, al
insd dword es:[edi], dx
and byte [edx - 0x2a], dh
sahf
call fcn.0042624e
test al, al
je 0x407a9f
and edi, dword [ecx + 0x449494af]
scasd eax, dword es:[edi]
xchg esp, eax
xchg esp, eax
inc esp
jne 0x407a95
test eax, 0x174e5c1d
in eax, 0xb6
push edi
mov dh, 0x64
push edi
sub dword [esi + 0x489db403], edi
mov dword [ebp - 0x130], 0
call fcn.004263ec
test al, al
je 0x407ac4
loop 0x407a89
push ebx
sbb cl, dh
dec ebp
popfd
ret
mov edi, dword [ebp - 0x120]
mov dword [ebp - 0x124], 0
lea eax, [edi + 0x14]
push eax
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0x88]
push eax
call fcn.0042a717
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00428ed7
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0xe8]
push eax
call int.00428dd0
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0042aadb
add esp, 0x20
mov byte [ebp - 4], 3
call fcn.00426659
test al, al
je 0x407b68
invalid
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.00429a28
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0042aadb
add esp, 0x10
mov esi, dword [edi]
mov byte [ebp - 4], 5
cmp esi, dword [edi + 4]
je 0x407d18
nop dword [eax]
cmp dword [esi + 0x14], 0x10
jb 0x407bba
mov edx, dword [esi]
jmp 0x407bbc
mov edx, esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x407bd7
xor ecx, ecx
jmp 0x407be9
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407be0
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00401ef0
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x14], 0x10
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x48]
cmovae edx, ebx
cmp eax, edi
cmovb edi, eax
mov eax, dword [ebp - 0x14]
test edi, edi
je 0x407c75
sub edi, 4
jb 0x407c33
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x407c38
add edx, 4
add ecx, 4
sub edi, 4
jae 0x407c22
cmp edi, 0xfffffffc
je 0x407c6c
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x407c65
cmp edi, 0xfffffffd
je 0x407c6c
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x407c65
cmp edi, 0xfffffffe
je 0x407c6c
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x407c65
cmp edi, 0xffffffff
je 0x407c6c
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x407c6c
sbb eax, eax
or eax, 1
jmp 0x407c6e
xor eax, eax
test eax, eax
jne 0x407c81
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jb 0x407c81
jbe 0x407cc9
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x407cb5
inc eax
cmp eax, 0x1000
jb 0x407cac
test byte [ebp - 0x28], 0x1f
jne 0x407ce6
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x407ce6
sub ebx, eax
cmp ebx, 4
jb 0x407ce6
cmp ebx, 0x23
ja 0x407ce6
mov ebx, eax
push ebx
call fcn.0043c2d6
add esp, 4
mov eax, dword [ebp - 0x120]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x407bb0
jmp 0x407d18
mov dword [ebp - 0x130], 1
cmp eax, 0x10
jb 0x407d18
inc eax
cmp eax, 0x1000
jb 0x407d0f
test byte [ebp - 0x28], 0x1f
je 0x407ceb
call fcn.0044a551
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x407cf7
call fcn.0044a551
sub ebx, eax
cmp ebx, 4
jae 0x407d03
call fcn.0044a551
cmp ebx, 0x23
jbe 0x407d0d
call fcn.0044a551
mov ebx, eax
push ebx
call fcn.0043c2d6
add esp, 4
call fcn.0042658a
test al, al
je 0x407d33
iretd
cmp dword [ebp - 0x130], 0
jne 0x407d43
xor esi, esi
jmp 0x40847a
call fcn.004264bb
test al, al
je 0x407d67
dec ebx
push ecx
push ebp
call 0x725e6bc8
push esi
insd dword es:[edi], dx
sub dl, byte [esi + 0x57]
cwde
pushal
cli
invalid
call fcn.0042631d
test al, al
je 0x407d85
mov bl, 0xb
dec edi
invalid
call fcn.00426476
test al, al
je 0x407da0
test eax, 0x28cb7ac2
fild word [edi - 0x23]
lds esi, [ecx + 0x63]
sahf
xor esp, dword [edx - 0x7c17dd98]
in al, dx
sbb byte [ebx + 0x1041c7cc], cl
add byte [eax], al
add byte [eax], al
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x407dcb
mov eax, dword [ecx]
jmp 0x407dcd
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xb8]
push edx
push eax
call fcn.00401ff0
push dword [ebp - 0x134]
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0xa0]
push eax
call fcn.00407870
cmp dword [ebp + 0xc], 0
mov byte [ebp - 4], 6
je 0x407f29
call fcn.004263a7
test al, al
je 0x407e24
adc byte [edx], 0xd0
inc esp
dec edx
out 0xc2, eax
xchg edx, eax
imul edi, dword [esp + ebp*2 + 0x4c], 0xffffff82
ljmp 0x5d3a
call fcn.004261c4
test al, al
je 0x407e4b
or al, cl
inc esp
popfd
and byte gs:[edi - 0x267680c8], ah
pop es
stc
fiadd word [ecx]
je 0x407e9f
pop esi
xlatb
adc dword [edi - 0x5a], edx
add dword [esi], ebx
push ds
ror byte [ebp + edx*8 + 7], 0x18
call fcn.00426293
test al, al
je 0x407e73
test eax, 0x839eb610
sbb eax, 0x414e940
mov ah, 0x77
and eax, 0x96c70b5f
mov esp, 0xe3f87304
add al, 0xee
jnp 0x407e2f
mov ecx, 0xdde9276c
mov ebx, dword [ebp - 0x120]
cmp dword [ebx + 0xb4], 0
je 0x407eae
push 1
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x18
lea ecx, [ebx + 0x14]
mov eax, esp
push ecx
push eax
call fcn.0042a717
mov ecx, dword [ebx + 0xb4]
add esp, 8
push dword [ebp - 0x134]
call fcn.004039e0
add byte [ebx - 0x4a00f73c], al
int3
cmp dword [ebp - 0x8c], 8
lea eax, [ebp - 0xa0]
cmovae eax, dword [ebp - 0xa0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x408275
lea eax, [ebp - 0x124]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x407f03
mov eax, dword [ecx]
jmp 0x407f05
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xa0]
push edx
push eax
call fcn.00401ff0
call fcn.00427a8a
add esp, 0x1c
mov dword [ebx + 0x68], eax
jmp 0x408275
call fcn.00426026
test al, al
je 0x407f42
push edx
xchg ch, al
pop esi
clc
in al, 0x4c
mov ecx, 0x8afdaf9
push edx
fidiv word [eax - 0x277274a6]
invalid
mov ecx, dword [ebp - 0x128]
push 0xffffffffffffffff
push 0
push ecx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.00401dc0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401dc0
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 8
push str.49394357036758401159024368452929
push eax
call fcn.00426795
mov esi, eax
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 9
push str.52649136031133690811135009474200
push eax
call fcn.00426795
push esi
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
push eax
call fcn.0042a369
mov eax, dword [ebp - 0xec]
add esp, 0x1c
mov byte [ebp - 4], 9
cmp eax, 0x10
jb 0x40801f
mov ecx, dword [ebp - 0x100]
inc eax
cmp eax, 0x1000
jb 0x408016
test cl, 0x1f
je 0x407ff2
call fcn.0044a551
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x407ffe
call fcn.0044a551
sub ecx, eax
cmp ecx, 4
jae 0x40800a
call fcn.0044a551
cmp ecx, 0x23
jbe 0x408014
call fcn.0044a551
mov ecx, eax
push ecx
call fcn.0043c2d6
add esp, 4
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0xec], 0xf
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0x100], 0
mov byte [ebp - 4], 8
cmp eax, 0x10
jb 0x40808e
mov ecx, dword [ebp - 0x118]
inc eax
cmp eax, 0x1000
jb 0x408085
test cl, 0x1f
je 0x408061
call fcn.0044a551
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x40806d
call fcn.0044a551
sub ecx, eax
cmp ecx, 4
jae 0x408079
call fcn.0044a551
cmp ecx, 0x23
jbe 0x408083
call fcn.0044a551
mov ecx, eax
push ecx
call fcn.0043c2d6
add esp, 4
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
mov edi, dword [ebp - 0x18]
lea edx, [ebp - 0x40]
cmovae ecx, dword [ebp - 0x28]
mov esi, edi
cmp dword [ebp - 0x2c], 0x10
mov ebx, dword [ebp - 0x30]
cmovae edx, dword [ebp - 0x40]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x408110
sub esi, 4
jb 0x4080d1
nop word [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4080d6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x4080c0
cmp esi, 0xfffffffc
je 0x40810a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x408103
cmp esi, 0xfffffffd
je 0x40810a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x408103
cmp esi, 0xfffffffe
je 0x40810a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x408103
cmp esi, 0xffffffff
je 0x40810a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x40810a
sbb eax, eax
or eax, 1
jmp 0x40810c
xor eax, eax
test eax, eax
jne 0x408165
cmp ebx, edi
jb 0x408165
ja 0x408165
call fcn.0042d47b
mov ebx, dword [ebp - 0x120]
sub esp, 0x18
mov ecx, esp
mov dword [ebx + 0xc], eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x408158
mov eax, dword [ecx]
mov byte [eax], 0
lea eax, [ebx + 0x14]
jmp 0x4081e8
mov eax, ecx
mov byte [eax], 0
lea eax, [ebx + 0x14]
jmp 0x4081e8
call fcn.0042d47b
mov ebx, dword [ebp - 0x120]
sub esp, 0x18
mov ecx, esp
mov dword [ebx + 0xc], eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x40819e
mov eax, dword [ecx]
jmp 0x4081a0
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.00401dc0
mov ecx, ebx
call fcn.004074e0
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x4081ff
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], eax
jb 0x4081e0
mov eax, dword [ecx]
jmp 0x4081e2
mov eax, ecx
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0xffffffffffffffff
push 0
push eax
call fcn.00401dc0
mov ecx, ebx
call fcn.004074e0
mov dword [ebp - 0x124], eax
call fcn.0042d47b
sub eax, dword [ebx + 0xc]
cmp dword [ebp - 0x124], 0
mov dword [ebx + 0xc], eax
lea eax, [ebp - 0x70]
jne 0x40821a
push 1
jmp 0x40821c
push 2
cmp dword [ebp - 0x5c], 0x10
cmovae eax, dword [ebp - 0x70]
push eax
push 1
push 1
call fcn.00404c20
mov ecx, eax
call fcn.00416d40
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x40824a
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00402210
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 6
cmp eax, 0x10
jb 0x408275
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00402210
call fcn.004264bb
test al, al
je 0x40829b
out 0xa7, al
dec eax
inc edi
jbe 0x4082b0
add ebx, dword [esp + eax*2]
sub dh, byte [edi]
mov dh, 0xa7
in eax, dx
sbb eax, 0xf8301450
retf 0x66da
call fcn.004265cf
test al, al
je 0x4082c2
ret
sahf
sbb cl, byte [ecx + edx*8 - 0x7716104e]
inc ecx
pop ebx
sub edx, dword [edx]
mov eax, 0x1327d39a
cmp dword [ebp - 0x124], 0
jne 0x4082e4
push str.size__0
push 0x89
call fcn.0042b688
add esp, 8
xor esi, esi
jmp 0x40843f
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x12c], 0
call fcn.00426614
test al, al
je 0x40831d
mov ah, 0x9d
and cl, 0xef
cli
cmc
pop eax
push cs
mov bh, 0xf7
mov es, word [ecx]
fmul st(7)
jno 0x4082f8
invalid
lea ecx, [ebp - 0x119]
call fcn.0041d360
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0xb
lea edi, [eax + 0x44]
push edi
push ecx
lea ecx, [ebp - 0x138]
push ecx
push dword [ebp - 0x124]
lea ecx, [ebp - 0x119]
push dword [eax + 0x68]
call fcn.004093c0
mov ecx, dword [ebp - 0x138]
test ecx, ecx
je 0x408413
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x408413
push eax
push ecx
call fcn.0040b6e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x408434
lea eax, [ebp - 0x118]
push edi
push eax
call fcn.0042a717
add esp, 8
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0xc
jb 0x4083a4
mov eax, dword [eax]
push eax
push 0x89
call fcn.0042b688
add esp, 8
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x118]
call fcn.0041a3f0
push dword [ebp - 0x12c]
lea eax, [ebp - 0x118]
push eax
call fcn.004054e0
add esp, 8
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 0xd
jb 0x4083e2
mov eax, dword [eax]
push eax
push 0x89
call fcn.0042b688
add esp, 8
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x118]
call fcn.0041a3f0
push str.hMoudle__NULL
push 0x89
call fcn.0042b688
add esp, 8
jmp 0x408434
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
push 0x89
call fcn.0042b688
add esp, 8
xor esi, esi
lea ecx, [ebp - 0x119]
call fcn.00401610
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x40845d
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.00402260
xor eax, eax
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], 0
mov word [ebp - 0xa0], ax
mov eax, dword [ebp - 0x44]
cmp eax, 0x10
jb 0x40848f
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00402210
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
cmp eax, 8
jb 0x4084bf
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.00402260
xor eax, eax
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc0], 0
cmp eax, 0x10
jb 0x4084f1
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00402210
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x70], 0
cmp eax, 8
jb 0x408521
inc eax
lea ecx, [ebp - 0xe8]
push eax
push dword [ebp - 0xe8]
call fcn.00402260
xor eax, eax
mov dword [ebp - 0xd4], 7
mov word [ebp - 0xe8], ax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xd8], 0
cmp eax, 8
jb 0x40855c
inc eax
lea ecx, [ebp - 0xb8]
push eax
push dword [ebp - 0xb8]
call fcn.00402260
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov dword [ebp - 0xa4], 7
mov dword [ebp - 0xa8], 0
mov word [ebp - 0xb8], ax
cmp ecx, 8
jb 0x408594
inc ecx
push ecx
push dword [ebp - 0x88]
lea ecx, [ebp - 0x88]
call fcn.00402260
mov eax, esi
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.0043c551
mov esp, ebp
pop ebp
ret 0xc