Function at 0x100180f0
Capabilities:
Contain obfuscated stackstrings
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100cb0b5
mov eax, dword fs:[0]
push eax
push ecx
push ebx
sub esp, 0x3d0
mov eax, dword [0x100ff230]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x301], cl
push 0x208
lea eax, [ebp - 0x228]
push 0
push eax
call fcn.10093d00
add esp, 0xc
lea eax, [ebp - 0x228]
push 0
push 0x25
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xorps xmm0, xmm0
mov dword [ebp - 0x2c0], 0
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x2bc], 0
movups xmmword [ebp - 0x2d0], xmm0
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10018190
sub ecx, edx
lea eax, [ebp - 0x228]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2d0]
call fcn.10017970
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x228]
xorps xmm0, xmm0
mov dword [ebp - 0x2a8], 0
movups xmmword [ebp - 0x2b8], xmm0
mov dword [ebp - 0x2a4], 0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100181e0
sub ecx, edx
lea eax, [ebp - 0x228]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2b8]
call fcn.10017970
cmp byte [ebp - 0x301], 0
je 0x100183ca
mov edx, 0x53
mov dword [ebp - 0x280], 0xf0053
mov dword [ebp - 0x27c], 0x210037
mov dword [ebp - 0x278], 0x25003a
mov dword [ebp - 0x274], 0x210036
mov dword [ebp - 0x270], 0xf0020
mov dword [ebp - 0x26c], 0x270036
mov dword [ebp - 0x268], 0xf0030
mov dword [ebp - 0x264], 0x3c003b
mov dword [ebp - 0x260], 0x270020
mov dword [ebp - 0x25c], 0x20
mov byte [ebp - 4], 3
xor ecx, ecx
nop
mov ax, word [ebp + ecx*2 - 0x27e]
xor ax, dx
mov word [ebp + ecx*2 - 0x258], ax
inc ecx
cmp ecx, 0x12
jae 0x100182a2
mov dx, word [ebp - 0x280]
jmp 0x10018280
xor eax, eax
lea ecx, [ebp - 0x258]
mov word [ebp - 0x234], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100182b4
sub ecx, edx
lea eax, [ebp - 0x258]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2d0]
call fcn.10021360
xor eax, eax
mov dword [ebp - 0x2a0], 0x47001b
mov edx, 0x1b
mov dword [ebp - 0x29c], 0x69007f
mov dword [ebp - 0x298], 0x6d0072
mov dword [ebp - 0x294], 0x69007e
mov dword [ebp - 0x290], 0x470068
mov dword [ebp - 0x28c], 0x6f007e
mov dword [ebp - 0x288], 0x470078
mov dword [ebp - 0x284], 0x740073
mov dword [ebp - 0x280], 0x6f0068
mov dword [ebp - 0x27c], 0x680068
mov dword [ebp - 0x278], 0x7e006b
mov dword [ebp - 0x274], 0x7f007e
mov dword [ebp - 0x270], 0x740078
mov dword [ebp - 0x26c], 0x7e0069
mov word [ebp - 0x268], ax
mov byte [ebp - 4], 4
xor ecx, ecx
nop word [eax + eax]
mov ax, word [ebp + ecx*2 - 0x29e]
xor ax, dx
mov word [ebp + ecx*2 - 0x266], ax
inc ecx
cmp ecx, 0x1b
jae 0x100183a2
mov dx, word [ebp - 0x2a0]
jmp 0x10018380
xor eax, eax
lea ecx, [ebp - 0x266]
mov word [ebp - 0x230], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100183b4
lea eax, [ebp - 0x266]
jmp 0x10018581
xor eax, eax
mov dword [ebp - 0x2a0], 0x6a0036
mov edx, 0x36
mov dword [ebp - 0x29c], 0x440052
mov dword [ebp - 0x298], 0x40005f
mov dword [ebp - 0x294], 0x440053
mov dword [ebp - 0x290], 0x6a0045
mov dword [ebp - 0x28c], 0x420053
mov dword [ebp - 0x288], 0x6a0055
mov dword [ebp - 0x284], 0x59005e
mov dword [ebp - 0x280], 0x420045
mov dword [ebp - 0x27c], 0x450045
mov dword [ebp - 0x278], 0x530046
mov dword [ebp - 0x274], 0x520053
mov dword [ebp - 0x270], 0x590055
mov dword [ebp - 0x26c], 0x530044
mov word [ebp - 0x268], ax
mov byte [ebp - 4], 5
xor ecx, ecx
nop word [eax + eax]
mov ax, word [ebp + ecx*2 - 0x29e]
xor ax, dx
mov word [ebp + ecx*2 - 0x266], ax
inc ecx
cmp ecx, 0x1b
jae 0x10018492
mov dx, word [ebp - 0x2a0]
jmp 0x10018470
xor eax, eax
lea ecx, [ebp - 0x266]
mov word [ebp - 0x230], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100184a4
sub ecx, edx
lea eax, [ebp - 0x266]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2d0]
call fcn.10021360
mov edx, 0x22
mov dword [ebp - 0x280], 0x7e0022
mov dword [ebp - 0x27c], 0x500046
mov dword [ebp - 0x278], 0x54004b
mov dword [ebp - 0x274], 0x500047
mov dword [ebp - 0x270], 0x7e0051
mov dword [ebp - 0x26c], 0x560047
mov dword [ebp - 0x268], 0x7e0041
mov dword [ebp - 0x264], 0x4d004a
mov dword [ebp - 0x260], 0x560051
mov dword [ebp - 0x25c], 0x51
mov byte [ebp - 4], 6
xor ecx, ecx
mov ax, word [ebp + ecx*2 - 0x27e]
xor ax, dx
mov word [ebp + ecx*2 - 0x258], ax
inc ecx
cmp ecx, 0x12
jae 0x10018557
mov dx, word [ebp - 0x280]
jmp 0x10018535
xor eax, eax
lea ecx, [ebp - 0x258]
mov word [ebp - 0x234], ax
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10018570
lea eax, [ebp - 0x258]
sub ecx, edx
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2b8]
call fcn.10021360
mov byte [ebp - 4], 2
lea eax, [ebp - 0x2d0]
cmp dword [ebp - 0x2bc], 8
lea edx, [ebp - 0x308]
mov byte [ebp - 0x30c], 0
lea ecx, [ebp - 0x2e8]
cmovae eax, dword [ebp - 0x2d0]
push dword [ebp - 0x30c]
mov dword [ebp - 0x308], eax
call fcn.10020550
add esp, 4
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 7
call fcn.100210e0
test al, al
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2d4]
sete al
mov byte [ebp - 0x30d], al
cmp ecx, 8
jb 0x10018635
mov edx, dword [ebp - 0x2e8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10018625
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bc1
push ecx
push edx
call fcn.1009197a
mov al, byte [ebp - 0x30d]
add esp, 8
test al, al
je 0x100186e1
mov ecx, dword [ebp - 0x2a4]
cmp ecx, 8
jb 0x1001867d
mov edx, dword [ebp - 0x2b8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10018673
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bc6
push ecx
push edx
call fcn.1009197a
add esp, 8
mov ecx, dword [ebp - 0x2bc]
xor eax, eax
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 7
mov word [ebp - 0x2b8], ax
cmp ecx, 8
jb 0x100186da
mov edx, dword [ebp - 0x2d0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x100186d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bc6
push ecx
push edx
call fcn.1009197a
add esp, 8
xor al, al
jmp 0x10018ba3
cmp dword [ebp - 0x2a4], 8
lea eax, [ebp - 0x2b8]
mov byte [ebp - 0x308], 0
lea edx, [ebp - 0x30c]
cmovae eax, dword [ebp - 0x2b8]
lea ecx, [ebp - 0x2e8]
push dword [ebp - 0x308]
mov dword [ebp - 0x30c], eax
call fcn.10020550
add esp, 4
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 8
call fcn.10020520
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2d4]
cmp ecx, 8
jb 0x1001876f
mov edx, dword [ebp - 0x2e8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10018765
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bcb
push ecx
push edx
call fcn.1009197a
add esp, 8
cmp dword [ebp - 0x2a4], 8
lea eax, [ebp - 0x2b8]
mov byte [ebp - 0x308], 0
lea edx, [ebp - 0x30c]
cmovae eax, dword [ebp - 0x2b8]
lea ecx, [ebp - 0x2e8]
push dword [ebp - 0x308]
mov dword [ebp - 0x30c], eax
call fcn.10020550
add esp, 4
mov byte [ebp - 4], 9
lea eax, [ebp - 0x2d0]
cmp dword [ebp - 0x2bc], 8
lea edx, [ebp - 0x30c]
mov byte [ebp - 0x308], 0
lea ecx, [ebp - 0x300]
cmovae eax, dword [ebp - 0x2d0]
push dword [ebp - 0x308]
mov dword [ebp - 0x30c], eax
call fcn.10020550
add esp, 4
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x2e8]
cmp dword [ebp - 0x2d4], 8
lea eax, [ebp - 0x300]
cmovae ecx, dword [ebp - 0x2e8]
cmp dword [ebp - 0x2ec], 8
push ecx
cmovae eax, dword [ebp - 0x300]
push eax
call fcn.1008fb02
test eax, eax
jne 0x10018bd0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x2ec]
cmp ecx, 8
jb 0x10018868
mov edx, dword [ebp - 0x300]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1001885e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018be5
push ecx
push edx
call fcn.1009197a
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2d4]
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2ec], 7
mov word [ebp - 0x300], ax
cmp ecx, 8
jb 0x100188c9
mov edx, dword [ebp - 0x2e8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x100188bf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018be5
push ecx
push edx
call fcn.1009197a
add esp, 8
cmp byte [ebp - 0x301], 0
lea eax, [ebp - 0x2d0]
je 0x1001894a
cmp dword [ebp - 0x2bc], 8
lea ecx, [ebp - 0x3e0]
cmovae eax, dword [ebp - 0x2d0]
sub esp, 0xc
push eax
call fcn.1001e0b0
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x37c], 0
je 0x1001893a
lea ecx, [ebp - 0x3c8]
call fcn.1001edf0
test eax, eax
jne 0x1001893a
mov eax, dword [ebp - 0x3e0]
lea ecx, [ebp - 0x3e0]
push 0
add ecx, dword [eax + 4]
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.10008380
lea ecx, [ebp - 0x3e0]
call fcn.10018c00
jmp 0x10018b08
cmp dword [ebp - 0x2bc], 8
lea edx, [ebp - 0x30c]
mov byte [ebp - 0x308], 0
lea ecx, [ebp - 0x2e8]
cmovae eax, dword [ebp - 0x2d0]
push dword [ebp - 0x308]
mov dword [ebp - 0x30c], eax
call fcn.10020550
add esp, 4
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0xc
call fcn.10020520
mov ecx, dword [ebp - 0x2d4]
cmp ecx, 8
jb 0x10018b08
mov edx, dword [ebp - 0x2e8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x100189c8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bea
push ecx
push edx
call fcn.1009197a
add esp, 8
jmp 0x10018b08
mov ecx, dword [ebp - 0x2a4]
cmp ecx, 8
jb 0x10018b48
mov edx, dword [ebp - 0x2b8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10018b3e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bef
push ecx
push edx
call fcn.1009197a
add esp, 8
mov ecx, dword [ebp - 0x2bc]
xor eax, eax
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 7
mov word [ebp - 0x2b8], ax
cmp ecx, 8
jb 0x10018ba1
mov edx, dword [ebp - 0x2d0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10018b97
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bef
push ecx
push edx
call fcn.1009197a
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.10091622
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1009d81f
call fcn.1009d81f
call fcn.1009d81f
lea ecx, [ebp - 0x2e8]
mov edx, eax
push ecx
lea ecx, [ebp - 0x300]
push ecx
call fcn.10020470
call fcn.1009d81f
call fcn.1009d81f
call fcn.1009d81f
int3