Function at 0x4032b0
Capabilities:
Get common file path
Set current directory

Disassembly:
push 0xffffffffffffffff
push 0x4549f1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x210
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [0x470820]
or eax, 0xffffffff
push edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov ebp, dword [esi + 0x1704]
mov dword [esi + 0x11c], 0
mov dword [esi + 0x118], eax
xor edx, edx
mov eax, dword [ebp + 0x26944]
mov dword [esp + 0x228], 0
test eax, eax
jle 0x40337a
lea eax, [ebp + 0xe24]
mov dword [esp + 0x10], eax
cmp dword [esi + 0x118], 0xffffffff
jne 0x40337a
mov ecx, dword [esp + 0x230]
mov edi, dword [esp + 0x10]
mov eax, dword [ecx]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [edi]
jne 0x403353
test cl, cl
je 0x40334f
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [edi + 1]
jne 0x403353
add eax, 2
add edi, 2
test cl, cl
jne 0x40332f
xor eax, eax
jmp 0x403358
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x403364
mov dword [esi + 0x118], edx
jmp 0x403372
mov eax, dword [esp + 0x10]
inc edx
add eax, 0x608
mov dword [esp + 0x10], eax
cmp edx, dword [ebp + 0x26944]
jl 0x403319
mov eax, dword [esi + 0x118]
test eax, eax
jl 0x4036f4
mov edx, dword [esi + 0x1700]
mov ecx, dword [edx + 0x110efc]
lea edx, [eax + eax*2]
shl edx, 6
add edx, eax
lea eax, [ebp + edx*8 + 0xe74]
movsx edx, byte [ecx + 0xe]
push eax
push edx
movsx eax, byte [ecx + 0xd]
push eax
lea ecx, [esp + 0x60]
push str.:_.2d_.2d_s
push ecx
call fcn.00429b80
add esp, 0x14
lea edx, [esp + 0x158]
push edx
push 0xc8
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov eax, dword [esi + 0x1704]
add eax, 0xd0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 0x24]
call fcn.004221b3
push 0
push 0x46b638
lea ecx, [esp + 0x2c]
mov byte [esp + 0x230], 1
call fcn.00422276
test eax, eax
je 0x4036ce
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x4036ce
lea ecx, [esp + 0x24]
call fcn.00422496
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], eax
call fcn.0042245d
test eax, eax
jne 0x4036c2
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042268e
mov eax, dword [eax]
push 0x46b634
push eax
call fcn.00429986
mov ebp, eax
add esp, 8
test ebp, ebp
lea ecx, [esp + 0x10]
sete bl
call fcn.0043c260
test bl, bl
je 0x4034bb
lea edx, [esp + 0x20]
lea ecx, [esp + 0x24]
push edx
call fcn.0042268e
mov eax, dword [eax]
mov byte [esp + 0x228], 2
push eax
lea eax, [esp + 0x18]
push 0x46b5b0
push eax
call fcn.00439e5e
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x228], 1
call fcn.0043c260
mov ecx, dword [esp + 0x14]
push 0
push 0
push ecx
call fcn.00447815
jmp 0x4036c2
push ebp
lea edx, [esp + 0x6c]
push 0xf0
push edx
call fcn.004298f3
add esp, 0xc
test eax, eax
je 0x4036b9
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x4036b9
lea eax, [esp + 0x54]
lea ecx, [esp + 0x68]
push eax
push ecx
call fcn.00429b00
add esp, 8
test eax, eax
je 0x40369e
push ebp
lea edx, [esp + 0x6c]
push 0xf0
push edx
call fcn.004298f3
add esp, 0xc
test eax, eax
je 0x403627
mov ecx, dword [esi + 0x118]
mov edi, dword [esi + 0x11c]
lea eax, [ecx + ecx*2]
shl eax, 6
add eax, ecx
mov ecx, dword [esi + 0x1704]
shl eax, 3
mov edx, dword [eax + ecx + 0xe84]
cmp edi, edx
jge 0x403627
xor edi, edi
test edx, edx
jle 0x40360c
lea edx, [edi + 0xe9]
shl edx, 4
add edx, eax
lea eax, [esp + 0x68]
add edx, ecx
push edx
push eax
call fcn.00429b00
add esp, 8
test eax, eax
je 0x4035e7
mov edx, dword [esi + 0x11c]
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esi + edx*4 + 0x1638]
call fcn.0043c3e9
mov eax, dword [esi + 0x118]
shl edi, 4
lea ecx, [eax + eax*2]
shl ecx, 6
add ecx, eax
mov eax, dword [esi + 0x1704]
lea edx, [edi + ecx*8]
mov ecx, dword [edx + eax + 0xe8c]
push ecx
mov ecx, dword [esi + 0x1700]
call fcn.0040f160
mov edx, dword [esi + 0x11c]
mov dword [esi + edx*4 + 0x120], eax
mov eax, dword [esi + 0x118]
mov ebx, dword [esi + 0x11c]
mov edx, dword [esi + 0x1704]
lea ecx, [eax + eax*2]
inc ebx
shl ecx, 6
add ecx, eax
mov dword [esi + 0x11c], ebx
mov edi, dword [edx + ecx*8 + 0xe84]
mov ecx, dword [esi + 0x118]
inc edi
lea eax, [ecx + ecx*2]
shl eax, 6
add eax, ecx
mov ecx, dword [esi + 0x1704]
shl eax, 3
cmp edi, dword [eax + ecx + 0xe84]
jl 0x40354f
push ebp
lea eax, [esp + 0x6c]
push 0xf0
push eax
call fcn.004298f3
add esp, 0xc
test eax, eax
jne 0x403519
mov eax, dword [esi + 0x118]
mov edx, dword [esi + 0x1704]
lea ecx, [eax + eax*2]
shl ecx, 6
add ecx, eax
mov eax, dword [edx + ecx*8 + 0xe88]
lea ecx, [esp + 0x40]
push eax
push 0x46b4e8
push ecx
call fcn.00429b80
add esp, 0xc
lea edx, [esp + 0x40]
lea ecx, [esi + 0x114]
push edx
call fcn.0043c3e9
mov eax, dword [esi + 0x118]
mov edx, dword [esi + 0x1704]
mov dword [esp + 0x18], 1
lea ecx, [eax + eax*2]
shl ecx, 6
add ecx, eax
mov eax, dword [esi + 0x11c]
cmp eax, dword [edx + ecx*8 + 0xe84]
jge 0x40369e
push 0
push 0
push 0x46b614
call fcn.00447815
push ebp
lea ecx, [esp + 0x6c]
push 0xf0
push ecx
call fcn.004298f3
add esp, 0xc
test eax, eax
jne 0x4034d6
push ebp
call fcn.00429876
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x40340e
lea edx, [esp + 0x158]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 0x24]
mov byte [esp + 0x228], 0
call fcn.004221f0
cmp dword [esp + 0x18], 1
je 0x403720
mov eax, dword [esi + 0x1704]
lea ecx, [esp + 0x14]
add eax, 0xd0
push eax
push 0x46b5d0
push ecx
call fcn.00439e5e
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edx
call fcn.00447815
lea ecx, [esp + 0x14]
mov dword [esp + 0x228], 0xffffffff
call fcn.0043c260
mov ecx, dword [esp + 0x220]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x21c
ret 4