Function at 0x4075b0
Capabilities:
Set current directory

Disassembly:
push 0xffffffffffffffff
push 0x51ae18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
call fcn.005157bf
mov ecx, dword [eax + 4]
call fcn.004fc07b
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x3c], 0
call dword [eax + 0x70]
mov edi, dword [esp + 0x4c]
mov eax, dword [edi]
push eax
call fcn.00472430
add esp, 4
test eax, eax
je 0x40760c
mov eax, dword [edi]
push eax
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x407641
push 0xffffffffffffffff
push 0
push 0x7c
call fcn.005084e6
mov dword [esp + 0x3c], 0xffffffff
call fcn.005157bf
mov ecx, dword [eax + 4]
call fcn.004fc090
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
add esp, 0x38
ret 0xc
push ebx
push ebp
call fcn.005157bf
mov eax, dword [eax + 4]
lea ecx, [esp + 0x54]
push ecx
mov ecx, eax
call fcn.00405970
push 0x52af78
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x50], 1
call fcn.00402570
push 0x52be04
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x5c], 2
call fcn.00402570
mov ecx, dword [edi]
mov eax, dword [eax]
push ecx
push eax
mov byte [esp + 0x64], 3
call fcn.00472570
mov ebx, eax
mov eax, dword [esp + 0x38]
add esp, 0x20
neg ebx
sbb bl, bl
add eax, 0xfffffff0
or ebp, 0xffffffff
inc bl
mov byte [esp + 0x44], 2
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4076c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x44], 1
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4076e7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test bl, bl
je 0x40773f
push ebp
push 0
push 0x7d
call fcn.005084e6
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov byte [esp + 0x44], 0
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407717
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [esp + 0x44], ebp
call fcn.005157bf
mov ecx, dword [eax + 4]
call fcn.004fc090
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
add esp, 0x38
ret 0xc
mov ecx, esi
call fcn.00403e40
push 0x52af78
lea eax, [esp + 0x20]
push edi
push eax
call fcn.00402570
push 0x52bd10
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x5c], 4
call fcn.00402570
add esp, 0x18
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x44], 6
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407790
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ebx, dword [esp + 0x18]
mov esi, dword [sym.imp.kernel32.dll_WritePrivateProfileStringA]
push ebx
push 0x52b0d4
push 0x52bd5c
push 0x52bb38
call esi
push ebx
push 0x52bd48
push 0x52bd40
push 0x52bb38
call esi
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
push ebx
push eax
push 0x52bcfc
push 0x52bb38
call esi
push ebx
push 0x52a988
push 0x52bd38
push 0x52bb38
call esi
push ebx
push 0x52a984
push 0x52bd30
push 0x52bb38
call esi
push ebx
push 0x52a984
push 0x52bd28
push 0x52bb38
call esi
push 0x52bdf8
lea ecx, [esp + 0x18]
call fcn.00402700
lea ecx, [esp + 0x2c]
mov byte [esp + 0x44], 7
call fcn.005011c0
mov ecx, dword [esp + 0x14]
push 0
push 0x1001
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x50], 8
call fcn.00501508
test eax, eax
jne 0x4078de
lea ecx, [esp + 0x2c]
mov byte [esp + 0x44], 7
call fcn.005011ff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x44], 6
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407876
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add ebx, 0xfffffff0
mov byte [esp + 0x44], 1
lea eax, [ebx + 0xc]
mov ecx, ebp
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x407894
mov ecx, dword [ebx]
mov edx, dword [ecx]
push ebx
call dword [edx + 4]
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov byte [esp + 0x44], 0
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4078b6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [esp + 0x44], ebp
call fcn.005157bf
mov ecx, dword [eax + 4]
call fcn.004fc090
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
add esp, 0x38
ret 0xc
call fcn.004fc30b
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x50], eax
fld qword [0x52bae8]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x58]
push 0x52badc
push eax
mov byte [esp + 0x54], 9
call fcn.004024a0
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp - 0xc]
add esp, 0x10
push eax
push ebp
lea ecx, [esp + 0x34]
call fcn.00500f13
lea ecx, [esp + 0x2c]
call fcn.0050115e
push 0x52af78
lea ecx, [esp + 0x28]
push edi
push ecx
call fcn.00402570
lea edx, [esp + 0x20]
push edx
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x5c], 0xa
call fcn.004024c0
add esp, 0x18
mov esi, eax
mov byte [esp + 0x44], 0xb
call fcn.005157bf
mov eax, dword [eax + 4]
mov esi, dword [esi]
mov edx, dword [eax]
push esi
mov ecx, eax
call dword [edx + 0x88]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x44], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407996
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x44], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4079b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x52af78
lea eax, [esp + 0x24]
push edi
push eax
call fcn.00402570
lea ecx, [esp + 0x20]
push ecx
push eax
lea edx, [esp + 0x38]
push edx
mov byte [esp + 0x5c], 0xc
call fcn.004024c0
add esp, 0x18
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
push eax
mov byte [esp + 0x48], 0xd
call dword [edx + 0x78]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x44], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407a15
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x44], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407a38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add ebp, 0xfffffff0
mov byte [esp + 0x44], 8
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x407a58
mov ecx, dword [ebp]
mov edx, dword [ecx]
push ebp
call dword [edx + 4]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x44], 7
call fcn.005011ff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x44], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407a89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add ebx, 0xfffffff0
mov byte [esp + 0x44], 1
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x407aa8
mov ecx, dword [ebx]
mov edx, dword [ecx]
push ebx
call dword [edx + 4]
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov byte [esp + 0x44], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407acb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [esp + 0x44], 0xffffffff
call fcn.005157bf
mov ecx, dword [eax + 4]
call fcn.004fc090
mov ecx, dword [esp + 0x3c]
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x38
ret 0xc