Function at 0x1001a190
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x454
mov eax, dword [0x1003e620]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 0xc]
lea ecx, [eax - 0xf]
push edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x43c], esi
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x444], ecx
cmp eax, ecx
jbe 0x1001a62d
mov ebx, dword [ebp - 0x444]
add eax, 0xffffffc9
mov dword [ebp - 0x440], eax
jmp 0x1001a1e0
cmp eax, 0x25
ja case.0x1001a1f0.8
movzx eax, byte [eax + 0x1001a6a0]
jmp dword [eax*4 + 0x1001a660]
mov ecx, dword [0x10038085]
mov dl, byte [0x10038089]
mov dword [ebp - 0x17], ecx
mov byte [ebp - 0x13], dl
mov byte [ebp - 0x12], 0
jmp case.0x1001a1f0.8
mov eax, dword [esi]
mov ecx, dword [edi + 8]
push eax
call ecx
xor edx, edx
add esp, 4
div dword [edi + 4]
mov eax, dword [edi]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x450], edx
mov dword [ebp - 0x438], ecx
jmp case.0x1001a1f0.8
mov edx, dword [0x1003804f]
mov al, byte [0x10038053]
mov dword [ebp - 0xe], edx
mov byte [ebp - 0xa], al
jmp case.0x1001a1f0.8
push 4
lea ecx, [ebp - 0x2c]
push 0x10038041
push ecx
call fcn.10027280
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x1c]
push eax
push 0x8a
call fcn.10001f60
add esp, 0x18
push 0x400
lea ecx, [ebp - 0x42c]
push ecx
mov dword [ebp - 0x454], eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
jmp case.0x1001a1f0.8
push 4
lea edx, [ebp - 0x1c]
push 0x10038024
push edx
call fcn.10027280
add esp, 0xc
jmp case.0x1001a1f0.8
mov ax, word [0x10037ff6]
mov cl, byte [0x10037ff8]
mov word [ebp - 9], 0x41
mov word [ebp - 0x2c], ax
mov byte [ebp - 0x2a], cl
jmp case.0x1001a1f0.8
test ebx, ebx
je 0x1001a4cf
mov edx, dword [esi]
mov eax, dword [ebp + 8]
mov dword [ebx], edx
mov ecx, dword [eax]
mov eax, dword [ebp - 0x450]
mov dword [ebx + 4], ecx
mov edx, dword [edi]
mov ecx, dword [edx + eax*4]
mov dword [ebx + 8], ecx
jmp case.0x1001a1f0.8
push 0
push 0x40
call fcn.10001570
add esp, 8
test eax, eax
je 0x1001a46b
mov edx, dword [0x1003e494]
mov eax, dword [0x100403e8]
push 0x100403ec
shl edx, 0x10
or edx, 1
push edx
push 2
push eax
call dword [sym.imp.ADVAPI32.dll_CryptGenKey]
test eax, eax
je 0x1001a443
mov esi, 0xd2
mov edi, edi
cmp esi, 0xd2
je 0x1001a39c
cmp esi, 0xa758
je 0x1001a366
cmp esi, 0x14dde
jne 0x1001a429
push 0xb3
push 0
push 0
push 0
push 0
call fcn.10019e70
add esp, 0x14
jmp 0x1001a429
lea ecx, [ebp - 0x430]
push ecx
push str.TopSideBearings
lea edx, [ebp - 0x434]
push 0x52
push edx
mov dword [ebp - 0x430], 1
mov dword [ebp - 0x434], 7
call fcn.1000fb70
add esp, 0x10
jmp 0x1001a429
lea eax, [ebp - 0x434]
push eax
push str.VMINPSrr_Int
lea ecx, [ebp - 0x430]
push 0x52
push ecx
mov dword [ebp - 0x434], 0
mov dword [ebp - 0x430], 6
call fcn.1000fb70
lea edx, [ebp - 0x434]
push edx
push str.rsa_public.bin
lea eax, [ebp - 0x430]
push 0x52
push eax
mov dword [ebp - 0x434], 1
mov dword [ebp - 0x430], 6
call fcn.1000fb70
lea ecx, [ebp - 0x434]
push ecx
push str.rsa_private.h
lea edx, [ebp - 0x430]
push 0x52
push edx
mov dword [ebp - 0x434], 0
mov dword [ebp - 0x430], 7
call fcn.1000fb70
add esp, 0x30
add esi, 0xa686
cmp esi, 0x1f392
jbe 0x1001a330
mov esi, dword [ebp - 0x43c]
jmp 0x1001a456
mov eax, dword [0x1003e494]
push eax
push str.wcm_wdb_wks_wps
call fcn.10002df0
add esp, 8
push 0
push 0
push 0
push 0x3f
call fcn.10002f80
add esp, 0x10
jmp case.0x1001a1f0.8
push str.CryptAcquireContext__
call fcn.10002df0
jmp 0x1001a604
push 5
lea ecx, [ebp - 0x2c]
push 0x10037f56
push ecx
mov byte [ebp - 0x29], 0
call fcn.10027280
add esp, 0xc
jmp case.0x1001a1f0.8
mov edx, dword [edi]
mov eax, dword [ebp - 0x450]
mov dword [edx + eax*4], ebx
inc dword [edi + 0x18]
jmp case.0x1001a1f0.8
mov eax, dword [edi + 0x18]
xor edx, edx
lea eax, [eax + eax*2]
div dword [edi + 4]
test eax, eax
je case.0x1001a1f0.8
push 0x65
push edi
call fcn.1000c090
add esp, 8
test eax, eax
jne case.0x1001a1f0.8
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10027670
mov esp, ebp
pop ebp
ret
push 3
lea edx, [ebp - 0x1a]
mov ecx, 0x6553
push 0x10037f26
push edx
mov word [ebp - 0x1c], cx
mov byte [ebp - 0x1a], 0
call fcn.100273c0
add esp, 0xc
mov byte [ebp - 0x17], 0
jmp case.0x1001a1f0.8
lea eax, [ebp - 0x42c]
push eax
call dword [ebp - 0x454]
push 0
push 0
push 0
push 0xa2
call fcn.1001c5e0
add esp, 0x10
jmp case.0x1001a1f0.8
cmp dword [ebp - 0x438], 0
je 0x1001a5fb
lea ecx, [ecx]
mov ecx, dword [esi]
mov edx, dword [ebp - 0x438]
mov eax, dword [edx]
push ecx
mov ecx, dword [edi + 0xc]
push eax
call ecx
add esp, 8
test eax, eax
je 0x1001a5e4
mov esi, 0x9c
cmp esi, 0x1e6
ja 0x1001a5c8
je 0x1001a5bc
cmp esi, 0x9c
je 0x1001a58b
cmp esi, 0x141
jne 0x1001a5d0
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x438]
mov dword [ecx + 4], eax
jmp 0x1001a5d0
mov eax, dword [edi + 0x14]
mov ebx, dword [ebp - 0x438]
test eax, eax
je 0x1001a5a1
mov edx, dword [ebx + 4]
push edx
call eax
add esp, 4
mov eax, dword [edi + 0x10]
test eax, eax
je 0x1001a5b0
mov ecx, dword [ebx]
push ecx
call eax
add esp, 4
mov edx, dword [ebp - 0x43c]
mov eax, dword [edx]
mov dword [ebx], eax
jmp 0x1001a5d0
mov dword [ebp - 0x44c], 1
jmp 0x1001a5d0
cmp esi, 0x28b
je 0x1001a62d
add esi, 0xa5
cmp esi, 0x330
jb 0x1001a561
mov esi, dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x438]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x438], eax
test eax, eax
jne 0x1001a540
push 0xc
call fcn.100279e1
mov ebx, eax
add esp, 4
mov ecx, dword [ebp - 0x448]
mov eax, dword [ebp - 0x440]
dec ecx
dec eax
mov dword [ebp - 0x448], ecx
mov dword [ebp - 0x440], eax
cmp ecx, dword [ebp - 0x444]
ja 0x1001a1e0
mov eax, dword [ebp - 0x44c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10027670
mov esp, ebp
pop ebp
ret
cmp byte [esi - 0x747a6105], 0x4d
cld
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.10027670
mov esp, ebp
pop ebp
ret