Function at 0x40874c
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x427ec7
call fcn.0041b8d0
sub esp, 0x3a0
push ebx
push esi
push edi
mov esi, ecx
push 0x3003
lea ecx, [ebp - 0x94]
call fcn.004133d0
xor edi, edi
mov dword [ebp - 4], edi
push 0x3022
lea ecx, [ebp - 0x74]
call fcn.004133d0
mov byte [ebp - 4], 1
push edi
lea ecx, [ebp - 0x84]
call fcn.004133d0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x3ac]
push eax
mov ebx, 0x105
push ebx
call fcn.0041357c
test eax, eax
je 0x408cac
lea eax, [ebp - 0x3ac]
push eax
push str.Unknown
call fcn.0041bc58
test eax, eax
pop ecx
pop ecx
jne 0x4087d0
xor esi, esi
inc esi
jmp 0x408cae
mov eax, dword [esi + 4]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x70]
cmp eax, edi
mov esi, 0x401650
mov dword [ebp - 0x60], 2
mov dword [ebp - 0x5c], esi
je 0x4087ef
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x3ac]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x3ac]
push eax
lea eax, [ebp - 0x84]
push 0x101e
push eax
mov word [ebp - 0x54], 0x454
mov dword [ebp - 0x4e], edi
call fcn.00413429
mov eax, dword [ebp - 0x80]
add esp, 0xc
cmp eax, edi
mov dword [ebp - 0x4a], esi
je 0x408829
mov dword [ebp - 0x4a], eax
lea eax, [ebp - 0x64]
push eax
mov dword [ebp - 0x52], edi
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x44], eax
je 0x408b9e
cmp dword [ebp - 0x52], edi
jne 0x408b9e
push 0
lea ecx, [ebp - 0x30]
call fcn.004133d0
mov byte [ebp - 4], 6
and byte [ebp - 0x19c], 0
push 0x41
pop ecx
xor eax, eax
and byte [ebp - 0x2a4], al
push 0x41
lea edi, [ebp - 0x19b]
rep stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x2a3]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x3ac]
push eax
lea eax, [ebp - 0x30]
push 0x1034
push eax
call fcn.00413429
mov eax, dword [ebp - 0x2c]
add esp, 0xc
test eax, eax
jne 0x4088a1
mov eax, esi
push 0x180
push eax
call fcn.0041c65d
pop ecx
pop ecx
mov edi, 0x3009
push edi
lea ecx, [ebp - 0x40]
call fcn.004133d0
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 7
push 0x3006
lea ecx, [ebp - 0x20]
call fcn.004133d0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x2c]
test edx, edx
jne 0x4088dd
mov edx, esi
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x4088e9
mov ecx, esi
mov eax, dword [eax + 4]
test eax, eax
jne 0x4088f2
mov eax, esi
push edx
push ebx
lea edx, [ebp - 0x19c]
push edx
push esi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x20]
call fcn.0041341e
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.0041341e
push ebx
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x2a4]
push eax
call fcn.0041ba87
add esp, 0xc
push edi
lea ecx, [ebp - 0x20]
call fcn.004133d0
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 9
push 0x3006
lea ecx, [ebp - 0x40]
call fcn.004133d0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x2c]
test edx, edx
jne 0x40895d
mov edx, esi
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x408969
mov ecx, esi
mov eax, dword [eax + 4]
test eax, eax
jne 0x408972
mov eax, esi
push edx
lea edx, [ebp - 0x2a4]
push edx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x40]
call fcn.0041341e
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.0041341e
push edi
lea ecx, [ebp - 0x20]
call fcn.004133d0
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0xb
push 0x3007
lea ecx, [ebp - 0x40]
call fcn.004133d0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x2c]
test edx, edx
jne 0x4089c4
mov edx, esi
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x4089d0
mov ecx, esi
mov eax, dword [eax + 4]
test eax, eax
jne 0x4089d9
mov eax, esi
push edx
push ebx
lea edx, [ebp - 0x19c]
push edx
push esi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x40]
call fcn.0041341e
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.0041341e
push ebx
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x2a4]
push eax
call fcn.0041ba87
add esp, 0xc
push edi
lea ecx, [ebp - 0x20]
call fcn.004133d0
mov edi, eax
mov byte [ebp - 4], 0xd
push 0x3007
lea ecx, [ebp - 0x40]
call fcn.004133d0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jne 0x408a43
mov ecx, esi
mov edi, dword [edi + 4]
test edi, edi
jne 0x408a4c
mov edi, esi
mov eax, dword [eax + 4]
test eax, eax
jne 0x408a55
mov eax, esi
push ecx
lea ecx, [ebp - 0x2a4]
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x40]
call fcn.0041341e
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.0041341e
push 0x3026
lea ecx, [ebp - 0x20]
call fcn.004133d0
mov edi, eax
mov byte [ebp - 4], 0xf
push 0x3027
lea ecx, [ebp - 0x40]
call fcn.004133d0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jne 0x408aaa
mov ecx, esi
mov edi, dword [edi + 4]
test edi, edi
jne 0x408ab3
mov edi, esi
mov eax, dword [eax + 4]
test eax, eax
jne 0x408abc
mov eax, esi
push ecx
push ebx
lea ecx, [ebp - 0x19c]
push ecx
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x40]
call fcn.0041341e
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.0041341e
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebp - 0x19c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x408b76
push ebx
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x2a4]
push eax
call fcn.0041ba87
add esp, 0xc
push 0x3026
lea ecx, [ebp - 0x20]
call fcn.004133d0
mov edi, eax
mov byte [ebp - 4], 0x11
push 0x3027
lea ecx, [ebp - 0x40]
call fcn.004133d0
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x2c]
test edx, edx
jne 0x408b3c
mov edx, esi
mov ecx, dword [edi + 4]
test ecx, ecx
jne 0x408b45
mov ecx, esi
mov eax, dword [eax + 4]
test eax, eax
je 0x408b4e
mov esi, eax
push edx
lea eax, [ebp - 0x2a4]
push eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x40]
call fcn.0041341e
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.0041341e
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x30]
call fcn.0041341e
xor eax, eax
mov cl, byte [ebp + eax - 0x3ac]
mov byte [eax + str.Unknown], cl
inc eax
test cl, cl
jne 0x408b84
mov esi, dword [ebp - 0x44]
jmp 0x408cae
push edi
lea ecx, [ebp - 0x20]
call fcn.004133d0
mov byte [ebp - 4], 3
push 0x42e128
lea eax, [ebp - 0x20]
push 0x1003
push eax
call fcn.00413429
mov ebx, dword [ebp - 0x70]
add esp, 0xc
cmp ebx, edi
jne 0x408be5
mov ebx, esi
jmp 0x408be5
push edi
push ebx
call fcn.0041c2eb
cmp eax, 0xffffffff
pop ecx
pop ecx
je 0x408bea
push ebx
call fcn.0041c5bd
pop ecx
lea ebx, [ebx + eax + 1]
cmp byte [ebx], 0
jne 0x408bcc
cmp ebx, edi
je 0x408c66
and byte [ebp - 0x19c], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x19b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
stosb byte es:[edi], al
lea eax, [ebp - 0x19c]
push ebx
push eax
call fcn.0041ba87
add esp, 0xc
xor edi, edi
push edi
lea ecx, [ebp - 0x30]
call fcn.004133d0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x30]
push 0x1052
push eax
call fcn.00413429
mov eax, dword [ebp - 0x1c]
add esp, 0xc
cmp eax, edi
jne 0x408c4a
mov eax, esi
cmp dword [ebp - 0x2c], edi
je 0x408c52
mov esi, dword [ebp - 0x2c]
push 0x10
push eax
push esi
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x30]
jmp 0x408c9b
push 0x106f
lea ecx, [ebp - 0x40]
call fcn.004133d0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x1c]
cmp ecx, edi
jne 0x408c80
mov ecx, esi
mov eax, dword [eax + 4]
cmp eax, edi
je 0x408c89
mov esi, eax
push 0x10
push ecx
push esi
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x40]
call fcn.0041341e
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call fcn.0041341e
xor esi, esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x84]
call fcn.0041341e
and byte [ebp - 4], 0
lea ecx, [ebp - 0x74]
call fcn.0041341e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.0041341e
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret