Function at 0x4021d4
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x528
push ebx
push esi
lea eax, [ebp - 0x118]
push edi
xor ebx, ebx
push eax
mov byte [ebp - 0x118], bl
mov byte [ebp - 0x21c], bl
call fcn.00403eda
test eax, eax
jl 0x40222f
lea eax, [ebp - 0x118]
push 0x40129c
push eax
call fcn.00403529
lea eax, [ebp - 0x118]
push 0x401230
push eax
call fcn.00403529
lea eax, [ebp - 0x21c]
push eax
push dword [ebp + 8]
call fcn.0040403d
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, eax
cmp edi, ebx
jl 0x40235d
lea eax, [ebp - 4]
push eax
push 0x4017a0
push 0x15
push ebx
push 0x4017d0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
cmp edi, ebx
jl 0x402357
lea edx, [ebp + 8]
mov esi, 0x401860
push edx
mov eax, dword [ebp - 4]
sub esp, 0x10
mov dword [ebp + 8], ebx
mov edi, esp
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x10]
mov edi, eax
cmp edi, ebx
jne 0x40229b
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x40229b
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp byte [ebp - 0x118], bl
je 0x40234e
cmp byte [ebp - 0x21c], bl
je 0x40234e
lea eax, [ebp - 0x118]
mov esi, 0x104
push eax
lea eax, [ebp - 0x320]
push esi
push eax
push 0x40142c
lea eax, [ebp - 0x21c]
push 0x401258
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x320], bl
je 0x40234e
lea eax, [ebp - 0x528]
push esi
push eax
lea eax, [ebp - 0x320]
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x528]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov edi, eax
cmp edi, ebx
jl 0x40234e
lea edx, [ebp + 8]
lea esi, [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
sub esp, 0x10
mov dword [ebp + 8], ebx
mov edi, esp
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x10]
mov edi, eax
cmp edi, ebx
jne 0x40234e
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x40234e
mov ecx, dword [eax]
push eax
call dword [ecx + 0x28]
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp byte [ebp - 0x118], bl
je 0x402437
cmp byte [ebp - 0x21c], bl
je 0x402437
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x401238
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x40124c
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x401260
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x40128c
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x401264
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x401270
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x40127c
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
lea eax, [ebp - 0x21c]
push 0x401284
push eax
call esi
lea eax, [ebp - 0x118]
push eax
push ebx
push ebx
push ebx
call esi
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 4