Function at 0x423698
Capabilities:
Check if file exists

Disassembly:
push 0x128
mov eax, 0x5d85c5
call fcn.00447fd9
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x124], eax
call fcn.0048630d
test al, al
je 0x4236d6
push edi
pop ebx
push edi
push edx
push ecx
pop ebx
pop edx
push ebx
pop eax
push eax
pop ebp
pop edi
pop ebp
pop esp
pop ecx
push ecx
push edx
push esp
push ecx
push edi
pop ebp
pop ecx
pop ebx
call fcn.004860a0
test al, al
je 0x4236f7
pop eax
pop ebx
pop edi
pop edi
pop ebp
pop edi
pop ecx
pop esp
push esp
pop edi
push eax
push ebp
pop esp
pop edi
pop edx
push ebx
pop esi
push edx
push esp
push ecx
pop ebp
pop ebp
pop edi
push edi
call fcn.0048612a
test al, al
je 0x423718
push esi
push esi
push edx
pop esi
pop ecx
push ecx
pop edi
pop eax
pop ebp
pop eax
push esp
push ecx
pop edx
pop eax
pop ebx
push esi
pop esp
pop ecx
push ecx
pop ebp
pop edi
pop esi
push esi
push ebp
xor edi, edi
mov dword [ebp - 0x12c], edi
call fcn.004862c8
test al, al
je 0x423741
push eax
push esi
push esi
push esi
pop esp
pop eax
pop esi
push ecx
push edi
push ecx
pop edx
push ecx
pop esp
pop esp
push ecx
pop edi
pop ebp
pop ebp
mov edi, dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x128]
and dword [ebp - 0x120], 0
lea eax, [ebx + 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004976dd
and dword [ebp - 4], 0
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
cmovae eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00487411
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.0048730a
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00489430
add esp, 0x20
mov byte [ebp - 4], 3
call fcn.00486535
test al, al
je 0x4237d3
push edx
push ebp
pop esp
pop edx
push esi
pop esi
pop edx
push eax
pop edx
pop ebx
pop ebx
pop esp
pop edx
push edi
push esp
push edi
mov ebx, dword [ebp - 0x128]
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.00488118
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00489430
add esp, 0x10
mov esi, dword [ebx]
mov byte [ebp - 4], 5
jmp 0x423848
cmp dword [esi + 0x14], 0x10
jb 0x423817
mov eax, dword [esi]
jmp 0x423819
mov eax, esi
push eax
lea ecx, [ebp - 0x40]
call fcn.00423107
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x40]
call fcn.00423f94
neg eax
lea ecx, [ebp - 0x40]
push 0
sbb al, al
push 1
add al, 1
jne 0x42384f
call fcn.00422a84
add esi, 0x18
cmp esi, dword [ebx + 4]
jne 0x42380d
jmp 0x42385d
xor edi, edi
inc edi
mov dword [ebp - 0x12c], edi
call fcn.00422a84
call fcn.00486466
test al, al
je 0x423884
pop eax
pop esi
pop edx
push esp
push edi
pop edi
pop ebx
push eax
pop eax
push edx
push ebp
push esi
pop ebx
push edx
push ebx
pop ecx
push ecx
push ebp
mov ebx, dword [ebp - 0x128]
mov edi, dword [ebp - 0x12c]
test edi, edi
jne 0x423892
xor ebx, ebx
xor esi, esi
inc ebx
jmp 0x423c6e
call fcn.00486397
test al, al
je 0x4238b6
push eax
push ecx
push ebp
pop edi
pop edi
pop esi
pop esi
pop edi
pop esi
push eax
push esp
push edi
pop esp
push eax
push eax
push eax
push esp
push esi
push edi
pop esi
pop esp
push ebp
pop ecx
pop esp
pop edx
pop ecx
pop ebp
call fcn.004861f9
test al, al
je 0x4238d4
push ecx
pop edi
push ecx
pop edi
push eax
push ebx
pop ecx
push eax
push ebp
pop edx
push ebp
pop esp
push ebx
push esi
pop esp
pop esi
push esp
pop esp
push eax
pop esi
push ecx
call fcn.00486352
test al, al
je 0x4238ef
push ebx
pop eax
push esi
pop esi
push ebp
pop esp
pop eax
push esp
pop eax
push edi
push edi
pop eax
pop esp
push ebp
push edx
push esi
push ebx
push eax
sub esp, 0x18
lea eax, [ebp - 0x88]
mov ecx, esp
push eax
call fcn.00403980
push dword [ebp - 0x124]
lea eax, [ebp - 0x70]
mov ecx, ebx
push eax
call fcn.0042356c
cmp dword [ebp + 0xc], 0
mov byte [ebp - 4], 6
je 0x423a01
call fcn.00486283
test al, al
je 0x42393c
push ebp
pop ebp
push eax
push esp
pop ebp
push ebx
pop ebp
push esi
pop ebx
push edi
pop eax
pop esp
push esi
push eax
push ebp
pop eax
pop esi
push ecx
push ebx
push edx
call fcn.004860a0
test al, al
je 0x423963
push ebp
push ecx
push edi
push edx
push ebx
push ecx
pop esp
pop ebx
pop ebp
pop edx
pop ecx
pop edi
pop ebx
push esp
push eax
push edi
pop ebx
push edi
pop ebx
push eax
pop edx
push ebp
pop ecx
pop eax
pop eax
pop ebx
push ebx
pop ebx
push esp
push ebp
call fcn.0048616f
test al, al
je 0x42398b
push esi
push esp
push esp
push eax
pop ebx
pop esi
push ebp
push ecx
push eax
push esp
push esp
push edi
pop ebp
pop ebx
push edi
pop ecx
pop esi
push edi
push ecx
push esp
pop ebp
pop ecx
pop ebp
push eax
pop ebp
pop edi
push ecx
pop ebp
pop eax
pop ecx
push ecx
mov ebx, dword [ebp - 0x128]
cmp dword [ebx + 0xb0], 0
je 0x4239c2
push 1
lea eax, [ebp - 0x70]
push eax
sub esp, 0x18
lea edi, [ebx + 0x10]
mov eax, esp
push edi
push eax
call fcn.004976dd
pop ecx
pop ecx
push dword [ebp - 0x124]
mov ecx, dword [ebx + 0xb0]
call fcn.004217fe
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x423b49
lea eax, [ebp - 0x120]
push eax
sub esp, 0x18
lea eax, [ebp - 0x70]
mov ecx, esp
push eax
call fcn.00403980
call fcn.0047df65
add esp, 0x1c
mov dword [ebx + 0x64], eax
jmp 0x423b49
call fcn.00485f02
test al, al
je 0x423a1a
pop ebp
push ecx
push ebx
push ebp
pop edx
pop edi
push edx
push esp
push esi
pop ebp
push edx
push edx
pop ecx
pop esp
pop esp
pop esi
lea edi, [ebx + 0x10]
push edi
lea ecx, [ebp - 0x40]
call fcn.00422b44
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0xa0]
call fcn.00422b44
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 8
push str.49060265046756381259294368451414
push eax
call fcn.0048704f
mov esi, eax
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 9
push str.61665632041741661617084214553418
push eax
call fcn.0048704f
push esi
push eax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0xa
push eax
call fcn.00488aed
add esp, 0x1c
lea ecx, [ebp - 0x100]
push 0
push 1
call fcn.00422a84
push 0
push 1
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 8
call fcn.00422a84
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x40]
call fcn.00423f94
neg eax
sbb al, al
add al, 1
je 0x423abb
sub esp, 0x18
mov ecx, esp
push edi
jmp 0x423ae6
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.00422b44
mov ecx, ebx
call fcn.004232c3
mov dword [ebp - 0x120], eax
test eax, eax
jne 0x423b0d
sub esp, 0x18
lea eax, [ebp - 0xa0]
mov ecx, esp
push eax
call fcn.00422b44
mov ecx, ebx
call fcn.004232c3
mov dword [ebp - 0x120], eax
test eax, eax
jne 0x423b0d
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
xor ebx, ebx
inc ebx
push ebx
jmp 0x423b1d
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push 2
cmovae eax, dword [ebp - 0x58]
xor ebx, ebx
inc ebx
push eax
push ebx
push ebx
call fcn.004226f8
mov ecx, eax
call fcn.004277f7
push 0
push ebx
lea ecx, [ebp - 0xa0]
call fcn.00422a84
push 0
push ebx
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call fcn.00422a84
call fcn.00486397
test al, al
je 0x423b6f
push ebx
pop eax
push ecx
pop ebp
push edi
pop ecx
push ecx
pop ecx
push eax
pop esi
push ebx
push ecx
push esi
push ebx
push esp
push ebp
pop ebp
push esi
push edi
pop esp
pop ebp
push eax
pop edx
push eax
push ebp
push edi
pop esp
pop ebx
pop ebx
call fcn.004864ab
test al, al
je 0x423b96
pop eax
pop edi
pop ecx
pop edi
push ebp
pop esp
pop ecx
push edi
pop ebp
push ebp
pop edx
push edi
push edi
push esi
push edi
push edi
push esi
push esi
pop esi
pop ebx
push esi
pop edx
push ecx
pop edx
pop eax
push ecx
push eax
pop ebp
pop esi
push ecx
cmp dword [ebp - 0x120], 0
jne 0x423ba6
xor esi, esi
jmp 0x423c60
and dword [ebp - 0x134], 0
and dword [ebp - 0x130], 0
call fcn.004864f0
test al, al
je 0x423bd9
push esi
pop edx
push edx
push esp
pop edi
push esi
push ebx
pop ebx
pop esi
push ebp
push esp
push eax
push ebx
pop edi
pop edx
push ebx
pop esp
pop ebx
push ecx
pop edx
pop esp
pop edx
pop esp
pop ebx
pop esi
push esi
push esp
push esp
lea ecx, [ebp - 0x119]
call fcn.004263c0
mov ecx, dword [ebp - 0x128]
mov byte [ebp - 4], 0xb
lea eax, [ecx + 0x40]
push eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x120]
push dword [ecx + 0x64]
lea ecx, [ebp - 0x119]
call fcn.00424158
cmp dword [ebp - 0x134], 0
je 0x423c3b
cmp dword [ebp - 0x130], 0
je 0x423c3b
push dword [ebp - 0x130]
push dword [ebp - 0x134]
call fcn.00425f3f
mov esi, eax
jmp 0x423c53
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push 0x89
call fcn.0048a206
xor esi, esi
pop ecx
pop ecx
lea ecx, [ebp - 0x119]
call fcn.004052d0
xor ebx, ebx
lea ecx, [ebp - 0x70]
push 0
inc ebx
push ebx
call fcn.00401de0
push 0
push ebx
lea ecx, [ebp - 0xb8]
call fcn.00422a84
push 0
push ebx
lea ecx, [ebp - 0xd0]
call fcn.00401de0
push 0
push ebx
lea ecx, [ebp - 0x58]
call fcn.00422a84
push 0
push ebx
lea ecx, [ebp - 0xe8]
call fcn.00401de0
push 0
push ebx
lea ecx, [ebp - 0x88]
call fcn.00401de0
push 0
push ebx
lea ecx, [ebp - 0x28]
call fcn.00401de0
mov eax, esi
call fcn.00447f83
ret 0xc