Function at 0x408150
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x596a83
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x61e0b8]
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 - 0x124], ecx
call fcn.0042b4db
test al, al
je 0x4081a4
pop ecx
pop eax
pop edx
pop esi
pop ebx
push edi
push esi
push esi
pop edx
pop eax
pop esp
push ebx
pop ecx
pop ebx
pop ebp
pop edx
push ebx
pop eax
pop eax
pop ebp
push eax
pop ebp
push esi
call fcn.0042b451
test al, al
je 0x4081be
pop esi
push edx
push edx
pop edi
pop esi
pop eax
pop esi
push edi
push esi
pop edx
pop edi
push ebx
pop esp
push edi
pop ecx
push eax
pop edx
call fcn.0042b7d2
test al, al
je 0x4081e1
push edx
pop edi
push esp
push eax
push eax
pop esp
pop ebp
pop edi
pop eax
push edx
pop edx
push esi
push ecx
push eax
push edx
push ebp
pop edi
push ebx
pop edi
pop eax
push esi
pop edx
pop edx
pop esp
pop ebp
push edi
mov dword [ebp - 0x128], 0
call fcn.0042b970
test al, al
je 0x40820e
push eax
push edi
pop edi
push ecx
pop ebx
push edi
pop edi
pop eax
pop esp
pop eax
pop edx
push eax
pop ebp
pop esp
pop ecx
push esi
pop edx
pop ebx
push edi
pop ebx
push eax
pop ecx
push ebx
pop edi
push esi
push eax
mov ebx, dword [ebp - 0x124]
mov dword [ebp - 0x120], 0
lea eax, [ebx + 0x14]
push eax
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x88]
push eax
call fcn.0041f875
mov dword [ebp - 4], 0
lea eax, [ebp - 0x88]
cmp dword [ebp - 0x74], 8
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0042ab40
mov byte [ebp - 4], 1
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
cmovae eax, dword [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0042aa55
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0041fc3d
add esp, 0x20
mov byte [ebp - 4], 3
call fcn.0042b9fa
test al, al
je 0x4082a6
push ecx
push ebp
push eax
pop esp
pop ecx
push edx
pop esp
pop ebp
pop ecx
push esp
push ebx
push edx
pop edi
pop esp
pop ebp
pop edx
push edx
push ecx
pop ecx
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0041e5fd
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0041fc3d
add esp, 0x10
mov byte [ebp - 4], 5
mov esi, dword [ebx]
cmp esi, dword [ebx + 4]
je 0x40845a
cmp dword [esi + 0x14], 0x10
jb 0x4082f1
mov edx, dword [esi]
jmp 0x4082f3
mov edx, esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x40830e
xor ecx, ecx
jmp 0x40831c
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408313
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00402d00
cmp dword [ebp - 0xa4], 0x10
lea ecx, [ebp - 0xb8]
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0xb8]
cmp dword [ebp - 0x14], 0x10
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0xa8]
cmovae edx, ebx
cmp eax, edi
cmovb edi, eax
mov eax, dword [ebp - 0x14]
test edi, edi
je 0x4083b4
sub edi, 4
jb 0x408372
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x408377
add edx, 4
add ecx, 4
sub edi, 4
jae 0x408361
cmp edi, 0xfffffffc
je 0x4083ab
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4083a4
cmp edi, 0xfffffffd
je 0x4083ab
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x4083a4
cmp edi, 0xfffffffe
je 0x4083ab
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x4083a4
cmp edi, 0xffffffff
je 0x4083ab
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x4083ab
sbb eax, eax
or eax, 1
jmp 0x4083ad
xor eax, eax
test eax, eax
jne 0x4083c3
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jb 0x4083c3
jbe 0x40840b
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x4083f7
inc eax
cmp eax, 0x1000
jb 0x4083ee
test byte [ebp - 0x28], 0x1f
jne 0x408428
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x408428
sub ebx, eax
cmp ebx, 4
jb 0x408428
cmp ebx, 0x23
ja 0x408428
mov ebx, eax
push ebx
call fcn.0041ae54
add esp, 4
mov eax, dword [ebp - 0x124]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x4082e7
jmp 0x40845a
mov dword [ebp - 0x128], 1
cmp eax, 0x10
jb 0x40845a
inc eax
cmp eax, 0x1000
jb 0x408451
test byte [ebp - 0x28], 0x1f
je 0x40842d
call fcn.0043e1d9
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x408439
call fcn.0043e1d9
sub ebx, eax
cmp ebx, 4
jae 0x408445
call fcn.0043e1d9
cmp ebx, 0x23
jbe 0x40844f
call fcn.0043e1d9
mov ebx, eax
push ebx
call fcn.0041ae54
add esp, 4
call fcn.0042b4db
test al, al
je 0x408480
pop ebp
push ebx
push edx
pop esp
push edi
push eax
pop edx
pop edi
pop edi
push edi
pop esp
pop ebp
pop ebp
push edx
push edi
pop eax
pop eax
push ebp
push ebp
pop edi
push esp
pop ebp
pop esi
pop eax
pop eax
push ebp
pop ebx
push ebx
pop ebp
call fcn.0042b7d2
test al, al
je 0x40849d
pop ebp
push ecx
pop eax
push ebp
push ecx
push edx
push esp
pop ebx
push ebp
push ebx
pop esp
push ebp
pop eax
push esi
pop ebp
push ebx
push edi
pop ebx
pop eax
pop edi
cmp dword [ebp - 0x128], 0
jne 0x4085ae
mov eax, dword [ebp - 0xa4]
cmp eax, 0x10
jb 0x4084fa
mov ecx, dword [ebp - 0xb8]
inc eax
cmp eax, 0x1000
jb 0x4084f1
test cl, 0x1f
je 0x4084cd
call fcn.0043e1d9
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x4084d9
call fcn.0043e1d9
sub ecx, eax
cmp ecx, 4
jae 0x4084e5
call fcn.0043e1d9
cmp ecx, 0x23
jbe 0x4084ef
call fcn.0043e1d9
mov ecx, eax
push ecx
call fcn.0041ae54
add esp, 4
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xa4], 0xf
mov dword [ebp - 0xa8], 0
mov byte [ebp - 0xb8], 0
cmp eax, 8
jb 0x40852a
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.004030a0
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x48], 0
cmp eax, 0x10
jb 0x40858e
mov ecx, dword [ebp - 0xd0]
inc eax
cmp eax, 0x1000
jb 0x408585
test cl, 0x1f
je 0x408561
call fcn.0043e1d9
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x40856d
call fcn.0043e1d9
sub ecx, eax
cmp ecx, 4
jae 0x408579
call fcn.0043e1d9
cmp ecx, 0x23
jbe 0x408583
call fcn.0043e1d9
mov ecx, eax
push ecx
call fcn.0041ae54
add esp, 4
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
jmp 0x408c03
call fcn.0042b679
test al, al
je 0x4085d4
push ecx
push esi
pop eax
pop eax
pop esi
pop ecx
push eax
push edx
pop edx
push ebp
pop esp
push ebx
pop edi
push ebx
pop ebp
push edi
push ecx
pop eax
push eax
pop ebx
push edx
push ebp
push edi
push ecx
pop edi
push ecx
push esp
pop eax
pop esi
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 0x4085ff
mov eax, dword [ecx]
jmp 0x408601
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x40]
push edx
push eax
call fcn.00402ae0
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0xa0]
mov esi, dword [ebp - 0x124]
mov ecx, esi
push edi
push eax
call fcn.00407c90
cmp dword [ebp + 0xc], 0
mov byte [ebp - 4], 6
je 0x4086fc
call fcn.0042b748
test al, al
je 0x408651
pop eax
push esi
pop eax
pop esp
pop edx
pop ebp
pop ebx
push edi
push edx
push edi
pop edx
push edx
push ebp
push eax
push ebp
push edx
cmp dword [esi + 0xb4], 0
je 0x408681
push 1
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x18
lea ebx, [esi + 0x14]
mov eax, esp
push ebx
push eax
call fcn.0041f875
mov ecx, dword [esi + 0xb4]
add esp, 8
push edi
call fcn.004066b0
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 0x4089dd
lea eax, [ebp - 0x120]
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 0x4086d6
mov eax, dword [ecx]
jmp 0x4086d8
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xa0]
push edx
push eax
call fcn.00402ae0
call fcn.004239af
add esp, 0x1c
mov dword [esi + 0x68], eax
jmp 0x4089dd
call fcn.0042b679
test al, al
je 0x408717
push esp
pop esp
pop ecx
pop eax
pop ecx
push esi
pop esp
push edx
push esi
pop ecx
pop eax
pop ebp
pop edx
push edx
pop esi
push ebx
pop edx
pop ecx
call fcn.0042b679
test al, al
je 0x408740
push ecx
push ebx
pop ecx
pop eax
pop eax
push ebp
push ebp
push ebp
push eax
pop eax
push ebx
pop ecx
pop ebx
pop edx
pop edx
pop edi
push edx
push edx
push eax
push eax
push edi
push ecx
pop ebx
pop eax
pop ebp
pop ecx
push eax
pop ecx
pop esp
push eax
pop esp
pop edi
call fcn.0042b7d2
test al, al
je 0x40875c
pop ebx
pop ecx
push eax
pop edx
push edx
push edx
pop edx
pop eax
pop ecx
push esp
push esi
pop ecx
pop edi
push ecx
push ebx
push esp
push esp
push ebx
pop ebp
mov ebx, dword [ebp - 0x11c]
lea ecx, [ebp - 0xe8]
push 0xffffffffffffffff
push 0
push ebx
mov dword [ebp - 0xd4], 0xf
mov dword [ebp - 0xd8], 0
mov byte [ebp - 0xe8], 0
call fcn.00402e00
push 0xffffffffffffffff
mov byte [ebp - 4], 7
lea eax, [ebp - 0xe8]
push 0
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00402e00
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 8
push str.63615166036855371160304467461515
push eax
call fcn.00424ec0
mov esi, eax
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 9
push str.95172403455928254459072330566821
push eax
call fcn.00424ec0
push esi
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
push eax
call fcn.0041f34b
add esp, 0x1c
lea ecx, [ebp - 0x118]
call fcn.00402760
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 8
call fcn.00402760
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
push dword [ebp - 0x18]
cmovae ecx, dword [ebp - 0x28]
lea eax, [ebp - 0xe8]
cmp dword [ebp - 0xd4], 0x10
push ecx
cmovae eax, dword [ebp - 0xe8]
push dword [ebp - 0xd8]
push eax
call fcn.00409050
add esp, 0x10
test eax, eax
jne 0x408897
call fcn.0042c8ef
mov esi, dword [ebp - 0x124]
sub esp, 0x18
mov ecx, esp
mov dword [esi + 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 0x408888
mov eax, dword [ecx]
push 0xffffffffffffffff
push 0
push ebx
mov byte [eax], 0
jmp 0x408922
mov eax, ecx
push 0xffffffffffffffff
push 0
push ebx
mov byte [eax], 0
jmp 0x408922
call fcn.0042c8ef
mov esi, dword [ebp - 0x124]
sub esp, 0x18
mov ecx, esp
mov dword [esi + 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 0x4088d0
mov eax, dword [ecx]
jmp 0x4088d2
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0xe8]
push 0
push eax
call fcn.00402e00
mov ecx, esi
call fcn.00407e30
mov dword [ebp - 0x120], eax
test eax, eax
jne 0x408934
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 0x408915
mov eax, dword [ecx]
jmp 0x408917
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.00402e00
mov ecx, esi
call fcn.00407e30
mov dword [ebp - 0x120], eax
call fcn.0042c8ef
sub eax, dword [esi + 0xc]
cmp dword [ebp - 0x120], 0
mov dword [esi + 0xc], eax
lea esi, [ebp - 0xd0]
mov eax, dword [0x6278a0]
jne 0x408988
cmp dword [ebp - 0xbc], 0x10
cmovae esi, dword [ebp - 0xd0]
test eax, eax
jne 0x408984
push 0x104
call fcn.0041b125
add esp, 4
mov dword [ebp - 0x11c], eax
mov ecx, eax
call fcn.0040e110
mov dword [0x6278a0], eax
push 1
jmp 0x4089bb
cmp dword [ebp - 0xbc], 0x10
cmovae esi, dword [ebp - 0xd0]
test eax, eax
jne 0x4089b9
push 0x104
call fcn.0041b125
add esp, 4
mov dword [ebp - 0x11c], eax
mov ecx, eax
call fcn.0040e110
mov dword [0x6278a0], eax
push 2
push esi
sub esp, 8
mov ecx, eax
call fcn.0040ecb0
lea ecx, [ebp - 0x28]
call fcn.00402760
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 6
call fcn.00402760
call fcn.0042b382
test al, al
je 0x4089f6
push edi
pop esi
push ebx
push esi
push ebx
pop eax
push esi
push esp
push ebp
push edi
pop esi
push ebx
pop esp
pop esi
pop ebp
push esp
call fcn.0042b6be
test al, al
je 0x408a0f
push ebp
push ebx
push ebp
pop ebx
pop esi
push edi
pop edi
push edx
pop edi
pop eax
push edi
pop ebp
pop esp
pop esp
push edi
pop ecx
cmp dword [ebp - 0x120], 0
jne 0x408a22
push str.size__0
jmp 0x408b84
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x11c], 0
call fcn.0042b451
test al, al
je 0x408a50
push eax
push edx
pop ecx
pop esp
pop ecx
pop ebx
push ecx
push esi
push edi
push edi
pop esi
pop ebx
pop ebx
pop edi
pop ebp
push ecx
pop esp
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x11c]
lea edi, [eax + 0x44]
push edi
push ecx
lea ecx, [ebp - 0x128]
push ecx
push dword [ebp - 0x120]
push dword [eax + 0x68]
call fcn.00409540
mov ecx, dword [ebp - 0x128]
test ecx, ecx
je 0x408b72
mov esi, dword [ebp - 0x11c]
test esi, esi
je 0x408b72
mov edx, esi
call fcn.0040b910
mov ebx, eax
test ebx, ebx
jne 0x408b27
lea eax, [ebp - 0x100]
push edi
push eax
call fcn.0041f875
add esp, 8
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], 8
jb 0x408abf
mov eax, dword [eax]
push eax
push 0x89
call fcn.00422741
add esp, 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x100]
call fcn.00402600
lea eax, [ebp - 0x100]
push esi
push eax
call fcn.004056e0
add esp, 8
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], 8
jb 0x408af8
mov eax, dword [eax]
push eax
push 0x89
call fcn.00422741
add esp, 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x100]
call fcn.00402600
push str.hMoudle__NULL
push 0x89
call fcn.00422741
add esp, 8
lea ecx, [ebp - 0xa0]
call fcn.00402600
lea ecx, [ebp - 0xb8]
call fcn.00402760
lea ecx, [ebp - 0x58]
call fcn.00402600
lea ecx, [ebp - 0xd0]
call fcn.00402760
lea ecx, [ebp - 0x70]
call fcn.00402600
lea ecx, [ebp - 0x40]
call fcn.00402600
lea ecx, [ebp - 0x88]
call fcn.00402600
mov eax, ebx
jmp 0x408c72
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
push 0x89
call fcn.00422741
mov eax, dword [ebp - 0x8c]
add esp, 8
cmp eax, 8
jb 0x408baf
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.004030a0
xor eax, eax
mov dword [ebp - 0x8c], 7
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x90], eax
mov word [ebp - 0xa0], ax
call fcn.00402760
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x408be8
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.004030a0
xor eax, eax
mov dword [ebp - 0x44], 7
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x48], eax
mov word [ebp - 0x58], ax
call fcn.00402760
mov eax, dword [ebp - 0x5c]
cmp eax, 8
jb 0x408c18
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.004030a0
xor eax, eax
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x60], 0
cmp eax, 8
jb 0x408c41
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004030a0
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 0x408c70
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.004030a0
xor eax, eax
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.0041ae59
mov esp, ebp
pop ebp
ret 0xc