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

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x1c]
push edi
mov edi, dword [esp + 0x1c]
xor eax, eax
mov word [ebx], ax
test edi, edi
jne 0x1f004aee
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret
cmp word [edi], ax
je 0x1f004ae6
push esi
push edi
call fcn.1f004a80
add esp, 4
test eax, eax
jne 0x1f004b21
mov esi, dword [esp + 0x28]
push esi
push edi
push ebx
call fcn.1f03e897
add esp, 0xc
xor ecx, ecx
mov word [ebx + esi*2 - 2], cx
pop esi
pop edi
lea eax, [ecx + 1]
pop ebx
add esp, 0x10
ret
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004b26
sub eax, edx
sar eax, 1
lea esi, [eax + 1]
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1f03e832
mov ebx, eax
mov edx, ebx
add esp, 4
mov dword [esp + 0x10], ebx
mov eax, edi
sub edx, edi
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f004b60
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
push ebp
neg ecx
or ecx, eax
push ecx
call fcn.1f03e832
mov ebp, eax
mov eax, edi
mov edx, ebp
add esp, 4
mov dword [esp + 0x18], ebp
sub edx, eax
jmp 0x1f004ba0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f004ba0
nop
push ebx
call fcn.1f004a20
add esp, 4
test eax, eax
je 0x1f004e0c
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004bc6
sub eax, edx
lea ecx, [esp + 0x10]
sar eax, 1
push ecx
lea eax, [ebp + eax*2]
push ebx
mov dword [esp + 0x24], eax
call fcn.1f0049d0
add esp, 8
test eax, eax
je 0x1f004e50
mov edx, dword [esp + 0x10]
push edx
call fcn.1f004a20
add esp, 4
test eax, eax
je 0x1f004c54
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x10]
push eax
push edi
call fcn.1f0049d0
mov esi, eax
add esp, 8
test esi, esi
je 0x1f004c32
mov ecx, dword [esp + 0x10]
push ecx
push edi
call fcn.1f03eb83
add esp, 8
mov esi, eax
neg esi
sbb esi, esi
neg esi
push edi
call fcn.1f03e80c
add esp, 4
test esi, esi
je 0x1f004e84
mov edx, dword [esp + 0x10]
push edx
call fcn.1f004a20
add esp, 4
test eax, eax
jne 0x1f004c04
mov eax, dword [esp + 0x10]
push eax
call fcn.1f034210
add esp, 4
test eax, eax
je 0x1f004cf9
push 0x2000
call fcn.1f03e832
add esp, 4
mov edi, eax
push edi
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push ebx
call fcn.1f03e395
mov ebx, eax
push ebx
call fcn.1f034250
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x2000
call fcn.1f03e832
mov ecx, dword [esp + 0x14]
add esp, 4
push 0
mov ebp, eax
push ebp
push 0x1000
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov esi, eax
neg esi
sbb esi, esi
push ebx
neg esi
call fcn.1f03e275
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push edi
call fcn.1f03e80c
mov edx, dword [esp + 0x14]
push edx
call fcn.1f03e80c
add esp, 8
mov dword [esp + 0x10], ebp
test esi, esi
je 0x1f004ec2
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004d00
sub eax, edx
sar eax, 1
mov ebp, eax
mov eax, dword [esp + 0x10]
lea edx, [eax + 2]
jmp 0x1f004d20
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004d20
sub eax, edx
sar eax, 1
mov edi, eax
xor ecx, ecx
lea eax, [edi + ebp + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1f03e832
mov ecx, dword [esp + 0x14]
mov esi, eax
add esp, 4
mov edx, esi
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x1f004d56
test ebp, ebp
jbe 0x1f004d8f
mov eax, dword [esp + 0x1c]
lea ecx, [edi + edi]
sub ecx, eax
lea edx, [ecx + esi]
jmp 0x1f004d80
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f004d80
mov edx, dword [esp + 0x10]
push edx
call fcn.1f03e80c
push ebx
call fcn.1f03e80c
mov eax, dword [esp + 0x20]
push eax
mov dword [esp + 0x20], esi
call fcn.1f03e80c
mov eax, esi
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1f004db5
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1f03e832
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
mov eax, esi
sub edx, esi
jmp 0x1f004df0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x1f004df0
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
jmp 0x1f004bb0
push ebx
call fcn.1f034250
add esp, 4
test eax, eax
jne 0x1f004bb0
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push esi
push ebp
push edi
call fcn.1f03e897
xor edx, edx
push ebx
mov word [edi + esi*2 - 2], dx
call fcn.1f03e80c
push ebp
call fcn.1f03e80c
add esp, 0x14
pop ebp
pop esi
pop edi
mov eax, 1
pop ebx
add esp, 0x10
ret
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
push esi
push eax
push edi
call fcn.1f03e897
xor ecx, ecx
push ebx
mov word [edi + esi*2 - 2], cx
call fcn.1f03e80c
push ebp
call fcn.1f03e80c
add esp, 0x14
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push esi
push edx
push eax
call fcn.1f03e897
mov edx, dword [esp + 0x34]
xor ecx, ecx
push edi
mov word [edx + esi*2 - 2], cx
call fcn.1f03e80c
push ebx
call fcn.1f03e80c
push ebp
call fcn.1f03e80c
add esp, 0x18
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
push esi
push eax
push edi
call fcn.1f03e897
mov edx, dword [esp + 0x1c]
xor ecx, ecx
push edx
mov word [edi + esi*2 - 2], cx
call fcn.1f03e80c
mov eax, dword [esp + 0x24]
push eax
call fcn.1f03e80c
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.1f03e80c
add esp, 0x18
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret