Function at 0x5e2bb8
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffca8
mov eax, 0x69d2ab
xor edx, edx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x64], 0x6e4504
mov dword [ebp - 0x60], esp
mov dword [ebp - 0x68], eax
mov word [ebp - 0x5c], 0
mov dword [ebp - 0x50], edx
mov ecx, dword fs:[0]
mov dword [ebp - 0x6c], ecx
lea eax, [ebp - 0x6c]
mov dword fs:[0], eax
mov word [ebp - 0x5c], 8
xor edx, edx
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x18], ecx
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x70], 0x40
mov dword [ebp - 0x74], 1
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
cmp edx, ecx
jbe 0x5e2c2c
lea eax, [ebp - 0x74]
jmp 0x5e2c2f
lea eax, [ebp - 0x70]
mov edx, dword [eax]
mov dword [ebp - 0x20], edx
inc dword [ebp - 0x50]
mov word [ebp - 0x5c], 0x20
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x78], ecx
mov edi, dword [ebx + 4]
push edi
mov eax, dword [ebx + 8]
push eax
mov edx, dword [ebp - 0x78]
push edx
call fcn.004057f0
add esp, 0xc
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0x78]
sub eax, edi
test eax, eax
jns 0x5e2c6c
add eax, 0xf
sar eax, 4
shl eax, 4
sub dword [ebx + 8], eax
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp - 0x7c]
push ecx
push ebx
call fcn.0040445c
lea eax, [esi + 0x10]
add esp, 0xc
add esp, 0xfffffff0
lea edi, [esi + 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x144], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x140], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x13c], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x138], eax
mov eax, esi
mov edx, dword [eax]
mov dword [ebp - 0x154], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x150], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x14c], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 0x154]
mov dword [esp], edx
mov edx, dword [ebp - 0x150]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x14c]
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x148]
mov dword [esp + 0xc], eax
add esp, 0xfffffff0
mov eax, dword [edi]
mov dword [esp], eax
mov eax, dword [edi + 4]
mov dword [esp + 4], eax
mov edx, dword [edi + 8]
mov dword [esp + 8], edx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0xc], ecx
add esp, 0xfffffff0
mov eax, dword [ebp - 0x144]
mov dword [esp], eax
mov eax, dword [ebp - 0x140]
mov dword [esp + 4], eax
lea eax, [ebp - 0x164]
mov edx, dword [ebp - 0x13c]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x138]
mov dword [esp + 0xc], ecx
push esi
push eax
call fcn.005bb35c
add esp, 0x38
mov ecx, 4
push esi
push edi
lea edi, [esi + 0x10]
lea esi, [ebp - 0x164]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x170], eax
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x16c], edx
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x84], 1
push 0
call fcn.006a99d0
pop ecx
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x14]
push eax
push 0x6dc4d4
push 0x6dc4cf
lea edx, [ebp - 0x190]
push edx
call fcn.006a0ad0
add esp, 0x10
mov ecx, dword [ebp - 0x84]
push ecx
push 0x6dc4e0
push 0x6dc4db
lea eax, [ebp - 0x2d8]
push eax
call fcn.006a0ad0
mov edx, dword [ebp + 8]
add esp, 0x10
lea eax, [ebp - 0x2bc]
mov ecx, dword [edx + 0x30]
push ecx
push 0x12c
push eax
lea edx, [ebp - 0x2d8]
push 0x6dc4e5
push edx
lea ecx, [ebp - 0x190]
push ecx
call sub.KERNEL32.DLL_GetPrivateProfileStringA
mov al, byte [ebp - 0x2bc]
test al, al
je 0x5e342c
mov byte [ebp - 0x89], 1
mov word [ebp - 0x5c], 0x20
push 0x7c
lea edx, [ebp - 0x2bc]
push edx
call fcn.0069cf19
add esp, 8
test eax, eax
je 0x5e30ec
mov byte [eax], 0
movsx ecx, byte [eax + 1]
cmp ecx, 0x30
jne 0x5e2e60
mov byte [ebp - 0x89], 0
movsx edx, byte [eax + 2]
cmp edx, 0x7c
jne 0x5e30ec
movsx ecx, byte [eax + 3]
cmp ecx, 0x30
je 0x5e30ec
add eax, 3
push eax
call fcn.006a51a0
pop ecx
test eax, eax
jle 0x5e30ec
mov edx, dword [ebp - 0x88]
cmp eax, edx
jg 0x5e30ec
mov word [ebp - 0x5c], 0x2c
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x2bc]
push ecx
lea eax, [ebp - 0x30]
push eax
call fcn.0069a6ec
add esp, 0xc
inc dword [ebp - 0x50]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
cmp edx, ecx
je 0x5e3013
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x98], eax
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x34], edx
test edx, edx
je 0x5e300d
mov word [ebp - 0x5c], 0x38
xor eax, eax
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x9c]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx - 0xc]
inc ecx
test ecx, ecx
jle 0x5e2f6a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xa0]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xa4], eax
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x2e0], ecx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 8]
add edx, 0xfffffff4
mov dword [ebp - 0xa8], edx
mov ecx, 0x6ff36c
mov eax, dword [ebp - 0xa8]
cmp ecx, eax
je 0x5e3007
mov edx, dword [ebp - 0xa8]
push edx
call sub.KERNEL32.DLL_InterlockedIncrement
jmp 0x5e3007
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx - 4]
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0xac]
push edx
mov ecx, dword [ebp - 0xac]
push ecx
mov eax, dword [ebp - 0x34]
push eax
call fcn.0069a874
add esp, 0xc
mov dword [ebp - 0xb4], eax
mov edx, dword [ebp - 0xb4]
add edx, 0xc
mov dword [ebp - 0xb0], edx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xb0]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0xb8], edx
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x2f0], eax
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0xbc], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0xc0], ecx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 8]
mov dword [ebp - 0xc4], edx
mov ecx, dword [ebp - 0xbc]
push ecx
mov eax, dword [ebp - 0xc0]
push eax
mov edx, dword [ebp - 0xc4]
push edx
call fcn.0069cc60
add esp, 0xc
mov word [ebp - 0x5c], 0x2c
add dword [ebp - 0x18], 0x10
jmp 0x5e3027
lea ecx, [ebp - 0x30]
push ecx
mov eax, dword [ebp - 0x18]
push eax
lea edx, [ebp - 0x20]
push edx
call fcn.004069b4
add esp, 0xc
dec dword [ebp - 0x50]
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x5e30df
mov eax, dword [ebp - 0x28]
mov edx, dword [eax - 0xc]
inc edx
test edx, edx
je 0x5e3091
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff4
mov dword [ebp - 0xc8], ecx
mov eax, 0x6ff36c
mov edx, dword [ebp - 0xc8]
cmp eax, edx
je 0x5e3088
mov ecx, 0x6ff36c
mov eax, dword [ebp - 0xc8]
cmp ecx, eax
je 0x5e3081
mov edx, dword [ebp - 0xc8]
push edx
call sub.KERNEL32.DLL_InterlockedDecrement
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx]
inc eax
jmp 0x5e308d
mov eax, 1
jmp 0x5e308d
mov eax, 1
test eax, eax
jne 0x5e30df
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff4
mov dword [ebp - 0xcc], edx
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff4
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0xd4], edx
lea eax, [ebp - 0x30]
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xd8], eax
mov edx, dword [ebp - 0xd8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x300], ecx
mov word [ebp - 0x5c], 0x20
mov byte [ebp - 0x2bc], 0
mov al, byte [ebp - 0x2bc]
test al, al
je 0x5e3421
mov word [ebp - 0x5c], 0x5c
lea edx, [ebp - 0xe0]
push edx
lea ecx, [ebp - 0x2bc]
push ecx
lea eax, [ebp - 0x44]
push eax
call fcn.0069a6ec
add esp, 0xc
inc dword [ebp - 0x50]
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 0x18]
cmp edx, ecx
je 0x5e325b
mov eax, dword [ebx + 8]
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x48], edx
test edx, edx
je 0x5e3255
mov word [ebp - 0x5c], 0x68
xor eax, eax
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xe8]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx - 0xc]
inc ecx
test ecx, ecx
jle 0x5e31ca
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xec], eax
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0xec]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x310], ecx
mov eax, dword [ebp - 0x48]
mov edx, dword [eax + 8]
add edx, 0xfffffff4
mov dword [ebp - 0xf4], edx
mov ecx, 0x6ff36c
mov eax, dword [ebp - 0xf4]
cmp ecx, eax
je 0x5e324f
mov edx, dword [ebp - 0xf4]
push edx
call sub.KERNEL32.DLL_InterlockedIncrement
jmp 0x5e324f
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ecx - 4]
push edi
push edi
mov eax, dword [ebp - 0x48]
push eax
call fcn.0069a874
add esp, 0xc
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0xfc]
add edx, 0xc
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xf8]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x100], edx
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x104], edi
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x108], edx
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x10c], eax
mov edx, dword [ebp - 0x104]
push edx
mov ecx, dword [ebp - 0x108]
push ecx
mov eax, dword [ebp - 0x10c]
push eax
call fcn.0069cc60
add esp, 0xc
mov word [ebp - 0x5c], 0x5c
add dword [ebx + 8], 0x10
jmp 0x5e326c
lea edx, [ebp - 0x44]
push edx
mov ecx, dword [ebx + 8]
push ecx
push ebx
call fcn.004069b4
add esp, 0xc
dec dword [ebp - 0x50]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x5e3304
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx - 0xc]
inc ecx
test ecx, ecx
je 0x5e32b6
mov edi, dword [ebp - 0x3c]
add edi, 0xfffffff4
cmp edi, 0x6ff36c
je 0x5e32ad
cmp edi, 0x6ff36c
je 0x5e32a6
push edi
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [edi]
inc eax
jmp 0x5e32b2
mov eax, 1
jmp 0x5e32b2
mov eax, 1
test eax, eax
jne 0x5e3304
mov edx, dword [ebp - 0x3c]
add edx, 0xfffffff4
mov dword [ebp - 0x110], edx
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff4
mov dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x114]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0x118], edx
lea eax, [ebp - 0x44]
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x11c], eax
mov edx, dword [ebp - 0x11c]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x330], ecx
mov word [ebp - 0x5c], 0x20
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x28]
cmp eax, edx
je 0x5e33f1
lea eax, [esi + 0x10]
mov cl, byte [ebp - 0x89]
mov byte [ebp - 0x11d], cl
mov edx, dword [eax]
mov dword [ebp - 0x348], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x344], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x340], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x33c], edx
mov ecx, dword [eax + 0xc]
inc dword [eax + 0xc]
cmp ecx, 0x1f
jne 0x5e335e
xor edx, edx
mov dword [eax + 0xc], edx
add dword [eax + 8], 4
mov eax, dword [ebp - 0x348]
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x344]
mov dword [ebp - 0x354], eax
mov ecx, dword [ebp - 0x340]
mov dword [ebp - 0x350], ecx
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x34c], eax
mov ecx, dword [ebp - 0x34c]
mov edx, 1
shl edx, cl
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x12c], ecx
mov al, byte [ebp - 0x11d]
test al, al
je 0x5e33df
mov edx, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
or dword [edx], ecx
jmp 0x5e3421
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x130]
not eax
and dword [edx], eax
jmp 0x5e3421
mov cl, byte [ebp - 0x89]
lea eax, [esi + 0x10]
push ecx
add esp, 0xfffffff0
mov edx, dword [eax]
mov dword [esp], edx
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
mov ecx, dword [eax + 8]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0xc], eax
push esi
call fcn.005bb47c
add esp, 0x18
inc dword [ebp - 0x84]
jmp 0x5e2dce
mov word [ebp - 0x5c], 0x20
xor ebx, ebx
jmp 0x5e344f
mov eax, ebx
mov ecx, dword [ebp + 0x14]
shl eax, 4
push ecx
add eax, edx
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.005d715c
add esp, 0xc
inc ebx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
sub eax, edx
test eax, eax
jns 0x5e345e
add eax, 0xf
sar eax, 4
cmp ebx, eax
jb 0x5e3436
dec dword [ebp - 0x50]
mov ecx, dword [ebp - 0x18]
push ecx
mov eax, dword [ebp - 0x1c]
push eax
lea edx, [ebp - 0x20]
push edx
call fcn.0040445c
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x134], ecx
mov eax, dword [ebp - 0x134]
push eax
call fcn.0067ac7c
pop ecx
mov word [ebp - 0x5c], 0x20
mov edx, dword [ebp - 0x6c]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret