Function at 0x1004c6c1
Capabilities:
Contain obfuscated stackstrings
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x280
mov dword [esp + 0x28], ecx
mov eax, dword [0x100c51b8]
xor eax, ebp
mov dword [esp + 0x278], eax
lea eax, [esp + 0xef]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov byte [ecx + 0x10], 0
mov dword [esp + 0x18], eax
mov eax, 0xeae0f1a1
cmp eax, 0x31494f3e
jg 0x1004c744
cmp eax, 0xbf4ce784
je 0x1004ce6c
cmp eax, 0xeae0f1a1
je 0x1004c774
cmp eax, 0x1855c226
jne 0x1004c708
lea ecx, [esp + 0x38]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
push 1
call fcn.1004cf24
xor edi, edi
mov eax, 0x32aabdd9
jmp 0x1004c708
cmp eax, 0x31494f3f
je 0x1004cb96
cmp eax, 0x32aabdd9
je 0x1004cc1b
cmp eax, 0x419effce
jne 0x1004c708
push dword [esp + 0x18]
call fcn.1004c5c8
add esp, 4
mov eax, 0x1855c226
jmp 0x1004c708
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
lea eax, [esp + 0x260]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x270], ecx
mov dword [esp + 0x274], 0xf
mov byte [esp + 0x260], 0
lea esi, [esp + 0x158]
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x34]
push 0x105
push ecx
push dword [esp + 0x3c]
call fcn.1008c000
add esp, 0xc
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x2c]
sub esp, 0x14
mov dword [esp + 0x10], eax
movaps xmm0, xmmword [0x100b5390]
movups xmmword [esp], xmm0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
sets byte [esp + 5]
cmp eax, 1
sete byte [esp + 6]
mov eax, 0xd59e896c
cmp eax, 0x34a1d078
jg 0x1004c867
cmp eax, 0xd59e896c
je 0x1004c9c8
cmp eax, 0x2795dea9
jne 0x1004c812
xor eax, eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], 0xf
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x100]
push eax
push 0x100be687
call fcn.10007b00
mov eax, 0x34a1d079
jmp 0x1004c812
cmp eax, 0x34a1d079
je 0x1004cc38
cmp eax, 0x5892cd00
jne 0x1004c812
mov ebx, dword [esp + 0x2c]
push ebx
call fcn.1009ee80
add esp, 4
lea ecx, [esp + 0x260]
push eax
push ebx
call fcn.10007b00
mov al, 1
mov byte [esp + 0x120], al
mov byte [esp + 0x121], 0x29
mov byte [esp + 0x122], 0x68
mov cl, 0x63
mov byte [esp + 0x123], cl
mov dl, 0x53
mov byte [esp + 0x124], dl
mov byte [esp + 0x125], 0x5f
mov byte [esp + 0x126], dl
mov byte [esp + 0x127], 0x56
mov byte [esp + 0x128], 0x5c
mov dl, 0x49
mov byte [esp + 0x129], dl
mov byte [esp + 0x12a], 0x60
mov byte [esp + 0x12b], 0x5d
mov ah, 0x5b
mov byte [esp + 0x12c], ah
mov byte [esp + 0x12d], 0x58
mov byte [esp + 0x12e], ah
mov ah, 0x54
mov byte [esp + 0x12f], ah
mov byte [esp + 0x130], ah
mov byte [esp + 0x131], 0x79
mov byte [esp + 0x132], cl
mov cl, 0x4b
mov byte [esp + 0x133], cl
mov byte [esp + 0x134], dl
mov byte [esp + 0x135], 0x43
mov byte [esp + 0x136], 0x41
mov byte [esp + 0x137], 0x4f
mov byte [esp + 0x138], 0x6f
mov dl, 0x4a
mov byte [esp + 0x139], dl
mov byte [esp + 0x13a], 0x5e
mov byte [esp + 0x13b], al
mov byte [esp + 0x13c], dl
mov byte [esp + 0x13d], cl
lea eax, [esp + 0x140]
mov dword [esp + 0x140], eax
mov ecx, 0xfb62f948
lea eax, [esp + 0x13e]
cmp ecx, 0xa5128dc1
je 0x1004c9e8
cmp ecx, 0xfb62f948
jne 0x1004c99e
mov byte [eax], 0
inc eax
cmp eax, dword [esp + 0x140]
mov ecx, 0xfb62f948
mov edx, 0xa5128dc1
cmove ecx, edx
jmp 0x1004c99e
mov cl, byte [esp + 5]
cmp byte [esp + 6], 0
mov eax, 0x5892cd00
mov edx, 0x2795dea9
cmovne eax, edx
test cl, cl
cmovne eax, edx
jmp 0x1004c812
lea eax, [esp + 0x120]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov al, byte [eax]
mov byte [esp + 7], al
mov eax, 0x29de9dba
cmp eax, 0xcd624f01
jg 0x1004ca47
cmp eax, 0xa1d944b1
je 0x1004ca70
cmp eax, 0xb6bd3dca
je 0x1004cae4
cmp eax, 0xc42171dd
jne 0x1004ca02
mov eax, dword [esp + 0x140]
mov byte [esp + 0x13e], 0
mov byte [esp + 0x13f], 0
mov eax, dword [esp + 8]
mov byte [eax], 0
mov eax, 0xb6bd3dca
jmp 0x1004ca02
cmp eax, 0xcd624f02
je 0x1004ca94
cmp eax, 0x52e6805
je 0x1004caad
cmp eax, 0x29de9dba
jne 0x1004ca02
test byte [esp + 7], 1
mov eax, 0xa1d944b1
mov ecx, 0xb6bd3dca
cmove eax, ecx
jmp 0x1004ca02
lea eax, [esp + 0x30]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x30], 0
mov eax, 0xcd624f02
jmp 0x1004ca02
mov eax, dword [esp + 0x30]
cmp eax, 0x1c
mov eax, 0xc42171dd
mov ecx, 0x52e6805
cmovb eax, ecx
jmp 0x1004ca02
mov eax, dword [esp + 0x30]
mov cl, byte [esp + eax + 0x122]
mov eax, dword [esp + 0x30]
mov dl, byte [esp + 0x121]
inc al
xor al, dl
xor al, cl
xor al, 0x1c
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x122], al
inc dword [esp + 0x30]
mov eax, 0xcd624f02
jmp 0x1004ca02
xor eax, eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x150], eax
mov ecx, 0xf
mov dword [esp + 0x154], ecx
mov byte [esp + 0x140], al
lea ebx, [esp + 0x122]
push ebx
call fcn.1009ee80
add esp, 4
mov esi, edi
lea edi, [esp + 0x140]
mov ecx, edi
push eax
push ebx
call fcn.10007b00
mov ebx, dword [esp + 0x150]
mov ecx, edi
call fcn.10007bca
lea ecx, [esp + 0x260]
push ebx
push eax
call fcn.10008e94
movups xmm0, xmmword [esp + 0x260]
movaps xmmword [esp + 0x100], xmm0
movsd xmm0, qword [esp + 0x270]
movsd qword [esp + 0x110], xmm0
xor ecx, ecx
mov dword [esp + 0x270], ecx
mov eax, 0xf
mov dword [esp + 0x274], eax
mov byte [esp + 0x260], cl
mov ecx, edi
mov edi, esi
call fcn.100087f0
mov eax, 0x34a1d079
jmp 0x1004c812
mov ebx, dword [esp + 0x10]
lea edi, [ebx + 0x10]
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx + 0x24]
mov edx, 0xfffff1ff
and ecx, edx
or ecx, 0x800
mov dword [eax + ebx + 0x24], ecx
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
mov byte [eax + ebx + 0x50], 0x30
push 0
push 2
lea eax, [esp + 0x160]
push eax
call fcn.10088880
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
add eax, edi
push dword [esp + 0x164]
push dword [esp + 0x164]
push eax
call dword [esp + 0x164]
add esp, 0xc
mov eax, dword [esp + 0x14]
movzx eax, byte [esp + eax + 0xef]
mov ecx, edi
push eax
call fcn.1004cff2
mov edi, dword [esp + 0x14]
inc edi
mov eax, 0x32aabdd9
jmp 0x1004c708
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
cmp eax, 0x10
mov eax, 0xbf4ce784
mov ecx, 0x31494f3f
cmovb eax, ecx
jmp 0x1004c708
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x260]
call fcn.100087f0
mov eax, dword [esp + 0x20]
mov eax, 0xbb8f4258
cmp dword [esp + 0x110], 0
mov ecx, 0xb7644450
mov edx, 0xbdb2f3b3
cmove ecx, edx
cmp eax, 0xbdb2f3b2
jg 0x1004cc7f
cmp eax, 0xb7644450
je 0x1004cc96
cmp eax, 0xbb8f4258
jne 0x1004cc66
mov eax, ecx
jmp 0x1004cc66
cmp eax, 0xbdb2f3b3
je 0x1004ce29
cmp eax, 0x3ce02d00
jne 0x1004cc66
jmp 0x1004ce47
lea ecx, [esp + 0x100]
call fcn.10007bca
lea esi, [esp + 0x158]
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
xorps xmm0, xmm0
movups xmmword [ecx + 0x10], xmm0
xor ebx, ebx
mov byte [ecx + 0x20], bl
movups xmmword [ecx], xmm0
push eax
push 0x21
push esi
push 0
push str.config1
push str.Profile
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov eax, dword [esp + 8]
mov byte [eax + 2], bl
mov word [eax], 0
push esi
call fcn.1009ee80
add esp, 4
mov dword [esp + 0x140], eax
mov ecx, 0x4458d682
cmp ecx, 0x3711b2ca
jle 0x1004cd4b
cmp ecx, 0x4458d681
jg 0x1004cd73
cmp ecx, 0x3711b2cb
je 0x1004cda3
cmp ecx, 0x3bda07c6
jne 0x1004cd07
mov dword [esp + 0x120], eax
mov ecx, dword [esp + 0x120]
cmp ecx, 0x10
mov ecx, 0x287e0b68
mov edx, 0xbaefb2d0
cmovl ecx, edx
jmp 0x1004cd07
cmp ecx, 0xa5fd1846
je 0x1004cdce
cmp ecx, 0xbaefb2d0
je 0x1004cdda
cmp ecx, 0x287e0b68
jne 0x1004cd07
mov ecx, dword [esp + 0x260]
mov bl, 1
mov ecx, 0x5709a439
jmp 0x1004cd07
cmp ecx, 0x5709a439
je 0x1004ce35
cmp ecx, 0x4458d682
jne 0x1004cd07
mov ecx, dword [esp + 0x140]
cmp ecx, 0x20
mov ecx, 0xa5fd1846
mov edx, 0x3711b2cb
cmove ecx, edx
jmp 0x1004cd07
mov byte [esp + 0x36], 0
lea eax, [esp + 0x2c]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x260]
mov dword [esp + 0x2c], 0
xor eax, eax
mov ecx, 0x3bda07c6
jmp 0x1004cd07
mov ecx, 0x5709a439
xor ebx, ebx
jmp 0x1004cd07
mov eax, dword [esp + 0x120]
movzx eax, word [esp + eax*2 + 0x158]
mov word [esp + 0x34], ax
lea eax, [esp + 0x2c]
push eax
push 0x100be010
lea eax, [esp + 0x3c]
push eax
call fcn.1004d161
add esp, 0xc
mov al, byte [esp + 0x2c]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x24]
mov byte [edx + ecx], al
mov eax, dword [esp + 0x120]
inc eax
mov ecx, 0x3bda07c6
jmp 0x1004cd07
mov eax, 0x3ce02d00
xor ebx, ebx
jmp 0x1004cc51
mov eax, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov eax, 0x3ce02d00
jmp 0x1004cc51
lea ecx, [esp + 0x100]
call fcn.100087f0
mov eax, dword [esp + 0x1c]
test bl, 1
mov eax, 0x419effce
mov ecx, 0x1855c226
cmovne eax, ecx
jmp 0x1004c708
lea ecx, [esp + 0x50]
mov esi, dword [esp + 0x28]
push esi
call fcn.10054a5c
lea edi, [esp + 0xa0]
mov ecx, edi
call fcn.10054c8e
mov dword [edi], 0x100b53e0
push edi
call fcn.10088109
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x278]
xor ecx, ebp
call fcn.100879aa
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret