Function at 0x439210
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x42c
lea eax, [ebp - 0x20]
mov ebx, 0x200
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x34], eax
cmp ebx, 0x201
jae 0x439280
jmp 0x43926e
jbe 0x4392f0
cmp ebx, 0x201
jae 0x439280
mov dword [ebp - 0x18], 0x200
lea esi, [ebp - 0x438]
mov edi, ebx
jmp 0x4392aa
mov edi, dword [ebp - 0x10]
sub ebx, edi
je 0x43929e
mov edx, edi
lea ecx, [ebp - 0x24]
push ebx
call fcn.00414480
add esp, 4
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], edi
push 0
call sub.KERNEL32.dll_SetLastError
push edi
push esi
call sub.KERNEL32.dll_GetSystemDirectoryW
mov ebx, eax
test eax, eax
jne 0x4392c7
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x43932a
cmp ebx, edi
jne 0x439260
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x439528
lea ebx, [edi + edi]
test edi, edi
mov eax, 0xffffffff
cmovs ebx, eax
cmp ebx, 0x201
jb 0x43926e
jmp 0x439280
mov edx, dword [ebp - 0x18]
cmp ebx, edx
ja 0x439541
test ebx, ebx
je 0x43935c
lea edi, [ebx + ebx]
cmp ebx, 0x3fffffff
ja 0x439552
movzx eax, byte [0x4a5058]
mov ecx, edi
call fcn.0043cf80
test eax, eax
jne 0x439363
mov ecx, 2
jmp 0x439554
call sub.KERNEL32.dll_GetLastError
cmp dword [ebp - 0x24], 0
mov esi, eax
je 0x439344
mov ecx, dword [ebp - 0x20]
mov edx, 2
call fcn.004028a0
mov eax, dword [ebp - 0x38]
mov dword [eax + 4], 0
mov dword [eax + 8], esi
mov dword [eax], 0x80000000
jmp 0x43951d
mov eax, 2
xor edi, edi
push edi
push esi
mov esi, eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [ebp - 0x24], 0
je 0x439383
mov ecx, dword [ebp - 0x20]
mov edx, 2
call fcn.004028a0
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], esi
mov edx, esi
mov esi, 0x49caa6
xor edi, edi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x34], eax
jmp 0x4393bd
mov edi, ecx
mov word [edx + ebx*2], si
mov esi, dword [ebp - 0x10]
inc ebx
mov dword [ebp - 0x28], ebx
test esi, esi
je 0x439470
test di, di
je 0x439400
mov dword [ebp - 0x10], esi
xor ecx, ecx
mov esi, edi
cmp ebx, dword [ebp - 0x30]
jne 0x4393b0
mov eax, 0x49caa6
mov edx, 0xaaaaaaab
mov edi, dword [ebp - 0x18]
sub eax, dword [ebp - 0x10]
add eax, 0xa
mul edx
mov eax, edx
shr eax, 1
cmp cx, 1
adc edi, 0xffffffff
sub eax, edi
mov edi, ecx
inc eax
jmp 0x439498
mov dword [ebp - 0x10], edi
lea eax, [0x49caae]
mov edi, dword [ebp - 0x10]
cmp esi, eax
je 0x439470
movzx ecx, byte [esi]
test cl, cl
js 0x439423
mov eax, esi
mov esi, ecx
xor ecx, ecx
inc eax
mov dword [ebp - 0x10], eax
jmp 0x4393d1
mov dword [ebp - 0x14], edx
movzx edx, byte [esi + 1]
mov eax, ecx
and eax, 0x1f
and edx, 0x3f
cmp cl, 0xdf
jbe 0x4394af
mov edi, ecx
movzx ecx, byte [esi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov edx, edi
cmp dl, 0xf0
jb 0x4394c6
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 7
mov edi, dword [ebp - 0x10]
shl eax, 0x12
and edx, 0x3f
or edx, ecx
mov ecx, edx
mov edx, dword [ebp - 0x14]
or ecx, eax
cmp ecx, 0x110000
jne 0x4394d3
cmp dword [ebp - 0x18], 1
je 0x43950b
xor esi, esi
cmp ebx, dword [ebp - 0x30]
mov eax, 0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x10], 0
jne 0x4393b2
inc eax
mov edx, ebx
lea ecx, [ebp - 0x30]
push eax
call fcn.00414480
add esp, 4
mov edx, dword [ebp - 0x2c]
jmp 0x4393b2
shl eax, 6
add esi, 2
xor ecx, ecx
or eax, edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], esi
mov esi, eax
jmp 0x4393d1
mov edx, dword [ebp - 0x14]
shl eax, 0xc
add esi, 3
or ecx, eax
jmp 0x4394d6
add esi, 4
cmp ecx, 0xffff
mov dword [ebp - 0x10], esi
jbe 0x439502
lea eax, [ecx + 0xff0000]
and ecx, 0x3ff
shr eax, 0xa
or ecx, 0xdc00
or eax, 0xd800
mov esi, eax
jmp 0x4393d1
mov esi, ecx
xor ecx, ecx
jmp 0x4393d1
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x30]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
add esp, 0x42c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 0x28
mov ecx, str.internal_error:_entered_unreachable_code_
push 0x49ce64
call fcn.00403d90
add esp, 4
jmp 0x43955b
mov ecx, ebx
push 0x49ce54
call fcn.00403ab0
add esp, 4
jmp 0x43955b
xor ecx, ecx
mov edx, edi
call fcn.00402bb0
ud2