Function at 0x1023958
Capabilities:
Check if file exists

Disassembly:
push 0xa4
mov eax, 0x104c69b
call fcn.0102eb5e
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x64], ebx
inc esi
push 0x1a8
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 4], esi
call fcn.0102da8a
pop ecx
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x10239bb
push dword [edi]
lea ecx, [ebp - 0xb0]
call fcn.01010e7e
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0xb0]
push eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x64], esi
call fcn.01018034
mov esi, eax
jmp 0x10239bd
xor esi, esi
mov dword [ebp - 0x78], esi
test byte [ebp - 0x64], 1
mov dword [ebp - 4], 6
je 0x10239df
and dword [ebp - 0x64], 0xfffffffe
push ebx
push 1
lea ecx, [ebp - 0xb0]
call fcn.0100e576
push 0x3b
push dword [edi + 4]
lea ecx, [ebp - 0x54]
call fcn.01029315
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 7
mov dword [ebp - 0x5c], ebx
call fcn.01029013
mov edi, dword [sym.imp.msvcrt.dll_wcstoul]
mov byte [ebp - 4], 8
cmp dword [ebp - 0x1c], ebx
je 0x1023cc6
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x60], ebx
jae 0x1023a21
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x58]
push ecx
push eax
call fcn.010270b2
cmp eax, ebx
jl 0x1023cc6
mov eax, dword [ebp - 0x58]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x1023a39
sub eax, edx
sar eax, 1
je 0x1023c8d
mov eax, dword [ebp - 0x58]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x1023a53
sub eax, edx
sar eax, 1
inc eax
push eax
push dword [ebp - 0x58]
call fcn.010264b1
cmp eax, ebx
je 0x1023c5e
mov eax, dword [ebp - 0x58]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x1023a79
sub eax, edx
sar eax, 1
je 0x1023c5e
mov eax, dword [ebp - 0x5c]
cmp eax, 0xb
ja case.default.0x1023a99
jmp dword [eax*4 + 0x1023d9c]
push 0x1002e74
push dword [ebp - 0x58]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x1023ab7
push ebx
jmp 0x1023ad1
push 0x1002e6c
push dword [ebp - 0x58]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x1023c5e
push 1
mov ecx, esi
call fcn.0101220e
jmp 0x1023c5e
push ebx
push ebx
push dword [ebp - 0x58]
call edi
add esp, 0xc
neg eax
sbb eax, eax
neg eax
push eax
mov ecx, esi
call fcn.010121f7
jmp 0x1023c5e
push 0xa
push ebx
push dword [ebp - 0x58]
call edi
add esp, 0xc
mov dword [esi + 0xfc], eax
jmp 0x1023c5e
lea ecx, [esi + 0x160]
push dword [ebp - 0x58]
call fcn.01010e51
jmp 0x1023c5e
lea ecx, [esi + 0x8c]
jmp 0x1023b16
push 0x1005d60
push dword [ebp - 0x58]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
push ebx
test eax, eax
jne 0x1023b4c
mov ecx, esi
call fcn.0101ac6d
jmp 0x1023c5e
push ebx
push dword [ebp - 0x58]
call edi
add esp, 0xc
push eax
call fcn.01012269
cmp eax, ebx
lea ecx, [esi + 0x114]
mov dword [ecx], eax
jge 0x1023c5e
push ebx
jmp 0x1023b40
push dword [ebp - 0x58]
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0x60]
push eax
call fcn.010230ff
push dword [ebp - 0x60]
call fcn.01012f24
movzx eax, ax
mov word [esi + 0x198], ax
jmp 0x1023c5e
lea ecx, [esi + 0x17c]
jmp 0x1023b16
push dword [ebp - 0x58]
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0x60]
push eax
call fcn.010231e8
push dword [ebp - 0x60]
lea ecx, [ebp - 0x94]
call fcn.01010e7e
lea eax, [ebp - 0x94]
push eax
mov byte [ebp - 4], 0xa
call fcn.010135ae
push ebx
push 1
lea ecx, [ebp - 0x94]
mov dword [esi + 0x140], eax
mov byte [ebp - 4], 8
call fcn.0100e576
jmp 0x1023c5e
push ebx
push ebx
push dword [ebp - 0x58]
call edi
add esp, 0xc
cmp eax, ebx
push eax
jge 0x1023bfe
mov ecx, esi
call fcn.01012246
jmp 0x1023c5e
push 0x1005d18
jmp 0x1023c57
push ebx
push 0x2c
push dword [ebp - 0x58]
lea eax, [ebp - 0x74]
push eax
call fcn.0101865a
push eax
lea ecx, [esi + 0x1a0]
call fcn.010164a2
mov ecx, dword [ebp - 0x74]
cmp ecx, ebx
je 0x1023c5e
push 1
call fcn.01015d88
jmp 0x1023c5e
push dword [ebp - 0x58]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push dword [ebp - 0x58]
test eax, eax
je 0x1023c48
lea ecx, [esi + 0x38]
jmp 0x1023b19
push 0x1005cb8
jmp 0x1023c57
push dword [ebp - 0x5c]
push 0x1005c58
call fcn.0101c26a
pop ecx
pop ecx
cmp dword [ebp - 0x58], ebx
je 0x1023c74
push dword [ebp - 0x58]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 0x58], ebx
cmp dword [ebp - 0x60], ebx
je 0x1023c8d
push dword [ebp - 0x60]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x54]
call fcn.01029013
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 9
call fcn.01010cfb
inc dword [ebp - 0x5c]
push ebx
push 1
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 8
call fcn.0100e576
jmp 0x1023a09
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 7
call fcn.0100e576
cmp dword [esi + 0x174], ebx
jne 0x1023cef
lea ecx, [esi + 0x160]
push 0x1005878
call fcn.01010e51
mov ecx, esi
call fcn.01012198
cmp eax, edi
jne 0x1023d73
mov ecx, esi
call fcn.01013045
cmp eax, ebx
je 0x1023d47
mov ecx, esi
call fcn.01013045
mov ecx, eax
call fcn.0101317c
cmp al, bl
jne 0x1023d47
mov ecx, esi
call fcn.01013702
cmp eax, ebx
jne 0x1023d73
mov ecx, dword [ebp - 0x68]
call fcn.010236cd
push eax
lea ecx, [esi + 0x38]
call fcn.01010e51
cmp dword [esi + 0x4c], ebx
jne 0x1023d73
mov ecx, esi
call fcn.010136b9
push eax
push 0x1005bf0
jmp 0x1023d54
mov ecx, esi
call fcn.010136b9
push eax
push 0x1005ba0
call fcn.0101c26a
pop ecx
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x54]
call fcn.0100e576
push edi
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.0100cec0
jmp 0x1023d8f
mov edi, dword [ebp - 0x70]
mov dword [edi], esi
push ebx
push 1
lea ecx, [ebp - 0x54]
call fcn.0100e576
mov eax, edi
jmp 0x1023d94
mov eax, dword [ebp - 0x70]
mov dword [eax], ebx
call fcn.0102ebc9
ret 8