Function at 0x4104e0
Capabilities:
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x541826
mov eax, dword fs:[0]
push eax
sub esp, 0xc0c
mov eax, dword [0x595790]
xor eax, esp
mov dword [esp + 0xc08], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x595790]
xor eax, esp
push eax
lea eax, [esp + 0xc20]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xc34]
mov eax, dword [esp + 0xc30]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebp
push 0
mov ebx, ecx
push 0x56fe30
push ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x2c], ebx
call esi
push ebp
push 1
push str.Type
push ebx
mov edi, eax
call esi
push ebp
push 0
push str.Format
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, dword [esp + 0x1c]
push ebp
push 0x1f4
lea ecx, [esp + 0x834]
push ecx
push 0x56ecfc
push str.Command
push edx
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esi - 1]
cmp eax, 7
ja case.default.0x410597
jmp dword [eax*4 + 0x4115cc]
push 0x48
jmp 0x410658
push 0x70
call fcn.0041730a
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0xc28], 0
test eax, eax
je 0x4105d8
push eax
call fcn.00411610
mov dword [esp + 0xc28], 0xffffffff
jmp 0x410660
xor eax, eax
mov dword [esp + 0xc28], 0xffffffff
jmp 0x410660
push 0x58
jmp 0x410658
push 0x80
call fcn.0041730a
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0xc28], 1
test eax, eax
je 0x4105d8
push eax
call fcn.00411670
mov dword [esp + 0xc28], 0xffffffff
jmp 0x410660
push 0xa8
call fcn.0041730a
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0xc28], 2
test eax, eax
je 0x4105d8
push eax
call fcn.004116d0
mov dword [esp + 0xc28], 0xffffffff
jmp 0x410660
xor edi, edi
lea esi, [edi + 1]
push 0x38
call fcn.0041730a
add esp, 4
push 0x2a
mov dword [eax], edi
lea edi, [eax + 0xc]
push 0
push edi
mov dword [esp + 0x24], eax
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
call fcn.00518320
add esp, 0xc
push 0x14
lea eax, [esp + 0x830]
push eax
push edi
call fcn.00516fdb
lea eax, [esi - 2]
add esp, 0xc
cmp eax, 6
ja case.default.0x41069b
jmp dword [eax*4 + 0x4115ec]
mov edi, dword [esp + 0x1c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebp
push 0
push 0x56fe6c
push edi
call ebx
mov esi, dword [esp + 0x18]
push ebp
push 0x7fff
push 0x56fe74
push edi
mov dword [esi + 0x38], eax
call ebx
push ebp
push 0x7fff
push 0x56fe7c
push edi
mov dword [esi + 0x3c], eax
call ebx
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
jmp 0x411583
mov edi, dword [esp + 0x1c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebp
push 0
push 0x56fe6c
push edi
call ebx
mov esi, dword [esp + 0x18]
push ebp
push 0x1869f
push 0x56fe74
push edi
mov dword [esi + 0x38], eax
call ebx
push ebp
push 0x1869f
push 0x56fe7c
push edi
mov dword [esi + 0x3c], eax
call ebx
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
jmp 0x411583
push 0
lea ecx, [esp + 0x440]
push 0x56f850
push ecx
mov dword [esp + 0x30], 0
call fcn.00516767
add esp, 0xc
lea edx, [esp + 0x4c]
push str.Text
push edx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov esi, eax
jmp 0x410770
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410770
lea edi, [esp + 0x4c]
sub eax, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410784
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0x1f4
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x834]
push eax
rep movsb byte es:[edi], byte [esi]
push 0x56ecfc
lea ecx, [esp + 0x5c]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x4c]
push str.Value
push edx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4107e0
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4107f6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
mov ecx, eax
push 0
lea eax, [esp + 0x54]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esp + 0x20], eax
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x410856
test dx, dx
je 0x410852
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x410856
add eax, 4
add ecx, 4
test dx, dx
jne 0x410830
xor eax, eax
jmp 0x41085b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x410a43
lea ecx, [esp + 0x82c]
push ecx
lea ecx, [esp + 0x40]
call fcn.00401700
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x3c]
lea edi, [esi + 0x38]
mov dword [esp + 0xc28], 3
call fcn.00404270
mov dword [esp + 0xc28], 0xffffffff
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4108ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x5c]
lea eax, [esi + 0x50]
test ecx, ecx
jne 0x4108c8
xor eax, eax
jmp 0x4108d0
mov eax, dword [eax + 0x14]
sub eax, ecx
sar eax, 2
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x60]
add edi, 0x50
mov edx, esi
sub edx, ecx
sar edx, 2
cmp edx, eax
jae 0x4108f3
mov eax, dword [esp + 0x20]
mov dword [esi], eax
add esi, 4
mov dword [edi + 0x10], esi
jmp 0x410911
cmp ecx, esi
jbe 0x4108fc
call fcn.00515f7c
mov eax, dword [edi]
push esi
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x40]
push edx
mov eax, edi
call fcn.00411f40
mov eax, dword [esp + 0x24]
inc eax
push eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x440]
push 0x56f850
push eax
call fcn.00516767
add esp, 0xc
lea ecx, [esp + 0x4c]
push str.Text
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov esi, eax
jmp 0x410950
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410950
lea edi, [esp + 0x4c]
sub eax, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410964
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0x1f4
lea edx, [esp + 0x834]
push edx
mov ecx, eax
push 0x56ecfc
lea eax, [esp + 0x5c]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [esp + 0x4c]
push str.Value
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4109c0
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4109d6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0
lea edx, [esp + 0x54]
mov ecx, eax
push edx
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esp + 0x20], eax
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x410a36
test dx, dx
je 0x410a32
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x410a36
add eax, 4
add ecx, 4
test dx, dx
jne 0x410a10
xor eax, eax
jmp 0x410a3b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410863
mov eax, dword [esp + 0x1c]
push ebp
push 0
push str.DefaultIndex
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], eax
jmp case.default.0x41069b
mov edi, dword [esp + 0x1c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebp
push 0
push 0x56fec0
push edi
call ebx
mov esi, dword [esp + 0x18]
push ebp
push 1
push 0x56fec8
push edi
mov dword [esi + 0x38], eax
call ebx
push ebp
push 0x1f4
lea ecx, [esp + 0x834]
push ecx
push 0x56fec0
push str.DefaultSwitch
push edi
mov dword [esi + 0x3c], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, 0x56fec0
lea eax, [esp + 0x82c]
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x410ae6
test dx, dx
je 0x410ae2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x410ae6
add eax, 4
add ecx, 4
test dx, dx
jne 0x410ac0
xor eax, eax
jmp 0x410aeb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410afc
mov edx, eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x411583
mov dword [esi + 0x40], 1
mov edx, dword [esi + 0x40]
mov dword [esi + 0x44], edx
jmp 0x411583
mov edi, dword [esp + 0x1c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebp
push 0
push 0x56fe6c
push edi
call ebx
mov esi, dword [esp + 0x18]
push ebp
push 0x7fff
push 0x56fe74
push edi
mov dword [esi + 0x38], eax
call ebx
push ebp
push 0x7fff
push 0x56fe7c
push edi
mov dword [esi + 0x3c], eax
call ebx
push ebp
push 0
push str.Min2
push edi
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
call ebx
push ebp
push 0x7fff
push str.Max2
push edi
mov dword [esi + 0x48], eax
call ebx
push ebp
push 0x7fff
push str.Default2
push edi
mov dword [esi + 0x4c], eax
call ebx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], eax
jmp 0x411583
mov ebx, dword [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebp
push 0
push 0x56fe6c
push ebx
call edi
mov esi, dword [esp + 0x18]
push ebp
push 0x7fff
push 0x56fe74
push ebx
mov dword [esi + 0x38], eax
call edi
push ebp
push 0x7fff
push 0x56fe7c
push ebx
mov dword [esi + 0x3c], eax
call edi
push 0
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
lea eax, [esp + 0x440]
push 0x56f850
push eax
mov dword [esp + 0x30], 0
call fcn.00516767
add esp, 0xc
lea ecx, [esp + 0x4c]
push str.Text
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x410c02
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
jmp 0x410c20
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410c20
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0x1f4
lea edx, [esp + 0x834]
push edx
mov ecx, eax
push 0x56ecfc
lea eax, [esp + 0x5c]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [esp + 0x4c]
push str.Value
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x410c74
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
lea ebx, [ebx]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410c90
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0
lea edx, [esp + 0x54]
mov ecx, eax
push edx
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esp + 0x20], eax
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x410cf6
test dx, dx
je 0x410cf2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x410cf6
add eax, 4
add ecx, 4
test dx, dx
jne 0x410cd0
xor eax, eax
jmp 0x410cfb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x410ee3
lea eax, [esp + 0x82c]
push eax
lea ecx, [esp + 0x30]
call fcn.00401700
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x2c]
lea edi, [esi + 0x48]
mov dword [esp + 0xc28], 4
call fcn.00404270
mov dword [esp + 0xc28], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410d5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x6c]
lea eax, [esi + 0x60]
test ecx, ecx
jne 0x410d68
xor eax, eax
jmp 0x410d70
mov eax, dword [eax + 0x14]
sub eax, ecx
sar eax, 2
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x70]
add edi, 0x60
mov edx, esi
sub edx, ecx
sar edx, 2
cmp edx, eax
jae 0x410d93
mov eax, dword [esp + 0x20]
mov dword [esi], eax
add esi, 4
mov dword [edi + 0x10], esi
jmp 0x410db1
cmp ecx, esi
jbe 0x410d9c
call fcn.00515f7c
mov eax, dword [edi]
push esi
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x40]
push edx
mov eax, edi
call fcn.00411f40
mov eax, dword [esp + 0x24]
inc eax
push eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x440]
push 0x56f850
push eax
call fcn.00516767
add esp, 0xc
lea ecx, [esp + 0x4c]
push str.Text
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov esi, eax
jmp 0x410df0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410df0
lea edi, [esp + 0x4c]
sub eax, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410e04
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0x1f4
lea edx, [esp + 0x834]
push edx
mov ecx, eax
push 0x56ecfc
lea eax, [esp + 0x5c]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [esp + 0x4c]
push str.Value
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x410e60
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410e76
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0
lea edx, [esp + 0x54]
mov ecx, eax
push edx
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esp + 0x20], eax
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x410ed6
test dx, dx
je 0x410ed2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x410ed6
add eax, 4
add ecx, 4
test dx, dx
jne 0x410eb0
xor eax, eax
jmp 0x410edb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410d03
mov eax, dword [esp + 0x1c]
push ebp
push 0
push str.DefaultIndex
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x78], eax
mov dword [ecx + 0x7c], eax
jmp case.default.0x41069b
push 0
lea ecx, [esp + 0x440]
push 0x56f850
push ecx
mov dword [esp + 0x30], 0
call fcn.00516767
add esp, 0xc
lea edx, [esp + 0x4c]
push str.Text
push edx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov esi, eax
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410f40
lea edi, [esp + 0x4c]
sub eax, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410f54
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0x1f4
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x834]
push eax
rep movsb byte es:[edi], byte [esi]
push 0x56ecfc
lea ecx, [esp + 0x5c]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x4c]
push str.Value
push edx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x410fb0
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x410fc6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
mov ecx, eax
push 0
lea eax, [esp + 0x54]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esp + 0x20], eax
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x411026
test dx, dx
je 0x411022
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x411026
add eax, 4
add ecx, 4
test dx, dx
jne 0x411000
xor eax, eax
jmp 0x41102b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x411213
lea ecx, [esp + 0x82c]
push ecx
lea ecx, [esp + 0x34]
call fcn.00401700
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x30]
lea edi, [esi + 0x38]
mov dword [esp + 0xc28], 5
call fcn.00404270
mov dword [esp + 0xc28], 0xffffffff
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41108a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x5c]
lea eax, [esi + 0x50]
test ecx, ecx
jne 0x411098
xor eax, eax
jmp 0x4110a0
mov eax, dword [eax + 0x14]
sub eax, ecx
sar eax, 2
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x60]
add edi, 0x50
mov edx, esi
sub edx, ecx
sar edx, 2
cmp edx, eax
jae 0x4110c3
mov eax, dword [esp + 0x20]
mov dword [esi], eax
add esi, 4
mov dword [edi + 0x10], esi
jmp 0x4110e1
cmp ecx, esi
jbe 0x4110cc
call fcn.00515f7c
mov eax, dword [edi]
push esi
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x50]
push edx
mov eax, edi
call fcn.00411f40
mov eax, dword [esp + 0x24]
inc eax
push eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x440]
push 0x56f850
push eax
call fcn.00516767
add esp, 0xc
lea ecx, [esp + 0x4c]
push str.Text
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov esi, eax
jmp 0x411120
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x411120
lea edi, [esp + 0x4c]
sub eax, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x411134
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0x1f4
lea edx, [esp + 0x834]
push edx
mov ecx, eax
push 0x56ecfc
lea eax, [esp + 0x5c]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [esp + 0x4c]
push str.Value
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x411190
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4111a6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0
lea edx, [esp + 0x54]
mov ecx, eax
push edx
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esp + 0x20], eax
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x411206
test dx, dx
je 0x411202
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x411206
add eax, 4
add ecx, 4
test dx, dx
jne 0x4111e0
xor eax, eax
jmp 0x41120b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x411033
mov ebx, dword [esp + 0x1c]
push ebp
push 0
push str.DefaultIndex
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [esp + 0x18]
push 0
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], eax
lea eax, [esp + 0x440]
push 0x56f850
push eax
mov dword [esp + 0x30], 0
call fcn.00516767
add esp, 0xc
lea ecx, [esp + 0x4c]
push str.Text2_
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
lea ebx, [ebx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x411270
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x411286
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebp
push 0x1f4
lea edx, [esp + 0x834]
push edx
mov ecx, eax
push 0x56ecfc
lea eax, [esp + 0x5c]
push eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [esp + 0x4c]
push str.Value2_
push ecx
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
lea ebx, [ebx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4112e0
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4112f6
mov edx, dword [esp + 0x34]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
push 0
lea eax, [esp + 0x54]
rep movsb byte es:[edi], byte [esi]
push eax
mov ecx, ebx
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebp, eax
mov dword [esp + 0x20], ebp
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41135d
test dx, dx
je 0x411359
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41135d
add eax, 4
add ecx, 4
test dx, dx
jne 0x411337
xor eax, eax
jmp 0x411362
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x411554
lea ebx, [ebx]
lea edx, [esp + 0x82c]
push edx
lea ecx, [esp + 0x2c]
call fcn.00401700
mov esi, dword [esp + 0x18]
lea ebx, [esp + 0x28]
lea edi, [esi + 0x70]
mov dword [esp + 0xc28], 6
call fcn.00404270
mov dword [esp + 0xc28], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4113c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x94]
lea eax, [esi + 0x88]
test ecx, ecx
jne 0x4113db
xor eax, eax
jmp 0x4113e3
mov eax, dword [eax + 0x14]
sub eax, ecx
sar eax, 2
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x98]
add edi, 0x88
mov edx, esi
sub edx, ecx
sar edx, 2
cmp edx, eax
jae 0x411408
mov dword [esi], ebp
add esi, 4
mov dword [edi + 0x10], esi
jmp 0x411426
cmp ecx, esi
jbe 0x411411
call fcn.00515f7c
mov eax, dword [edi]
push esi
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x50]
push ecx
mov eax, edi
call fcn.00411f40
mov eax, dword [esp + 0x24]
inc eax
push eax
lea edx, [esp + 0x440]
push 0x56f850
push edx
mov dword [esp + 0x30], eax
call fcn.00516767
add esp, 0xc
lea eax, [esp + 0x4c]
push str.Text2_
push eax
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov esi, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x411460
lea edi, [esp + 0x4c]
sub eax, esi
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x411474
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebx
mov ecx, eax
and ecx, 3
push 0x1f4
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x834]
push ecx
push 0x56ecfc
lea edx, [esp + 0x5c]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esp + 0x4c]
push str.Value2_
push eax
call fcn.00516767
lea eax, [esp + 0x444]
add esp, 8
mov ecx, eax
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4114d0
lea edi, [esp + 0x4c]
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4114e6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
push 0
lea ecx, [esp + 0x54]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebp, eax
mov dword [esp + 0x20], ebp
mov ecx, 0x56ecfc
lea eax, [esp + 0x82c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x411547
test dx, dx
je 0x411543
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x411547
add eax, 4
add ecx, 4
test dx, dx
jne 0x411521
xor eax, eax
jmp 0x41154c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x411370
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
push edx
push 0
push str.DefaultIndex2_
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0xa0], eax
mov dword [ecx + 0xa4], eax
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
push edi
mov edi, dword [esp + 0x44]
lea ecx, [edi + 4]
call fcn.00431f58
mov dword [eax], esi
lea eax, [esi + 0xc]
push eax
lea ecx, [edi + 0x20]
call fcn.00431f58
mov dword [eax], esi
mov ecx, dword [esp + 0xc20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc08]
xor ecx, esp
call fcn.00515ce5
add esp, 0xc18
ret 8