Function at 0x4067a0
Capabilities:
Get memory capacity
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x1a4
mov edx, ecx
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov eax, dword [edx + 0x134]
cmp eax, 1
jle 0x4067f9
mov edi, dword [edx + 0x138]
mov ecx, 1
mov dword [esp + 0x180], ebx
xor ebx, ebx
mov dword [esp + 4], edx
mov esi, dword [edi + ecx*4]
cmp byte [esi], 0x2d
je 0x406c24
inc ecx
cmp ecx, eax
jl 0x4067da
mov ebx, dword [esp + 0x180]
mov edx, dword [esp + 4]
mov esi, dword [ebp + 8]
lea eax, [edx + 0x150]
add edx, 0x140
push eax
push 0x104
lea ecx, [esp + 8]
push ecx
push 0
push esi
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, eax
test ecx, ecx
lea eax, [esp]
mov dword [eax + 0x128], 0x40
lea edx, [esp + 0x128]
cmove eax, dword [ebp + 0x14]
mov dword [edx + 0x54], eax
push edx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x406882
mov eax, dword [esp + 0x138]
mov dword [esp + 0x124], eax
sub eax, dword [esp + 0x158]
mov edx, dword [esp + 0x13c]
mov ecx, edx
sbb ecx, dword [esp + 0x15c]
jb 0x4068b7
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x124], eax
jmp 0x4068b7
mov dword [esp + 0x104], 0x20
lea eax, [esp + 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x120]
cmp eax, edx
cmovb edx, eax
mov dword [esp + 0x124], edx
xor edx, edx
mov ecx, dword [esp + 0x17c]
xor eax, eax
mov dword [esp + 0x170], eax
cmp byte [ecx], 0
je 0x406b4e
mov esi, ecx
xor ecx, ecx
movsx esi, byte [esi]
test esi, esi
je 0x406bfc
mov dword [esp + 0x180], ebx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x188], eax
mov dword [esp + 0x184], edx
mov dword [esp + 0x18c], 0
mov eax, 1
mov ecx, dword [esp + 0x18c]
mov ebx, dword [esp + 0x190]
mov edi, dword [esp + 0x17c]
lea edx, [esi - 0x30]
cmp edx, 9
jbe 0x406937
inc ebx
cmp esi, 0x2d
cmove ecx, eax
movsx esi, byte [ebx + edi]
test esi, esi
jne 0x406920
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x190], ebx
test esi, esi
je 0x406b39
mov esi, dword [esp + 0x190]
mov edx, dword [esp + 0x17c]
lea eax, [esi + 1]
mov dword [esp + 0x178], eax
movsx esi, byte [eax + edx]
lea ecx, [esi - 0x30]
cmp ecx, 9
ja 0x40698e
mov edx, eax
mov ecx, dword [esp + 0x17c]
inc edx
movsx esi, byte [edx + ecx]
lea eax, [esi - 0x30]
cmp eax, 9
jbe 0x40697a
mov dword [esp + 0x178], edx
mov eax, dword [esp + 0x190]
cmp eax, dword [esp + 0x178]
jae 0x406a89
xor ecx, ecx
neg eax
xor edi, edi
add eax, dword [esp + 0x178]
mov dword [esp + 0x174], eax
shr eax, 1
test eax, eax
jbe 0x406b2f
mov edx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x190]
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], esi
mov dword [esp + 0x194], eax
add ebx, edx
mov esi, dword [esp + 0x168]
push edi
push ecx
push 0
push 0xa
call fcn.0040ac20
mov edi, eax
mov ecx, edx
movsx eax, byte [ebx + esi*2]
add edi, eax
cdq
adc ecx, edx
add edi, 0xffffffd0
adc ecx, 0xffffffff
push ecx
push edi
push 0
push 0xa
call fcn.0040ac20
mov ecx, eax
mov edi, edx
movsx eax, byte [ebx + esi*2 + 1]
add ecx, eax
cdq
adc edi, edx
add ecx, 0xffffffd0
adc edi, 0xffffffff
inc esi
cmp esi, dword [esp + 0x194]
jb 0x4069f0
mov dword [esp + 0x168], esi
mov eax, esi
mov esi, dword [esp + 0x16c]
lea ebx, [eax + eax + 1]
lea eax, [ebx - 1]
cmp eax, dword [esp + 0x174]
jae 0x406a8d
push edi
push ecx
push 0
push 0xa
call fcn.0040ac20
mov edi, edx
mov ecx, eax
mov edx, dword [esp + 0x17c]
lea ebx, [edx + ebx - 1]
mov edx, dword [esp + 0x190]
movsx eax, byte [ebx + edx]
add ecx, eax
cdq
adc edi, edx
add ecx, 0xffffffd0
adc edi, 0xffffffff
jmp 0x406a8d
xor ecx, ecx
xor edi, edi
cmp esi, 0x25
je 0x406bb7
cmp esi, 0x70
je 0x406bb7
cmp esi, 0x4b
je 0x406ba5
cmp esi, 0x6b
je 0x406ba5
cmp esi, 0x4d
je 0x406ad4
cmp esi, 0x6d
je 0x406ad4
cmp esi, 0x47
je 0x406ac5
cmp esi, 0x67
jne 0x406ae1
mov eax, ecx
shr eax, 2
shl edi, 0x1e
shl ecx, 0x1e
or edi, eax
jmp 0x406ae1
mov eax, ecx
shr eax, 0xc
shl edi, 0x14
shl ecx, 0x14
or edi, eax
xor eax, eax
xor edx, edx
sub edx, ecx
sbb eax, edi
cmp dword [esp + 0x18c], 0
cmovne ecx, edx
cmovne edi, eax
add dword [esp + 0x188], ecx
adc dword [esp + 0x170], edi
test esi, esi
je 0x406b39
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x17c]
lea edx, [eax + 1]
mov dword [esp + 0x190], edx
movsx esi, byte [edx + ecx]
test esi, esi
jne 0x4068fb
jmp 0x406b39
mov ebx, 1
jmp 0x406a4b
mov ebx, dword [esp + 0x180]
mov eax, dword [esp + 0x188]
mov edx, dword [esp + 0x184]
mov esi, eax
mov edi, dword [ebp + 0xc]
sub esi, edi
mov ecx, dword [esp + 0x170]
sbb ecx, ebx
jl 0x406b6d
or esi, ecx
je 0x406b6d
mov ebx, dword [esp + 0x170]
jmp 0x406b6f
mov eax, edi
mov ecx, eax
mov esi, ebx
sub ecx, dword [esp + 0x124]
sbb esi, edx
jge 0x406b8f
mov edx, ebx
add esp, 0x1a4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esp + 0x124]
add esp, 0x1a4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, ecx
shr eax, 0x16
shl edi, 0xa
shl ecx, 0xa
or edi, eax
jmp 0x406ae1
mov edx, 0x64
mov eax, ecx
xor ebx, ebx
sub eax, edx
mov edx, edi
sbb edx, ebx
jb 0x406bd3
or eax, edx
je 0x406bd3
mov ecx, 0x64
xor edi, edi
push edi
push ecx
push dword [esp + 0x18c]
push dword [esp + 0x130]
call fcn.0040ac20
push 0
push 0x64
push edx
push eax
call fcn.0040ac60
mov ecx, eax
mov edi, edx
jmp 0x406ae1
mov dword [esp + 0x180], ebx
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], ecx
mov dword [esp + 0x188], eax
mov dword [esp + 0x184], edx
jmp 0x406945
mov dword [esp], eax
mov edx, ebx
mov ebx, dword [ebp + 8]
movsx eax, byte [edx + ebx]
inc edx
test eax, eax
je 0x406c44
cmp al, byte [edx + esi]
je 0x406c2c
mov eax, dword [esp]
xor ebx, ebx
jmp 0x4067e6
mov ebx, dword [esp + 0x180]
cmp byte [edx + esi], 0x3d
jne 0x406c58
inc edx
cmp byte [edx + esi], 0x3d
je 0x406c51
add edx, esi
xor ecx, ecx
movsx eax, byte [edx]
test eax, eax
je 0x406c6f
mov byte [esp + ecx], al
inc ecx
movsx eax, byte [ecx + edx]
test eax, eax
jne 0x406c63
mov byte [esp + ecx], 0
jmp 0x40681c