Function at 0x1002b172
Capabilities:
Get common file path

Disassembly:
mov eax, 0x10059577
call fcn.100580f4
sub esp, 0x148
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x68], ecx
je 0x1002b902
cmp byte [ebp + 0xc], 0
je 0x1002b8e0
mov dword [ebp - 0x18], 0x4e40
xor ebx, ebx
cmp dword [ebp - 0x18], 0x5023
jle 0x1002b21b
push 0xef4
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov eax, esi
mov dword [ebp - 0x14], ebx
cdq
mov esi, ebx
idiv edi
mov dword [ebp - 0x30], 0x3641
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x14], ebx
mov eax, esi
mov ecx, 0x10071a98
cdq
idiv ebx
mov eax, edx
cdq
push edx
push eax
call fcn.100046a4
inc ebx
cmp ebx, 0x2375
jl 0x1002b1db
add esi, dword [ebp - 0x20]
dec dword [ebp - 0x30]
push 0
pop ebx
jne 0x1002b1d8
mov esi, dword [ebp - 0x24]
inc edi
cmp edi, 0x43f1
jl 0x1002b1c4
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x2d60
jl 0x1002b1c2
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0x4e0b
jge 0x1002b236
mov edx, str.oojqgc_dkbpx_pnhp
mov ecx, 0x10071a98
call fcn.10006c80
or dword [ebp - 4], 0xffffffff
sub esp, 0x18
mov ecx, esp
push dword [ebp + 0x20]
call fcn.10008035
lea ecx, [ebp - 0x74]
call fcn.10028bfc
add esp, 0x18
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x70]
je 0x1002b632
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa8], ebx
push eax
push 0x1000
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
call fcn.1002c380
mov byte [ebp - 4], 3
mov esi, 0x8988
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x60]
push dword [ebp - 0x60]
sar eax, 1
push eax
push esi
push 0xe9c8
call fcn.10017172
pop ecx
pop ecx
call eax
push dword [ebp - 0x60]
lea ecx, [ebp - 0x8c]
call fcn.100047b9
push 0xb9a8
mov byte [ebp - 4], 4
call fcn.10039026
cmp dword [ebp - 0x78], 8
pop ecx
movzx edx, ax
lea ecx, [ebp - 0x8c]
cmovae ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x64], edx
cmp word [ecx + eax*2 - 2], dx
je 0x1002b317
lea eax, [ebp - 0x8c]
mov edx, 0x87
push eax
push 1
push 1
push 1
push 0x524b
lea eax, [ebp - 0x64]
mov ecx, 0x4ed8
push eax
push 0x2739
call fcn.100296e8
add esp, 0x1c
lea eax, [ebp - 0x8c]
mov dl, 1
push eax
push 0x6d9a
push 0x1296
push 1
push 0xe13
push 0x335a
push 1
push 0x41df
mov ecx, 0x22a8
call fcn.1002a901
add esp, 0x20
lea eax, [ebp - 0x8c]
cmp dword [ebp - 0x78], 8
cmovae eax, dword [ebp - 0x8c]
push ebx
push eax
push esi
push 0x12e88
call fcn.10017172
pop ecx
pop ecx
call eax
lea eax, [ebp - 0x8c]
mov dl, 1
push eax
push ecx
lea ecx, [ebp - 0x64]
call fcn.1002b067
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x74]
sub ecx, edx
push eax
mov dword [ebp - 0x2c], ebx
call fcn.1002cc67
add esp, 0xc
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x44], 0x1d023a03
mov word [ebp - 0x40], 0x1d01
mov byte [ebp - 0x3e], bl
mov word [ebp - 0x3d], 0x14b
mov byte [ebp - 0x3b], 0xc6
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0xc0]
call fcn.10008035
push 0x10
pop edx
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 5
call fcn.10026430
push 0x6c
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 6
push eax
push 0x42d3
push 0x370e
push 1
push 1
push ebx
lea edx, [ebp - 0xc0]
mov ecx, 0x5ed0
call fcn.1002b172
add esp, 0x1c
mov ecx, ebx
mov dword [ebp - 0x54], ecx
push 0x65
pop eax
push 2
mov word [ebp - 0x9e], ax
pop esi
cmp esi, 8
jne 0x1002b4b2
mov dword [ebp - 0x54], 2
mov dword [ebp - 0x14], 0x7b
cmp dword [ebp - 0x14], 0x1aa
mov dword [ebp - 0x20], esi
jle 0x1002b4f1
mov edi, ebx
mov esi, ebx
mov eax, esi
lea ecx, [ebp - 0x13c]
and eax, edi
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002b461
mov eax, dword [eax]
push eax
call fcn.1003fffd
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x13c]
call fcn.10004e55
inc esi
cmp esi, 0x6256
jl 0x1002b445
inc edi
cmp edi, 0x3914
jl 0x1002b443
mov esi, dword [ebp - 0x20]
jmp 0x1002b4f1
movzx edx, byte [ebp + esi - 0x43]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x46]
movzx eax, word [ebp + eax*2 - 0xa4]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [ebp + esi - 0x44]
push ecx
push 1
mov word [ebp + eax*2 - 0xa4], cx
lea eax, [ebp - 0x54]
push eax
mov ecx, 0xbc7
call fcn.100298ec
add esp, 0xc
add esi, 2
cmp esi, 0xa
jae 0x1002b501
mov ecx, dword [ebp - 0x54]
jmp 0x1002b41a
xor eax, eax
mov dword [ebp - 0xf4], 7
mov word [ebp - 0x9c], ax
lea ecx, [ebp - 0x108]
mov word [ebp - 0x108], ax
lea eax, [ebp - 0xa4]
push eax
mov dword [ebp - 0xf8], ebx
call fcn.10004e99
push ecx
push ecx
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0xc0]
call fcn.1001af6e
push ebx
push 1
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 6
call fcn.10004f21
xor eax, eax
lea edi, [ebp - 0xa4]
cmp dword [ebp - 0xac], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [ebp - 0xc0]
cmovae eax, dword [ebp - 0xc0]
mov edi, 0x8988
push eax
push edi
push 0xc088
call fcn.10017172
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x1002b5e5
push ebx
lea eax, [ebp - 0x10c]
push eax
push dword [ebp - 0x2c]
push dword [ebp - 0x74]
push esi
push edi
push 0x6048
call fcn.10017172
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0xdc08
setne bl
call fcn.10017172
pop ecx
pop ecx
call eax
test bl, bl
jne 0x1002b6c9
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x124]
call fcn.10004f21
push ebx
push 1
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 4
call fcn.10004f21
mov edi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x12c
jb 0x1002b3b5
push ebx
push 1
lea ecx, [ebp - 0x8c]
call fcn.10004f21
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
call fcn.1000508a
mov ecx, dword [ebp - 0x68]
mov byte [ecx], bl
mov dword [ebp - 0x14], 0x3547
cmp dword [ebp - 0x14], 0x37b5
jle 0x1002b8d3
mov esi, ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp + 8], ebx
mov ecx, ebx
mov dword [ebp - 0x2c], ebx
add eax, edi
sar eax, cl
lea ecx, [ebp - 0x154]
or eax, esi
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002b677
mov eax, dword [eax]
push eax
call fcn.1003fffd
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x154]
call fcn.10004e55
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x79df
jl 0x1002b659
inc eax
mov dword [ebp + 8], eax
cmp eax, 0x1ad5
jl 0x1002b654
inc edi
cmp edi, 0x7453
jl 0x1002b64f
inc esi
cmp esi, 0x7257
jl 0x1002b64d
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_HeapCreate]
jmp 0x1002b8d3
push 0x22
pop eax
push 2
pop esi
xor ebx, ebx
mov dword [ebp - 0x38], 0xa604f800
push 7
mov word [ebp - 0x34], 0x9363
mov ecx, ebx
mov byte [ebp - 0x32], 0x36
mov word [ebp - 0x28], ax
pop edi
cmp esi, 2
jne 0x1002b6f7
push 5
pop ecx
push ecx
pop esi
jmp 0x1002b71e
movzx edx, byte [ebp + esi - 0x37]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x3a]
movzx eax, word [ebp + eax*2 - 0x28]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [ebp + esi - 0x38]
mov word [ebp + eax*2 - 0x28], cx
mov ecx, ebx
add esi, 2
cmp esi, edi
jb 0x1002b6eb
xor eax, eax
mov dword [ebp - 0xc4], edi
mov word [ebp - 0x26], ax
lea ecx, [ebp - 0xd8]
mov word [ebp - 0xd8], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0xc8], ebx
call fcn.10004e99
push 0x857
push 0x24f2
push 0x49d3
push 1
push 0x417b
push 0x5561
push 0x15ff
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0xa
push eax
push 1
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x28], ebx
push eax
push 1
mov edx, 0x4b95
mov ecx, 0xc25
call fcn.100299e6
add esp, 0x2c
mov dword [ebp - 0x50], 0x73036801
mov dword [ebp - 0x4c], 0x8b2b8a03
mov ecx, ebx
mov dword [ebp - 0x48], 0xd027100
push 0x20
pop eax
push 2
mov word [ebp - 0x96], ax
pop esi
cmp esi, 4
jne 0x1002b7c8
push esi
pop ecx
push 6
pop esi
jmp 0x1002b7f7
movzx edx, byte [ebp + esi - 0x4f]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x52]
movzx ecx, word [ebp + eax*2 - 0x98]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x50]
add ecx, edx
mov word [ebp + eax*2 - 0x98], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xc
jb 0x1002b7bc
xor eax, eax
mov dword [ebp - 0xdc], edi
mov word [ebp - 0x90], ax
lea ecx, [ebp - 0xf0]
mov word [ebp - 0xf0], ax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0xe0], ebx
call fcn.10004e99
push ecx
push ecx
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0xd8]
call fcn.1001af6e
push ebx
push 1
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xa
call fcn.10004f21
push ecx
xor eax, eax
lea edi, [ebp - 0x98]
stosd dword es:[edi], eax
mov dl, 1
push 0x3dbe
push 0x3f3d
push ecx
stosd dword es:[edi], eax
push ecx
lea ecx, [ebp + 0xb]
stosw word es:[edi], ax
call fcn.1002a431
add esp, 0x14
lea edx, [ebp - 0x8c]
lea ecx, [ebp - 0xd8]
call fcn.10028c8b
mov ecx, dword [ebp - 0x68]
push ebx
push 1
mov byte [ecx], al
lea ecx, [ebp - 0xd8]
call fcn.10004f21
push ebx
push 1
lea ecx, [ebp - 0x124]
call fcn.10004f21
push ebx
push 1
lea ecx, [ebp - 0xc0]
call fcn.10004f21
push ebx
push 1
lea ecx, [ebp - 0x8c]
call fcn.10004f21
lea ecx, [ebp - 0x60]
call fcn.1000508a
lea ecx, [ebp - 0x74]
call fcn.100050f4
jmp 0x1002b9ec
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x1002b9ec
push ecx
push 0x30d3
xor dl, dl
call fcn.10028987
pop ecx
pop ecx
jmp 0x1002b9ec
cmp byte [ebp + 0x10], 0
je 0x1002b919
push ecx
push ecx
push dword [ebp + 0x1c]
mov ecx, edx
call fcn.1001af6e
jmp 0x1002b9ec
mov dword [ebp - 0x14], 0x26a0
xor ebx, ebx
cmp dword [ebp - 0x14], 0x294e
jle 0x1002b990
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x30], 0x4416
mov eax, ebx
mov dword [ebp - 0x24], 0x13f1
mov dword [ebp - 0x18], eax
mov ebx, eax
mov esi, 0x750e
mov eax, ebx
mov ecx, 0x10071a98
cdq
push edx
push eax
call fcn.100046a4
inc ebx
dec esi
jne 0x1002b94a
mov eax, dword [ebp - 0x18]
add eax, edi
dec dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
jne 0x1002b943
mov esi, dword [ebp - 0x20]
add edi, esi
dec dword [ebp - 0x30]
push 0
pop ebx
jne 0x1002b937
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0xafb
jl 0x1002b92e
push ebx
push 0x215d
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x14], 0x25ec
jge 0x1002b9cd
mov edx, str.wbw_adhqgpka_kfbw
mov ecx, 0x10071a98
call fcn.10006c80
jmp 0x1002b9cd
mov edx, dword [ebp + 0x18]
mov dword [edx], ebx
cmp dword [edx], 2
jge 0x1002b9ec
mov esi, dword [ebp + 0x14]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xcb24ce55
inc dword [edx]
cmp dword [edx], 2
jl 0x1002b9da
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret