Function at 0x403ea9
Capabilities:
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x190]
sub esp, 0x210
mov eax, dword [0x412198]
xor eax, ebp
mov dword [ebp + 0x18c], eax
mov eax, dword [ebp + 0x1a0]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x198]
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov esi, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f02
push 0
call esi
push 0x7f00
push 0
mov dword [0x41624c], eax
call esi
mov dword [0x415960], eax
push 0x200
lea eax, [ebp - 0x74]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x403f2f
lea eax, [ebp - 0x74]
push eax
call fcn.00401083
test eax, eax
je 0x403f25
mov byte [eax], 0
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x8001
mov dword [0x41365c], edi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x41
push 0x40
mov dword [ebp - 0x7c], eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
call edi
mov ebx, 0x101
push ebx
push 0x40
mov dword [0x414e84], eax
call esi
push eax
call edi
push ebx
push 0x40
pop ebx
push ebx
mov dword [0x414e78], eax
call esi
push eax
call edi
push 0x200
push ebx
mov dword [0x414e7c], eax
call esi
push eax
call edi
push 0x204
push ebx
mov dword [0x414e88], eax
call esi
push eax
call edi
push 0x1f4
push ebx
mov dword [0x414e80], eax
call esi
push eax
call edi
mov esi, 0x105
push esi
push 0x415980
push dword [ebp - 0x78]
mov dword [0x414e70], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
mov esi, 0x416260
push esi
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push esi
call fcn.00401761
pop ecx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor esi, esi
push esi
push 0x416200
call fcn.004062dc
test eax, eax
pop ecx
pop ecx
jne 0x404256
call fcn.00403cb3
call fcn.004017b7
test eax, eax
jne 0x404035
push 0x10
push 0x7d0
call fcn.0040196f
push eax
push 0x41f
call fcn.0040196f
push eax
push dword [0x415950]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x404256
mov edi, dword [ebp - 0x80]
jmp 0x40404f
push 5
push str._info
push edi
call fcn.0040118c
add esp, 0xc
test eax, eax
je 0x404099
inc edi
cmp byte [edi], 0
jne 0x40403a
xor edi, edi
inc edi
cmp dword [ebp - 0x7c], 0x80000000
mov dword [0x414e8c], esi
jae 0x404072
cmp byte [ebp - 0x7c], 4
jb 0x404072
mov dword [0x414e8c], edi
cmp dword [0x414e8c], esi
jne 0x4040b1
cmp byte [ebp - 0x7c], 4
jae 0x4040b1
push esi
push 0x7d0
call fcn.0040196f
push eax
push 0x3f6
call fcn.0040196f
push eax
jmp 0x4040ab
push esi
push 0x7d0
call fcn.0040196f
push eax
push dword [0x414e88]
push esi
jmp 0x40402a
cmp word [0x412056], si
mov dword [0x414e8c], edi
jne 0x4040d7
push 0x10
push 0x7d0
call fcn.0040196f
push eax
push 0x3e8
jmp 0x40401e
mov eax, dword [0x412048]
mov ecx, eax
and cl, 2
push dword [ebp - 0x78]
sub cl, 2
neg cl
sbb ecx, ecx
inc ecx
mov dword [0x412004], ecx
mov ecx, 0x100
and eax, ecx
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [0x414e4c], eax
call fcn.00404be3
mov ecx, dword [0x413c44]
cmp ecx, esi
je 0x40418f
mov edx, dword [0x412048]
mov ebx, edx
and ebx, 0x100000
mov eax, edx
and eax, 0x80000
neg ebx
sbb ebx, ebx
and ebx, 0xfffffffd
add ebx, 4
neg eax
sbb eax, eax
and eax, ebx
test dl, 0x10
je 0x404153
mov edx, dword [0x414e84]
cmp byte [edx], 0
je 0x404153
or eax, 0x2000
push eax
push edx
push ecx
jmp 0x40416a
or eax, 0x2000
push eax
push 0x7d0
call fcn.0040196f
push eax
push dword [0x413c44]
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
je 0x404256
cmp eax, 2
je 0x404256
push dword [0x413c44]
call dword [sym.imp.KERNEL32.dll_LocalFree]
test word [0x412048], 0x200
push dword [ebp - 0x80]
je 0x4041a3
mov dword [0x414e6c], edi
call fcn.0040350c
pop ecx
push esi
push 0x402c5c
push esi
push 0x64
push dword [ebp - 0x78]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
call fcn.00401708
push dword [0x414e84]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push eax
call edi
push dword [0x414e84]
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
push eax
call ebx
push dword [0x414e78]
call esi
push eax
call edi
push dword [0x414e78]
call esi
push eax
call ebx
push dword [0x414e7c]
call esi
push eax
call edi
push dword [0x414e7c]
call esi
push eax
call ebx
push dword [0x414e88]
call esi
push eax
call edi
push dword [0x414e88]
call esi
push eax
call ebx
push dword [0x414e80]
call esi
push eax
call edi
push dword [0x414e80]
call esi
push eax
call ebx
push dword [0x414e70]
call esi
push eax
call edi
push dword [0x414e70]
call esi
push eax
call ebx
mov ecx, dword [ebp + 0x18c]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00406118
add ebp, 0x190
leave
ret 0x10