Function at 0x407ab0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59b553
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x6240b8]
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
call fcn.004277dc
test al, al
je 0x407b07
pop esp
pop ebp
pop edx
push esp
pop ecx
push ecx
pop esp
pop ecx
pop eax
pop ebx
push eax
pop esi
pop edx
push eax
pop ebp
push edx
pop ebp
push esp
push ebp
push ecx
pop ebx
push ecx
push edi
push eax
push ebp
push ebx
call fcn.00427a04
test al, al
je 0x407b26
push ebx
push edi
push ebp
pop ebx
push eax
push ebp
push eax
push ecx
push esi
pop esp
push esp
pop eax
pop ebx
pop esp
push ecx
pop ebx
pop eax
pop esi
pop ecx
pop eax
push esp
pop esp
call fcn.00427797
test al, al
je 0x407b4a
pop edx
push esp
pop ebx
push edi
push ecx
push ebp
push ecx
push edx
push ebx
pop edx
push edx
pop edi
pop ebp
push esp
push edx
pop ebx
push ecx
push edi
pop esi
push edx
pop ebx
pop edx
push eax
pop ebp
pop esi
push esp
pop ebp
mov dword [ebp - 0x11c], 0
call fcn.00427416
test al, al
je 0x407b70
pop ebx
push ebx
pop edx
pop ebp
pop ebx
push ebx
pop edi
pop esp
pop edx
push ebp
pop esi
push edx
pop ecx
push esi
push esp
pop ecx
push ebp
pop esp
pop ebx
call fcn.004276c8
test al, al
je 0x407b95
push edi
push eax
pop esp
push esi
push eax
push ebx
pop ebx
pop eax
push edx
push ebp
push esi
push edx
push edi
pop ebp
pop edi
pop ebx
push edx
pop esp
push esp
pop esi
pop ebx
push eax
push esi
pop esi
push ecx
push ebx
pop esi
push ecx
call fcn.004277dc
test al, al
je 0x407bb6
pop esp
push edx
push esp
pop edi
push esi
push ebx
pop ebp
pop ebp
push ebx
pop ebp
push esp
push edi
pop ecx
pop ecx
push esp
push esp
pop ecx
push edi
pop edx
pop ebp
push esp
pop eax
push edx
push ecx
mov eax, dword [ebp - 0x120]
add eax, 0x14
mov dword [ebp - 0x124], 0
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0042c372
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.00426a50
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.00426949
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0042c61b
add esp, 0x20
mov byte [ebp - 4], 3
call fcn.00427347
test al, al
je 0x407c55
push ebx
pop esi
pop edx
push eax
pop edi
push esi
push esp
push esp
pop eax
push edx
push esp
push ebp
pop esi
pop ebx
push ebx
push ebp
push eax
push esp
push esp
push ebx
pop ebp
pop ebx
pop ebx
push ecx
pop ecx
push edx
pop esi
push esp
push esi
push edx
pop eax
pop ebp
call fcn.00427683
test al, al
je 0x407c6e
pop eax
push esp
pop edx
push ebx
pop ecx
pop ebx
pop eax
push eax
pop esi
push edi
push edi
pop esi
push edx
pop ebp
pop esp
push ecx
call fcn.0042738c
test al, al
je 0x407c87
pop ebx
pop ecx
pop esp
pop ebp
pop esp
pop edi
pop ecx
pop eax
push ecx
push esp
push edi
push ebx
push eax
push ebx
pop ecx
pop esi
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0042267c
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0042c61b
add esp, 0x10
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x120]
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x407e49
nop
cmp dword [esi + 0x14], 0x10
jb 0x407cda
mov edx, dword [esi]
jmp 0x407cdc
mov edx, esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x407cf7
xor ecx, ecx
jmp 0x407d09
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407d00
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00406490
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 0x407da3
sub edi, 4
jb 0x407d61
nop
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x407d66
add edx, 4
add ecx, 4
sub edi, 4
jae 0x407d50
cmp edi, 0xfffffffc
je 0x407d9a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x407d93
cmp edi, 0xfffffffd
je 0x407d9a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x407d93
cmp edi, 0xfffffffe
je 0x407d9a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x407d93
cmp edi, 0xffffffff
je 0x407d9a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x407d9a
sbb eax, eax
or eax, 1
jmp 0x407d9c
xor eax, eax
test eax, eax
jne 0x407db2
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jb 0x407db2
jbe 0x407dfa
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x407de6
inc eax
cmp eax, 0x1000
jb 0x407ddd
test byte [ebp - 0x28], 0x1f
jne 0x407e17
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x407e17
sub ebx, eax
cmp ebx, 4
jb 0x407e17
cmp ebx, 0x23
ja 0x407e17
mov ebx, eax
push ebx
call fcn.0041eca4
add esp, 4
mov eax, dword [ebp - 0x120]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x407cd0
jmp 0x407e49
mov dword [ebp - 0x11c], 1
cmp eax, 0x10
jb 0x407e49
inc eax
cmp eax, 0x1000
jb 0x407e40
test byte [ebp - 0x28], 0x1f
je 0x407e1c
call fcn.004420b1
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x407e28
call fcn.004420b1
sub ebx, eax
cmp ebx, 4
jae 0x407e34
call fcn.004420b1
cmp ebx, 0x23
jbe 0x407e3e
call fcn.004420b1
mov ebx, eax
push ebx
call fcn.0041eca4
add esp, 4
call fcn.00427347
test al, al
je 0x407e6a
push ecx
pop edi
pop ebp
pop ebp
push ebp
push ebp
pop ebx
pop esi
pop edi
push edx
pop edi
push eax
pop edi
pop esi
pop esi
pop ebp
push edx
pop esp
pop edi
pop ebx
pop ebx
push ebp
pop ecx
pop eax
cmp dword [ebp - 0x11c], 0
jne 0x407f7b
mov eax, dword [ebp - 0xa4]
cmp eax, 0x10
jb 0x407ec7
mov ecx, dword [ebp - 0xb8]
inc eax
cmp eax, 0x1000
jb 0x407ebe
test cl, 0x1f
je 0x407e9a
call fcn.004420b1
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x407ea6
call fcn.004420b1
sub ecx, eax
cmp ecx, 4
jae 0x407eb2
call fcn.004420b1
cmp ecx, 0x23
jbe 0x407ebc
call fcn.004420b1
mov ecx, eax
push ecx
call fcn.0041eca4
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 0x407ef7
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00401b30
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 0x407f5b
mov ecx, dword [ebp - 0xd0]
inc eax
cmp eax, 0x1000
jb 0x407f52
test cl, 0x1f
je 0x407f2e
call fcn.004420b1
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x407f3a
call fcn.004420b1
sub ecx, eax
cmp ecx, 4
jae 0x407f46
call fcn.004420b1
cmp ecx, 0x23
jbe 0x407f50
call fcn.004420b1
mov ecx, eax
push ecx
call fcn.0041eca4
add esp, 4
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], 0
mov byte [ebp - 0xd0], 0
jmp 0x4085c0
call fcn.00427347
test al, al
je 0x407f98
pop edi
pop edi
push ecx
push ebx
push ebx
push esp
push edx
push edx
pop ebx
pop ebp
push esi
pop esi
pop ebx
push eax
pop esp
pop edi
push ecx
push esi
push ebp
push edi
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 0x407fc3
mov eax, dword [ecx]
jmp 0x407fc5
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x40]
push edx
push eax
call fcn.00401920
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 0xa0]
mov ebx, dword [ebp - 0x120]
mov ecx, ebx
push esi
push eax
call fcn.004075f0
cmp dword [ebp + 0xc], 0
mov byte [ebp - 4], 6
je 0x4080ca
call fcn.00427797
test al, al
je 0x40801f
push edx
push ebx
pop edi
push esp
pop ecx
push ecx
push edi
pop ebx
pop ebp
pop ebx
pop ebx
push esp
pop edi
pop eax
pop eax
push ebx
push esi
push esp
push ebx
push eax
mov ebx, dword [ebp - 0x120]
cmp dword [ebx + 0xb4], 0
je 0x40804f
push 1
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x18
lea edi, [ebx + 0x14]
mov eax, esp
push edi
push eax
call fcn.0042c372
mov ecx, dword [ebx + 0xb4]
add esp, 8
push esi
call fcn.00403c80
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 0x4083a9
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 0x4080a4
mov eax, dword [ecx]
jmp 0x4080a6
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xa0]
push edx
push eax
call fcn.00401920
call fcn.00424cda
add esp, 0x1c
mov dword [ebx + 0x68], eax
jmp 0x4083a9
call fcn.0042752a
test al, al
je 0x4080f5
push esi
push ebx
pop edi
pop ebp
pop ecx
pop edx
push ecx
pop edx
pop ebx
push esi
pop ecx
pop ecx
pop edi
pop eax
push ecx
pop ebx
pop ecx
pop esi
pop edi
pop ebx
pop edx
pop esp
push edi
push ecx
pop esi
pop ecx
pop esi
push esi
mov ebx, dword [ebp - 0x120]
call fcn.0042752a
test al, al
je 0x40811a
pop esp
push esi
pop edx
pop esp
pop esi
push edx
push edi
push ecx
pop ecx
push esi
push ecx
push ecx
pop eax
pop esi
pop ecx
pop ecx
push eax
push edx
pop esi
push esi
pop edi
pop esp
push ebp
pop esi
pop edx
pop ebp
pop esi
pop ebp
call fcn.00427347
test al, al
je 0x408137
pop eax
pop ecx
pop edi
pop edi
push ecx
push edi
pop ecx
pop ebp
pop ecx
pop ecx
pop esp
push edx
push ebx
push esi
pop eax
pop edi
push esi
push eax
pop ecx
push edi
push 0xffffffffffffffff
push 0
lea edi, [ebx + 0x14]
mov dword [ebp - 0xd4], 0xf
push edi
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0xd8], 0
mov byte [ebp - 0xe8], 0
call fcn.00406590
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.00406590
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 8
push str.04500542036812441102593467302929
push eax
call fcn.00425d2b
mov esi, eax
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 9
push str.10499561036756401167662868492416
push eax
call fcn.00425d2b
push esi
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
push eax
call fcn.004232a1
add esp, 0x1c
lea ecx, [ebp - 0x118]
call fcn.00404680
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 8
call fcn.00404680
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.00408ac0
add esp, 0x10
test eax, eax
jne 0x408269
call fcn.0042b549
sub esp, 0x18
mov dword [ebx + 0xc], eax
mov ecx, esp
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 0x40825a
mov eax, dword [ecx]
push 0xffffffffffffffff
push 0
push edi
mov byte [eax], 0
jmp 0x4082ee
mov eax, ecx
push 0xffffffffffffffff
push 0
push edi
mov byte [eax], 0
jmp 0x4082ee
call fcn.0042b549
sub esp, 0x18
mov dword [ebx + 0xc], eax
mov ecx, esp
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 0x40829c
mov eax, dword [ecx]
jmp 0x40829e
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0xe8]
push 0
push eax
call fcn.00406590
mov ecx, ebx
call fcn.00407790
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x408300
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 0x4082e1
mov eax, dword [ecx]
jmp 0x4082e3
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.00406590
mov ecx, ebx
call fcn.00407790
mov dword [ebp - 0x124], eax
call fcn.0042b549
sub eax, dword [ebx + 0xc]
lea esi, [ebp - 0xd0]
cmp dword [ebp - 0x124], 0
mov dword [ebx + 0xc], eax
mov eax, dword [0x62daf0]
jne 0x408354
cmp dword [ebp - 0xbc], 0x10
cmovae esi, dword [ebp - 0xd0]
test eax, eax
jne 0x408350
push 0xdc
call fcn.0041ef70
add esp, 4
mov dword [ebp - 0x11c], eax
mov ecx, eax
call fcn.0040ebb0
mov dword [0x62daf0], eax
push 1
jmp 0x408387
cmp dword [ebp - 0xbc], 0x10
cmovae esi, dword [ebp - 0xd0]
test eax, eax
jne 0x408385
push 0xdc
call fcn.0041ef70
add esp, 4
mov dword [ebp - 0x11c], eax
mov ecx, eax
call fcn.0040ebb0
mov dword [0x62daf0], eax
push 2
push esi
sub esp, 8
mov ecx, eax
call fcn.0040f7d0
lea ecx, [ebp - 0x28]
call fcn.00404680
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 6
call fcn.00404680
call fcn.004278ab
test al, al
je 0x4083d2
pop ecx
pop esi
push edx
pop esp
pop eax
push esi
push edi
pop esp
push edi
push esi
push esi
push eax
push ebx
pop eax
pop eax
pop ecx
pop eax
push esp
push esp
pop ecx
push eax
push edx
pop ecx
push esp
push esp
push edi
push ebp
push ebx
push edx
pop esi
push esi
push edx
cmp dword [ebp - 0x124], 0
jne 0x4083e5
push str.size__0
jmp 0x408541
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x120], 0
call fcn.0042752a
test al, al
je 0x408413
push ebp
pop ecx
pop edx
pop esi
pop edi
pop esp
pop esi
push edi
pop esp
push esi
push ecx
push edi
push edx
pop edi
pop edi
push edx
push edi
lea edi, [ebx + 0x44]
push edi
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x11c]
push eax
push dword [ebp - 0x124]
push dword [ebx + 0x68]
call fcn.004093c0
mov ecx, dword [ebp - 0x11c]
test ecx, ecx
je 0x40852f
mov esi, dword [ebp - 0x120]
test esi, esi
je 0x40852f
mov edx, esi
call fcn.0040b750
mov ebx, eax
test ebx, ebx
jne 0x4084e4
lea eax, [ebp - 0x100]
push edi
push eax
call fcn.0042c372
add esp, 8
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], 8
jb 0x40847c
mov eax, dword [eax]
push eax
push 0x89
call fcn.00427fcd
add esp, 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x100]
call fcn.00401590
lea eax, [ebp - 0x100]
push esi
push eax
call fcn.00402d60
add esp, 8
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], 8
jb 0x4084b5
mov eax, dword [eax]
push eax
push 0x89
call fcn.00427fcd
add esp, 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x100]
call fcn.00401590
push str.hMoudle__NULL
push 0x89
call fcn.00427fcd
add esp, 8
lea ecx, [ebp - 0xa0]
call fcn.00401590
lea ecx, [ebp - 0xb8]
call fcn.00404680
lea ecx, [ebp - 0x58]
call fcn.00401590
lea ecx, [ebp - 0xd0]
call fcn.00404680
lea ecx, [ebp - 0x70]
call fcn.00401590
lea ecx, [ebp - 0x40]
call fcn.00401590
lea ecx, [ebp - 0x88]
call fcn.00401590
mov eax, ebx
jmp 0x40862f
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
push 0x89
call fcn.00427fcd
mov eax, dword [ebp - 0x8c]
add esp, 8
cmp eax, 8
jb 0x40856c
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.00401b30
xor eax, eax
mov dword [ebp - 0x8c], 7
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x90], eax
mov word [ebp - 0xa0], ax
call fcn.00404680
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x4085a5
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00401b30
xor eax, eax
mov dword [ebp - 0x44], 7
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x48], eax
mov word [ebp - 0x58], ax
call fcn.00404680
mov eax, dword [ebp - 0x5c]
cmp eax, 8
jb 0x4085d5
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00401b30
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 0x4085fe
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00401b30
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 0x40862d
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00401b30
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.0041eca9
mov esp, ebp
pop ebp
ret 0xc