Function at 0x43dcc0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ffcb6
mov eax, dword fs:[0]
push eax
sub esp, 0x548
mov eax, dword [0x5732cc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x544], esi
mov dword [ebp - 0x548], ecx
mov dword [ebp - 0x54c], eax
mov dword [ebp - 4], 0
call fcn.0042d080
mov eax, dword [esi + 4]
mov ecx, dword [esi]
cmp ecx, eax
je 0x43dd63
mov edx, dword [ebp - 0x554]
push edx
push ecx
push eax
push eax
call fcn.00432150
mov ebx, eax
mov eax, esi
mov edi, dword [eax + 4]
add esp, 0x10
mov esi, ebx
cmp ebx, edi
je 0x43dd5a
lea ecx, [ecx]
mov eax, dword [ebp - 0x544]
add eax, 0xc
push esi
push eax
call fcn.004223a0
add esi, 4
add esp, 8
cmp esi, edi
jne 0x43dd40
mov ecx, dword [ebp - 0x544]
mov dword [ecx + 4], ebx
push 0x5c
lea ecx, [ebp + 8]
call fcn.004315c0
mov edx, dword [ebp + 8]
cmp dword [edx - 8], 0
jne 0x43ddaf
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
lea ecx, [eax - 0xc]
cmp ecx, dword [0x570020]
je 0x43dda8
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43dda8
mov edx, dword [ebp + 8]
add edx, 0xfffffff4
push edx
call fcn.004db910
add esp, 4
xor al, al
jmp 0x43e7d4
mov esi, dword [0x570024]
mov dword [ebp - 0x520], esi
mov byte [ebp - 4], 1
mov eax, dword [ebp + 8]
push 0x5c
push eax
call fcn.004dceed
add esp, 8
test eax, eax
je 0x43ddd8
sub eax, dword [ebp + 8]
test eax, eax
jg 0x43de35
mov byte [ebp - 4], 0
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [esi - 0xc]
cmp ecx, dword [0x570020]
je 0x43de00
add esi, 0xfffffff4
push esi
call edi
test eax, eax
jg 0x43de00
push esi
call fcn.004db910
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
lea edx, [eax - 0xc]
cmp edx, dword [0x570020]
je 0x43dda8
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x43dda8
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call fcn.004db910
add esp, 4
xor al, al
jmp 0x43e7d4
push eax
lea ecx, [ebp - 0x528]
push ecx
lea ecx, [ebp + 8]
call fcn.0042a6e0
mov byte [ebp - 4], 2
push str.profiles.ini
push eax
lea edx, [ebp - 0x530]
push edx
call fcn.004223e0
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x520]
call fcn.0041e3d0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x530]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [eax - 0xc]
cmp ecx, dword [0x570020]
je 0x43dea2
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x43dea2
mov eax, dword [ebp - 0x530]
add eax, 0xfffffff4
push eax
call fcn.004db910
add esp, 4
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x528]
lea edx, [eax - 0xc]
cmp edx, dword [0x570020]
je 0x43ded3
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x43ded3
mov eax, dword [ebp - 0x528]
add eax, 0xfffffff4
push eax
call fcn.004db910
add esp, 4
mov eax, dword [ebp - 0x520]
mov eax, dword [eax - 8]
push eax
lea ecx, [ebp - 0x520]
call fcn.00417430
push eax
push 0x104
lea ecx, [ebp - 0x514]
push ecx
xor ebx, ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x540], ebx
mov dword [ebp - 0x53c], ebx
mov dword [ebp - 0x538], ebx
mov byte [ebp - 4], 4
lea edi, [ebp - 0x514]
lea esp, [esp]
cmp byte [edi], 0
je 0x43e0e9
mov edx, dword [0x570024]
mov eax, edi
shr eax, 0x10
mov dword [ebp - 0x518], edx
test eax, eax
jne 0x43df4f
movzx eax, di
push eax
lea ecx, [ebp - 0x518]
call fcn.004199f0
jmp 0x43df7d
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x43df7d
push esi
lea ecx, [ebp - 0x518]
call fcn.00416670
test eax, eax
je 0x43df7d
mov ecx, dword [ebp - 0x518]
push esi
push edi
push ecx
call fcn.004dbbf0
add esp, 0xc
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x518]
cmp edx, eax
jae 0x43e01e
mov ecx, edx
mov edx, dword [ebp - 0x540]
cmp edx, ecx
ja 0x43e01e
mov esi, ecx
sub esi, edx
sar esi, 2
cmp eax, ebx
jne 0x43dff5
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x43e172
mov ecx, ebx
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x43dff5
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x43dfdb
xor ecx, ecx
jmp 0x43dfdd
add ecx, edx
cmp ecx, eax
jae 0x43dfe3
mov ecx, eax
push ecx
lea ecx, [ebp - 0x540]
call fcn.0043a960
mov ebx, dword [ebp - 0x538]
mov edx, dword [ebp - 0x540]
mov ecx, dword [ebp - 0x53c]
lea eax, [edx + esi*4]
push eax
push ecx
lea edx, [ebp - 0x534]
push edx
call fcn.00437460
add esp, 0xc
add dword [ebp - 0x53c], 4
jmp 0x43e09d
cmp eax, ebx
jne 0x43e077
mov eax, dword [ebp - 0x53c]
mov edx, dword [ebp - 0x540]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x43e172
mov ecx, ebx
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x43e077
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x43e05d
xor ecx, ecx
jmp 0x43e05f
add ecx, edx
cmp ecx, eax
jae 0x43e065
mov ecx, eax
push ecx
lea ecx, [ebp - 0x540]
call fcn.0043a960
mov ebx, dword [ebp - 0x538]
mov esi, dword [ebp - 0x53c]
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x534]
push esi
push ecx
call fcn.00437460
add esp, 0xc
add esi, 4
mov dword [ebp - 0x53c], esi
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x518]
add edx, 0xfffffff4
cmp edx, dword [0x570020]
je 0x43e0cf
mov esi, dword [ebp - 0x518]
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43e0cf
push esi
call fcn.004db910
add esp, 4
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e0d4
sub eax, edx
lea edi, [edi + eax + 1]
test edi, edi
jne 0x43df20
mov eax, dword [0x570024]
mov dword [ebp - 0x518], eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x53c]
sub eax, dword [ebp - 0x540]
mov byte [ebp - 0x519], 0
sar eax, 2
mov dword [ebp - 0x524], 0
mov dword [ebp - 0x530], eax
test eax, eax
je 0x43e6c9
jmp 0x43e130
mov eax, dword [ebp - 0x518]
cmp dword [eax - 8], 0
je 0x43e198
cmp dword [eax - 0xc], 0
lea esi, [eax - 0xc]
jl 0x43e17c
add eax, 0xfffffff4
cmp eax, dword [0x570020]
je 0x43e198
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43e164
push esi
call fcn.004db910
add esp, 4
mov ecx, dword [0x570024]
mov dword [ebp - 0x518], ecx
jmp 0x43e198
push str.vector_T__too_long
call fcn.004da90e
push 0x5422ee
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0x5422ee
push eax
lea ecx, [ebp - 0x518]
call fcn.00418100
push 0x3ff
lea edx, [ebp - 0x40f]
push 0
push edx
mov byte [ebp - 0x410], 0
call fcn.004dba80
mov eax, dword [ebp - 0x520]
mov eax, dword [eax - 8]
mov ebx, dword [ebp - 0x540]
mov edi, dword [ebp - 0x524]
mov esi, dword [ebx + edi*4]
add esp, 0xc
push eax
lea ecx, [ebp - 0x520]
call fcn.00417430
push eax
push 0x104
lea ecx, [ebp - 0x410]
push ecx
push 0
push str.IsRelative
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x51428c
lea eax, [ebp - 0x410]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43e220
test dl, dl
je 0x43e21c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43e220
add eax, 2
add ecx, 2
test dl, dl
jne 0x43e200
xor eax, eax
jmp 0x43e225
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
mov byte [ebp - 0x410], 0
test al, al
je 0x43e490
mov edx, dword [ebp - 0x54c]
mov eax, dword [ebp - 0x520]
mov ecx, dword [ebp - 0x524]
mov byte [edx], 1
mov eax, dword [eax - 8]
mov esi, dword [ebx + ecx*4]
push eax
lea ecx, [ebp - 0x520]
call fcn.00417430
push eax
push 0x104
lea edx, [ebp - 0x410]
push edx
push 0
push str.Path
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [0x570024]
lea eax, [ebp - 0x410]
shr eax, 0x10
mov dword [ebp - 0x52c], edi
test eax, eax
jne 0x43e2ec
lea ecx, [ebp - 0x410]
movzx eax, cx
push eax
lea ecx, [ebp - 0x52c]
call fcn.004199f0
mov edi, dword [ebp - 0x52c]
mov byte [ebp - 4], 7
cmp dword [edi - 8], 0
jl 0x43e2d1
push 0x517434
push edi
call fcn.004dd02e
add esp, 8
test eax, eax
je 0x43e2d1
sub eax, edi
test eax, eax
jg 0x43e328
mov byte [ebp - 4], 6
lea ecx, [edi - 0xc]
cmp ecx, dword [0x570020]
je 0x43e6b0
lea esi, [edi - 0xc]
jmp 0x43e69c
lea edx, [ebp - 0x410]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x43e2af
push esi
lea ecx, [ebp - 0x52c]
call fcn.00416670
test eax, eax
je 0x43e2a9
mov edi, dword [ebp - 0x52c]
push esi
lea eax, [ebp - 0x410]
push eax
push edi
call fcn.004dbbf0
add esp, 0xc
jmp 0x43e2af
inc eax
push eax
lea edx, [ebp - 0x550]
push edx
lea ecx, [ebp - 0x52c]
call fcn.004321f0
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x518]
call fcn.0041e3d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x550]
lea ecx, [eax - 0xc]
cmp ecx, dword [0x570020]
je 0x43e381
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43e381
mov eax, dword [ebp - 0x550]
add eax, 0xfffffff4
push eax
call fcn.004db910
add esp, 4
push str.Profiles_
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push str.Profiles_
push eax
lea ecx, [ebp + 8]
call fcn.0041ce60
mov eax, dword [ebp - 0x518]
mov edx, dword [eax - 8]
push eax
push edx
lea ecx, [ebp + 8]
call fcn.0041ce60
mov ecx, dword [ebp - 0x544]
lea eax, [ebp + 8]
push eax
call fcn.0043b160
cmp byte [ebp - 0x519], 0
mov byte [ebp - 0x410], 0
jne 0x43e475
mov ecx, dword [ebp - 0x520]
mov eax, dword [ecx - 8]
mov edx, dword [ebp - 0x524]
mov esi, dword [ebx + edx*4]
push eax
lea ecx, [ebp - 0x520]
call fcn.00417430
push eax
push 0x104
lea eax, [ebp - 0x410]
push eax
push 0
push str.Default
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x51428c
lea eax, [ebp - 0x410]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43e434
test dl, dl
je 0x43e430
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43e434
add eax, 2
add ecx, 2
test dl, dl
jne 0x43e414
xor eax, eax
jmp 0x43e439
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43e475
lea ecx, [ebp - 0x518]
push ecx
lea ecx, [ebp - 0x554]
call fcn.0041ea10
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x548]
push eax
call fcn.0041e3d0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x554]
call fcn.00416630
mov byte [ebp - 0x519], 1
mov byte [ebp - 4], 6
lea edx, [edi - 0xc]
cmp edx, dword [0x570020]
je 0x43e6b0
lea esi, [edi - 0xc]
jmp 0x43e69c
mov eax, dword [ebx + edi*4]
mov ecx, str.General
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43e4b8
test dl, dl
je 0x43e4b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43e4b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x43e498
xor eax, eax
jmp 0x43e4bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x43e6b0
mov eax, dword [ebp - 0x54c]
mov ecx, dword [ebp - 0x520]
mov edx, dword [ebp - 0x524]
mov byte [eax], 0
mov byte [ebp - 0x410], 0
mov eax, dword [ecx - 8]
mov esi, dword [ebx + edx*4]
push eax
lea ecx, [ebp - 0x520]
call fcn.00417430
push eax
push 0x104
lea eax, [ebp - 0x410]
push eax
push 0
push str.Path
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x410]
push ecx
call edi
lea edx, [ebp - 0x410]
push edx
push eax
lea ecx, [ebp - 0x518]
call fcn.00418100
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x528]
mov byte [ebp - 0x410], 0
call fcn.0041ea10
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x520]
mov eax, dword [ecx - 8]
mov edx, dword [ebp - 0x524]
mov esi, dword [ebx + edx*4]
push eax
lea ecx, [ebp - 0x520]
call fcn.00417430
push eax
push 0x104
lea eax, [ebp - 0x410]
push eax
push 0
push 0x517598
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x514670
call edi
push 0x514670
push eax
lea ecx, [ebp - 0x528]
call fcn.0041ce60
lea ecx, [ebp - 0x410]
push ecx
call edi
lea edx, [ebp - 0x410]
push edx
push eax
lea ecx, [ebp - 0x528]
call fcn.0041ce60
mov ecx, dword [ebp - 0x544]
lea eax, [ebp - 0x528]
push eax
call fcn.0043b160
cmp byte [ebp - 0x519], 0
mov byte [ebp - 0x410], 0
jne 0x43e666
mov ecx, dword [ebp - 0x520]
mov eax, dword [ecx - 8]
mov edx, dword [ebp - 0x524]
mov esi, dword [ebx + edx*4]
push eax
lea ecx, [ebp - 0x520]
call fcn.00417430
push eax
push 0x104
lea eax, [ebp - 0x410]
push eax
push 0
push str.Default
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x51428c
lea eax, [ebp - 0x410]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43e644
test dl, dl
je 0x43e640
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43e644
add eax, 2
add ecx, 2
test dl, dl
jne 0x43e624
xor eax, eax
jmp 0x43e649
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43e666
lea ecx, [ebp - 0x518]
push ecx
mov ecx, dword [ebp - 0x548]
call fcn.0041e3d0
mov byte [ebp - 0x519], 1
mov edx, dword [ebp - 0x530]
dec edx
cmp edx, 1
jne 0x43e684
mov ecx, dword [ebp - 0x548]
lea eax, [ebp - 0x518]
push eax
call fcn.0041e3d0
mov byte [ebp - 4], 6
mov esi, dword [ebp - 0x528]
lea ecx, [esi - 0xc]
cmp ecx, dword [0x570020]
je 0x43e6b0
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43e6b0
push esi
call fcn.004db910
add esp, 4
mov eax, dword [ebp - 0x524]
inc eax
mov dword [ebp - 0x524], eax
cmp eax, dword [ebp - 0x530]
jb 0x43e130
mov edx, dword [ebp - 0x54c]
cmp byte [edx], 0
je 0x43e6f2
mov eax, dword [ebp - 0x530]
dec eax
cmp eax, 1
jne 0x43e6f2
lea ecx, [ebp - 0x518]
push ecx
mov ecx, dword [ebp - 0x548]
call fcn.0041e3d0
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x518]
lea edx, [esi - 0xc]
cmp edx, dword [0x570020]
je 0x43e71e
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43e71e
push esi
call fcn.004db910
add esp, 4
mov byte [ebp - 4], 1
mov ebx, dword [ebp - 0x540]
xor eax, eax
cmp ebx, eax
je 0x43e762
mov edi, dword [ebp - 0x53c]
mov esi, ebx
cmp ebx, edi
je 0x43e757
lea ebx, [ebx]
lea eax, [ebp - 0x534]
push esi
push eax
call fcn.004223a0
add esi, 4
add esp, 8
cmp esi, edi
jne 0x43e740
push ebx
call fcn.004db440
add esp, 4
xor eax, eax
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x53c], eax
mov dword [ebp - 0x538], eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x520]
lea ecx, [eax - 0xc]
cmp ecx, dword [0x570020]
je 0x43e7a0
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43e7a0
push esi
call fcn.004db910
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
lea edx, [eax - 0xc]
cmp edx, dword [0x570020]
je 0x43e7d2
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x43e7d2
mov eax, dword [ebp + 8]
add eax, 0xfffffff4
push eax
call fcn.004db910
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004db901
mov esp, ebp
pop ebp
ret