Function at 0x407500
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x421cfd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
and dword [esp + 8], 0
mov eax, dword [ebx + 8]
test eax, eax
push esi
push edi
je 0x407532
push dword [ebx + 0xc]
call eax
pop ecx
lea ecx, [ebx + 0x10]
call fcn.004090a6
push str.WorkingDir
lea eax, [esp + 0x2c]
push eax
call fcn.0040585f
and dword [esp + 0x74], 0
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x1c]
push eax
mov edi, ebx
call fcn.004012b4
lea esi, [esp + 0x28]
mov byte [esp + 0x74], 2
call fcn.00408361
cmp dword [ebx + 0x30], 0
je 0x407766
and dword [ebx + 0x30], 0
push str._1.__2._:_INFO:
lea eax, [esp + 0x3c]
push eax
call fcn.0040585f
mov byte [esp + 0x74], 3
call fcn.00405788
mov esi, dword [eax]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
jmp 0x4075c0
sub eax, 0
je 0x4075b6
dec eax
jne 0x4075c0
push 0x169
mov edi, esi
call fcn.00401379
jmp 0x4075c0
push str.c:projectstumblebugsdannylibwildfire_apphosthostimpl.cpp
call fcn.004013fb
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.00404f5c
test eax, eax
jge 0x4075a0
lea esi, [esp + 0x38]
mov byte [esp + 0x74], 2
call fcn.00408361
push str.Pruning_working_directory__1.
lea eax, [esp + 0x3c]
push eax
call fcn.0040585f
mov byte [esp + 0x74], 4
call fcn.00405788
mov esi, dword [eax]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
jmp 0x407621
jne 0x407621
mov eax, dword [esp + 0x1c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40760c
sub eax, edx
mov edx, dword [esi]
push eax
push dword [esp + 0x20]
mov ecx, esi
call dword [edx + 4]
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.00404f5c
test eax, eax
jge 0x407603
lea esi, [esp + 0x38]
mov byte [esp + 0x74], 2
call fcn.00408361
call fcn.00405788
mov ecx, dword [eax]
mov eax, dword [ecx]
xor edi, edi
inc edi
push edi
lea edx, [esp + 0x10]
push edx
mov byte [esp + 0x14], 0xa
call dword [eax + 4]
call fcn.00405788
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov esi, 0x4253f0
push esi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push esi
lea eax, [esp + 0x1c]
call fcn.00405b8c
test eax, eax
jne 0x40770f
push 0x42620c
lea eax, [esp + 0x1c]
call fcn.00405b8c
test eax, eax
jne 0x40770f
lea eax, [esp + 0x58]
push eax
mov eax, edi
lea esi, [esp + 0x1c]
call fcn.00405aee
mov byte [esp + 0x74], 5
push 0x426274
mov dword [esp + 0x14], edi
call fcn.00405b8c
test eax, eax
jne 0x40770f
lea eax, [esp + 0x48]
push eax
push 2
pop eax
call fcn.00405aee
mov dword [esp + 0x74], 6
push 0x426278
mov dword [esp + 0x14], 3
call fcn.00405b8c
test eax, eax
jne 0x40770f
lea eax, [esp + 0x38]
push eax
push 2
pop eax
call fcn.00405aee
push 0x42627c
mov dword [esp + 0x14], 7
call fcn.00405b8c
test eax, eax
mov byte [esp + 0xc], 1
je 0x407714
mov byte [esp + 0xc], 0
test byte [esp + 0x10], 4
je 0x407729
and dword [esp + 0x10], 0xfffffffb
lea esi, [esp + 0x38]
call fcn.00408361
test byte [esp + 0x10], 2
je 0x40773e
and dword [esp + 0x10], 0xfffffffd
lea esi, [esp + 0x48]
call fcn.00408361
mov dword [esp + 0x74], 2
test byte [esp + 0x10], 1
je 0x407756
lea esi, [esp + 0x58]
call fcn.00408361
cmp byte [esp + 0xc], 0
je 0x407766
lea ecx, [esp + 0x18]
call fcn.004073f3
xor eax, eax
mov esi, 0x424da8
push esi
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebx]
push str.Source
push ebx
call dword [eax + 8]
mov eax, dword [ebx]
add esp, 0xc
push esi
push str.WorkingDir
push ebx
call dword [eax + 8]
mov eax, dword [ebx]
add esp, 0xc
push esi
push str.ArchiveComment
push ebx
call dword [eax + 8]
add esp, 0xc
lea esi, [esp + 0x18]
call fcn.00408361
mov ecx, dword [esp + 0x6c]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret