Function at 0x103e2d0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x10
mov cx, word [0x1056028]
mov eax, 0x1a49
push ebx
mov ebx, dword [section..data]
push ebp
push esi
movzx esi, byte [esp + 0xe]
push edi
mov edi, esi
sub edi, dword [0x10560b8]
add edi, ebx
cmp cx, ax
jne 0x103e31a
movzx eax, word [0x1056024]
add edi, eax
mov dword [0x1056008], 0xffffffa5
mov dword [0x105600c], 0
movzx edx, word [0x105602e]
movzx ecx, cx
cmp ecx, ebx
movzx eax, di
lea ebx, [esi + esi*2]
cmovbe edx, eax
add ebx, ebx
push 0x4a1
push 0x1057490
mov word [0x105602e], dx
lea eax, [ebx - 0x11a]
mov dword [0x10560b8], eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
movzx edi, byte [esp + 0x12]
mov ecx, 0x105602c
mov edx, dword [0x10560b8]
mov bp, word [0x1056010]
mov dword [esp + 0x14], eax
mov edi, edi
cmp di, bp
je 0x103e38c
lea eax, [esi - 0xb7b9]
add eax, edx
lea edx, [esi + 1]
add word [ecx], ax
add edx, eax
mov bp, word [0x1056010]
sub ecx, 2
cmp ecx, 0x1056012
jg 0x103e370
mov al, byte [0x10560b4]
xor esi, esi
mov edi, dword [section..data]
sub ebx, edi
movzx edx, al
add edx, 0xffff4847
mov byte [esp + 0x13], al
add edx, ebx
mov dword [esp + 0x18], edx
cmp word [0x1056022], si
je 0x103e3cb
mov ebx, edi
sub ebx, edx
sub ebx, 0x5b
jmp 0x103e3d8
lea eax, [edi + 0xd]
add eax, ebx
add edx, eax
mov dword [esp + 0x18], edx
adc esi, esi
mov cx, word [0x1056028]
mov eax, 0x1a49
cmp cx, ax
mov ah, byte [esp + 0x12]
jne 0x103e3fc
add ah, byte [0x1056024]
mov ebx, 0xffffffa5
mov byte [esp + 0x12], ah
movzx ecx, cx
cmp ecx, ebx
ja 0x103e41d
movzx ecx, ah
mov al, bl
mov word [0x105602e], cx
mov cl, 0x56
imul cl
mov ah, byte [esp + 0x12]
add ah, al
mov byte [esp + 0x12], ah
mov al, dl
add al, 0xd
add al, byte [esp + 0x14]
add byte [esp + 0x13], al
movzx eax, ah
mov edx, eax
mov dword [esp + 0x1c], eax
sub edx, edi
add edx, 0x2a
test esi, esi
jb 0x103e45a
mov ecx, dword [esp + 0x18]
ja 0x103e445
cmp ecx, edx
jb 0x103e45a
mov eax, dword [0x105602c]
lea edx, [ecx + ecx*2]
imul eax, edi
add edx, edx
sub edx, edi
mov word [0x105602c], ax
mov di, word [0x1056022]
mov esi, 0x1056010
movzx ebx, bp
mov ecx, 0xffffffa5
mov ebp, dword [esp + 0x1c]
cmp edx, ebx
je 0x103e48b
movzx eax, word [esi]
sub ecx, eax
movzx eax, di
sub ecx, ebp
add edx, ecx
cmp edx, eax
je 0x103e496
mov ecx, 0xffffffa5
add esi, 2
cmp esi, 0x105602c
jl 0x103e472
movzx esi, byte [esp + 0x13]
xor ebp, ebp
movzx ecx, word [0x1056012]
mov edi, dword [section..data]
lea eax, [esi + esi*2]
add eax, eax
sub eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
movzx eax, word [0x1056032]
add eax, ecx
mov dword [esp + 0x18], eax
cmp eax, 0x3d9
je 0x103e4e0
mov al, byte [esp + 0x12]
movzx eax, al
sub dx, ax
sub dx, 0x5b
mov word [0x1056026], dx
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
mov eax, dword [esp + 0x14]
sub ebx, esi
add ebx, 0x2a
mov dword [0x10560b8], ebx
cmp dword [0x1056094], ebp
ja 0x103e521
jb 0x103e507
cmp dword [0x1056090], eax
ja 0x103e521
imul eax, eax, 0x16e56
mov dword [0x10560a8], ecx
mov dword [0x10560ac], ebp
add ecx, eax
mov eax, dword [esp + 0x14]
adc ebp, ebp
xor edx, edx
cmp edx, ebp
jb 0x103e55f
ja 0x103e52d
cmp edi, ecx
jb 0x103e55f
push dword [0x10560a4]
push dword [0x10560a0]
push 0
push eax
call fcn.0103f980
lea ecx, [edi + edi*2]
mov dword [0x10560a0], eax
add ecx, ecx
mov dword [0x10560a4], edx
sub ecx, dword [esp + 0x14]
mov dword [0x105600c], 0
mov dl, byte [esp + 0x13]
sub ebx, ecx
sub ebx, 0x5b
cmp dword [esp + 0x18], 0x3d9
jne 0x103e588
lea eax, [ebx*2 - 0xb7b9]
mov dword [section..data], eax
imul eax, esi, 0x16e56
add ebx, eax
jmp 0x103e59d
movzx eax, dl
sub ax, bx
sub ax, 0x5b
sub edi, ebx
mov word [0x1056026], ax
lea ebx, [edi + 0x2a]
movzx eax, dl
cmp word [0x1056028], ax
ja 0x103e5b8
imul eax, esi, 0x16e56
mov word [0x105602e], bx
add ebx, eax
mov eax, 0x104c260
mov dword [0x105600c], 0
add dl, al
sub bl, cl
mov eax, 0x103e1a0
mov byte [0x10560b4], dl
add eax, 0x1002910
add bl, 0x2a
mov dword [0x1056008], eax
movzx eax, word [0x10560bc]
push eax
call fcn.0103dee0
push dword [0x1056008]
movzx ecx, bl
lea ecx, [ecx + ecx*2]
add ecx, ecx
sub ecx, eax
mov dword [0x10560b8], ecx
call fcn.01001490
mov bl, byte [0x10560b4]
mov esi, eax
movzx ebp, bl
add esp, 8
mov eax, ebp
mov edi, 0xffffffa5
cdq
mov ecx, 0xffffffff
sub edi, eax
sbb ecx, edx
add dword [0x1056008], edi
adc dword [0x105600c], ecx
cmp esi, dword [0x10560b8]
jb 0x103e65b
movzx eax, bl
imul ax, word [0x105602c]
mov word [0x105602c], ax
lea eax, [esi + esi*2]
add eax, eax
sub eax, ebp
mov dword [0x10560b8], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0xc