Function at 0x404900
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a2532
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x62e10c]
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 ebx, ecx
mov dword [ebp - 0xd8], ebx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xdc], eax
lea edi, [ebx + 0x4c]
mov dword [ebp - 4], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 0xe4], edi
cmp edi, eax
je 0x404962
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00401bc0
add ebx, 0x64
cmp ebx, edi
je 0x404975
push 0xffffffffffffffff
push 0
push edi
mov ecx, ebx
call fcn.00401bc0
lea eax, [ebp - 0x28]
push str.49394357036758401159024368452929
push eax
call fcn.00423f48
mov esi, eax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 1
push str.52649136031133690811135009474200
push eax
call fcn.00423f48
push esi
push eax
push ebx
mov byte [ebp - 4], 2
call fcn.004212d5
mov eax, dword [ebp - 0x8c]
add esp, 0x1c
cmp eax, 8
jb 0x4049c7
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x90], 0
cmp eax, 8
jb 0x4049fc
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00401fa0
call fcn.00424b6b
test al, al
je 0x404a25
push ebx
leave
scasb al, byte es:[edi]
pop eax
fidiv word [eax]
in eax, 0xc5
aad 0xcd
mov ebx, 0xec03c149
sbb al, 0xce
push cs
push edi
pop es
pop ss
out dx, eax
enter 0xffffffffffffc879, 0x1c
xor byte [eax - 0x1c], dl
wait
call fcn.00425000
test al, al
je 0x404a50
fadd dword [edx]
ja 0x404a54
invalid
xor eax, eax
mov dword [ebp - 0xbc], 7
push eax
push 0x622454
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
call fcn.00401ac0
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 0x622454
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x60], 0
mov word [ebp - 0x70], ax
call fcn.00401ac0
mov byte [ebp - 4], 4
cmp dword [edi + 0x14], 8
jb 0x404ab2
inc esp
invalid
mov eax, dword [edi]
jmp 0x404ab4
mov eax, edi
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00424164
mov byte [ebp - 4], 5
lea eax, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
cmovae eax, dword [ebp - 0x58]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0042405d
add esp, 0x10
mov esi, eax
lea eax, [ebp - 0x58]
cmp eax, esi
je 0x404b15
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x404af8
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x44], 7
push esi
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov word [ebp - 0x58], ax
call fcn.004054c0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x404b2e
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00401fa0
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004284b6
push 0
call fcn.00449e5c
mov dword [ebp - 0xe8], eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x78], 0
mov word [ebp - 0x88], ax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], eax
mov word [ebp - 0x40], ax
mov byte [ebp - 4], 9
mov dword [ebp - 0xe0], eax
call fcn.00424c7f
test al, al
je 0x404b9d
pushal
out 0xa5, eax
pop edi
inc eax
or byte [esi - 0x25830a27], 0x5f
dec ebp
sbb eax, 0x8b50136c
mov ebp, 0xffffff1c
call fcn.00424bf5
test al, al
je 0x404bbc
xor dword [edi + 0x4d6ef549], 0x4c
pop ebp
mov esp, 0x36ec9a3d
xchg edx, eax
or ch, 0xe8
jecxz 0x404bff
lea ebx, [esi - 0x66]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x88]
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 0x404bf9
mov eax, dword [ecx]
jmp 0x404bfb
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
push edx
push edi
mov word [eax], dx
call fcn.00401bc0
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0xd8]
mov ecx, ebx
push esi
call fcn.00403c20
test al, al
je 0x404e6a
cmp dword [ebp - 0xbc], 8
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xe0], 1
cmovae eax, dword [ebp - 0xd0]
push eax
call fcn.00449d89
add eax, dword [ebx]
add esp, 4
cmp eax, dword [ebp - 0xe8]
jl 0x404c75
mov eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0x70]
cmp eax, ecx
je 0x404e17
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00401bc0
jmp 0x404e17
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004284b6
add esp, 8
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 0x10
jb 0x404c91
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c434
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004052f0
lea ecx, [ebp - 0x28]
call fcn.00401890
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401930
cmp dword [ebp - 0x30], 0
jne 0x404d20
lea esi, [ebx + 0x64]
mov ecx, edi
mov edx, esi
call fcn.00405860
test al, al
je 0x404d1d
lea eax, [ebp - 0xa0]
push esi
push eax
call fcn.004284b6
add esp, 8
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], 0x10
jb 0x404cf0
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c434
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004052f0
lea ecx, [ebp - 0x28]
call fcn.00401890
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401930
mov esi, dword [ebp + 8]
cmp dword [ebp - 0x74], 8
lea ecx, [ebp - 0x88]
push dword [ebp - 0x78]
cmovae ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae eax, dword [ebp - 0x40]
push dword [ebp - 0x30]
push eax
call fcn.00403070
add esp, 0x10
test eax, eax
jne 0x404e6a
mov eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0x70]
cmp eax, ecx
je 0x404d6d
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00401bc0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xec], 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 0x404d9e
mov eax, dword [ecx]
jmp 0x404da0
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x70]
push edx
push eax
call fcn.00401bc0
sub esp, 0x18
mov byte [ebp - 4], 0xc
mov ecx, esp
mov dword [ebp - 0xe8], 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 0x404de6
mov eax, dword [ecx]
jmp 0x404de8
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x88]
push edx
push eax
call fcn.00401bc0
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
push edi
call fcn.004028f0
push esi
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.00404220
cmp dword [ebp - 0xa4], 0x10
lea esi, [ebp - 0xb8]
mov eax, dword [0x637908]
cmovae esi, dword [ebp - 0xb8]
test eax, eax
jne 0x404e53
push 0xdc
call fcn.00436730
add esp, 4
mov dword [ebp - 0xec], eax
mov ecx, eax
call fcn.0040f400
mov dword [0x637908], eax
push 0
push esi
sub esp, 8
mov ecx, eax
call fcn.0040ffa0
mov esi, 1
jmp 0x4051a3
cmp dword [ebp + 0x28], 0
jne 0x404e85
mov ecx, dword [ebp - 0xdc]
push 0x622454
call fcn.00401a70
jmp 0x4051a1
mov edi, dword [ebp - 0xdc]
cmp dword [edi + 0x10], 0
jne 0x404f3b
test esi, esi
je 0x404edf
add ebx, 0x1c
cmp dword [ebx + 0x14], 8
jb 0x404ea4
mov ebx, dword [ebx]
lea eax, [ebp - 0x28]
push ebx
push eax
call fcn.004245a0
add esp, 8
mov ecx, edi
push eax
call fcn.004052f0
lea ecx, [ebp - 0x28]
call fcn.00401890
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00424305
add esp, 8
mov byte [ebp - 4], 0xe
jmp 0x404f23
add ebx, 4
cmp dword [ebx + 0x14], 8
jb 0x404eea
mov ebx, dword [ebx]
lea eax, [ebp - 0x28]
push ebx
push eax
call fcn.004245a0
add esp, 8
mov ecx, edi
push eax
call fcn.004052f0
lea ecx, [ebp - 0x28]
call fcn.00401890
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00424305
add esp, 8
mov byte [ebp - 4], 0xf
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
call fcn.00405660
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
call fcn.00401890
call fcn.00424fbb
test al, al
je 0x404f54
mov al, byte [0x2995e874]
sbb al, 0xd5
dec ebp
invalid
call fcn.00424d09
test al, al
je 0x404f74
mov ah, 0xa2
or eax, 0xef11c757
pop esp
sub edx, dword [esp + eax + 0x2b]
and byte [ebp + 0x37869d7f], bh
invalid
call fcn.00424bf5
test al, al
je 0x404fa2
fstp qword [ecx + 0x1f445172]
push es
inc edi
pushal
add al, dl
cld
push eax
das
retf 0x3c8b
cmp dword [edi + 0x14], 8
jb 0x404fac
mov eax, dword [edi]
jmp 0x404fae
mov eax, edi
push eax
call fcn.00422718
mov esi, dword [ebp - 0xe4]
add esp, 4
cmp dword [esi + 0x14], 8
jb 0x404fc7
mov ecx, dword [esi]
jmp 0x404fc9
mov ecx, esi
mov ebx, dword [ebp - 0xd8]
add ebx, 0x64
cmp dword [ebx + 0x14], 8
jb 0x404fdc
mov eax, dword [ebx]
jmp 0x404fde
mov eax, ebx
push dword [esi + 0x10]
push ecx
push dword [ebx + 0x10]
push eax
call fcn.00403070
mov ecx, dword [ebp - 0xd8]
add esp, 0x10
push edi
test eax, eax
je 0x405016
push 0
call fcn.00404580
test eax, eax
setne al
mov byte [ebp - 0xd1], al
test al, al
jne 0x405026
mov ecx, dword [ebp - 0xd8]
push edi
push 1
call fcn.00404580
test eax, eax
setne byte [ebp - 0xd1]
cmp dword [edi + 0x14], 8
jb 0x405030
mov eax, dword [edi]
jmp 0x405032
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40517b
cmp byte [ebp - 0xd1], 0
je 0x40517b
cmp dword [ebp - 0xe0], 0
lea eax, [ebp - 0xb8]
jne 0x405061
push 2
jmp 0x405063
push 3
cmp dword [ebp - 0xa4], 0x10
cmovae eax, dword [ebp - 0xb8]
push eax
sub esp, 8
call fcn.00405830
mov ecx, eax
call fcn.0040ffa0
cmp dword [ebp - 0x30], 0
jne 0x40512f
lea eax, [ebp - 0xa0]
push esi
push eax
call fcn.004284b6
add esp, 8
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 0x10
jb 0x4050a7
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c434
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004052f0
lea ecx, [ebp - 0x28]
call fcn.00401890
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401930
cmp dword [ebp - 0x30], 0
jne 0x40512f
mov edx, ebx
mov ecx, esi
call fcn.00405860
test al, al
je 0x40512f
lea eax, [ebp - 0xa0]
push ebx
push eax
call fcn.004284b6
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.00405370
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c434
add esp, 8
lea ecx, [ebp - 0x40]
push eax
call fcn.004052f0
lea ecx, [ebp - 0x28]
call fcn.00401890
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 9
call fcn.00401930
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xec], esp
push edi
call fcn.004028f0
sub esp, 0x18
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x40]
mov dword [ebp - 0xe8], esp
mov ecx, esp
push eax
call fcn.004028f0
sub esp, 0x18
mov byte [ebp - 4], 0x13
mov ecx, esp
push esi
call fcn.004028f0
push dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
mov byte [ebp - 4], 9
call fcn.00404220
jmp 0x4051a1
cmp dword [ebp - 0xa4], 0x10
lea eax, [ebp - 0xb8]
push 1
cmovae eax, dword [ebp - 0xb8]
push eax
sub esp, 8
call fcn.00405830
mov ecx, eax
call fcn.0040ffa0
xor esi, esi
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x4051b8
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x30], 0
cmp eax, 8
jb 0x4051e7
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x74], 7
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x78], 0
mov word [ebp - 0x88], ax
call fcn.00401930
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x40521e
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x48], 0
cmp eax, 8
jb 0x405247
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x60], 0
cmp eax, 8
jb 0x405279
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0xbc], 7
lea ecx, [ebp + 0xc]
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xd0], ax
call fcn.00401890
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.0043671f
mov esp, ebp
pop ebp
ret 0x24