Function at 0x40b390
Capabilities:
Read .ini file

Disassembly:
push ebx
push ebp
push edi
mov edi, ecx
push 0x436846
push edi
call fcn.0040b330
test al, al
mov ebp, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
je 0x40b415
mov eax, dword [edi]
mov edx, dword [eax - 4]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b3d6
push 0x104
mov ecx, edi
call fcn.004014b0
mov eax, dword [edi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437cd0
push 0x437cc4
call ebx
mov eax, dword [edi]
test eax, eax
je 0x40b403
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40b471
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x40b471
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
mov word [ecx + eax*2], 0
push esi
push 0x436846
lea esi, [edi + 4]
push esi
call fcn.0040b330
test al, al
je 0x40b4a2
mov eax, dword [esi]
mov ecx, dword [eax - 4]
sub eax, 0x10
mov eax, dword [eax + 8]
mov edx, 1
sub edx, ecx
sub eax, 0x104
or edx, eax
jge 0x40b44f
push 0x104
mov ecx, esi
call fcn.004014b0
mov ecx, dword [esi]
push ebp
push 0x104
push ecx
push 0x436670
push 0x437cac
push 0x437cc4
call ebx
mov eax, dword [esi]
test eax, eax
jne 0x40b47b
jmp 0x40b48c
push 0x80070057
call fcn.004011c0
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov word [edx + eax*2], 0
push 0x436846
lea ebx, [edi + 8]
push ebx
call fcn.0040b330
test al, al
je 0x40b527
mov eax, dword [ebx]
mov edx, dword [eax - 4]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b4dc
push 0x104
mov ecx, ebx
call fcn.004014b0
mov eax, dword [ebx]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c94
push 0x437cc4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebx]
test eax, eax
je 0x40b511
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [ebx]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [ebx]
mov word [ecx + eax*2], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [eax - 4]
lea esi, [edi + 0xc]
sub eax, 0x10
mov eax, dword [eax + 8]
mov edx, 1
sub edx, ecx
sub eax, 0x104
or edx, eax
jge 0x40b552
push 0x104
mov ecx, esi
call fcn.004014b0
mov ecx, dword [esi]
push ebp
push 0x104
push ecx
push 0x436670
push 0x437c88
push 0x437c74
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b587
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov word [edx + eax*2], 0
mov eax, dword [ebx]
push eax
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x10]
mov edx, dword [eax - 4]
lea esi, [edi + 0x10]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b5d8
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c44
push 0x437c74
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b60d
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x14]
mov edx, dword [eax - 4]
lea esi, [edi + 0x14]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b65e
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c30
push 0x437c74
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b693
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
push 0x437c28
mov word [ecx + eax*2], 0
push 0x437c20
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x18]
mov ecx, dword [eax - 4]
lea esi, [edi + 0x18]
sub eax, 0x10
mov eax, dword [eax + 8]
mov edx, 1
sub edx, ecx
sub eax, 0x104
or edx, eax
jge 0x40b6e5
push 0x104
mov ecx, esi
call fcn.004014b0
mov ecx, dword [esi]
push ebp
push 0x104
push ecx
push 0x436670
push 0x437c14
push 0x437c00
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b71a
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
mov word [edx + eax*2], 0
mov eax, dword [ebx]
push eax
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x1c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x1c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b76b
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437bf4
push 0x437c00
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b7a0
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x20]
mov edx, dword [eax - 4]
lea esi, [edi + 0x20]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b7f1
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c30
push 0x437c00
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b826
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
push 0x437c28
push 0x437c20
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x24]
mov edx, dword [eax - 4]
lea esi, [edi + 0x24]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b888
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437be0
push 0x437c00
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b8bd
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
push 0x437c28
push 0x437c20
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x28]
mov edx, dword [eax - 4]
lea esi, [edi + 0x28]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b91f
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c14
push 0x437bc8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b954
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x2c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x2c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40b9a5
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437bf4
push 0x437bc8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40b9da
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x30]
mov edx, dword [eax - 4]
lea esi, [edi + 0x30]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40ba2b
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c30
push 0x437bc8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40ba60
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
push 0x437c28
push 0x437c20
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x34]
mov edx, dword [eax - 4]
lea esi, [edi + 0x34]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40bac2
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437be0
push 0x437bc8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40baf7
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
push 0x437c28
mov word [ecx + eax*2], 0
push 0x437c20
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x38]
mov ecx, dword [eax - 4]
lea esi, [edi + 0x38]
sub eax, 0x10
mov eax, dword [eax + 8]
mov edx, 1
sub edx, ecx
sub eax, 0x104
or edx, eax
jge 0x40bb49
push 0x104
mov ecx, esi
call fcn.004014b0
mov ecx, dword [esi]
push ebp
push 0x104
push ecx
push 0x436670
push 0x437bb4
push 0x437bc8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bb7e
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov edx, dword [esi]
push 0x437c28
push 0x437c20
mov ecx, esi
mov word [edx + eax*2], 0
call fcn.0040b120
mov eax, dword [edi + 0x3c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x3c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40bbd1
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c14
push 0x437ba0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bc06
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x40]
mov edx, dword [eax - 4]
lea esi, [edi + 0x40]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40bc57
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437bf4
push 0x437ba0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bc8c
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x44]
mov edx, dword [eax - 4]
lea esi, [edi + 0x44]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40bcdd
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c30
push 0x437ba0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bd12
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
push 0x437c28
push 0x437c20
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x48]
mov edx, dword [eax - 4]
lea esi, [edi + 0x48]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40bd74
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437be0
push 0x437ba0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bda9
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
push 0x437c28
push 0x437c20
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x4c]
mov edx, dword [eax - 4]
lea esi, [edi + 0x4c]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40be0b
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c14
push 0x437b90
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40be40
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x50]
mov edx, dword [eax - 4]
lea esi, [edi + 0x50]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40be91
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437bf4
push 0x437b90
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bec6
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x54]
mov edx, dword [eax - 4]
lea esi, [edi + 0x54]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40bf17
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c88
push 0x437b7c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bf4c
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
mov eax, dword [edi + 0x58]
mov edx, dword [eax - 4]
lea esi, [edi + 0x58]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x104
or ecx, edx
jge 0x40bf9d
push 0x104
mov ecx, esi
call fcn.004014b0
mov eax, dword [esi]
push ebp
push 0x104
push eax
push 0x436670
push 0x437c44
push 0x437b7c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi]
test eax, eax
je 0x40bfce
push eax
call fcn.0041924a
add esp, 4
test eax, eax
jl 0x40c00c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x40c00c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov edx, dword [ebx]
push edx
push 0x437c54
mov ecx, esi
call fcn.0040b120
push 0x437c28
push 0x437c20
mov ecx, esi
call fcn.0040b120
pop esi
pop edi
pop ebp
mov eax, 1
pop ebx
ret 4
push 0x80070057
call fcn.004011c0
int3