Function at 0x40ce28
Capabilities:
Get memory capacity
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c8
mov eax, dword [0x485008]
xor eax, esp
mov dword [esp + 0x3c4], eax
push esi
xor esi, esi
inc esi
cmp dword [0x83eec8], 0
push edi
jne 0x40cea1
push 0x83cba8
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
call fcn.0040cd9f
mov ecx, dword [0x83e690]
test eax, eax
cmovne ecx, esi
mov dword [0x83e690], ecx
call fcn.0040ccf1
mov ecx, dword [0x83e688]
test eax, eax
mov eax, dword [0x83e5c0]
cmovne ecx, esi
mov dword [0x83eec8], esi
cmp dword [0x835274], 0
mov dword [0x83e688], ecx
cmovne eax, esi
mov dword [0x83e5c0], eax
call fcn.00449fee
sub eax, dword [0x83e68c]
and dword [esp + 0x1c], 0
cmp eax, 0x3e8
jle 0x40d080
call fcn.00449fee
mov dword [0x83e68c], eax
lea eax, [esp + 0x348]
push eax
mov dword [esp + 0x34c], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov eax, dword [esp + 0x350]
sub eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
sbb ecx, dword [esp + 0x35c]
shrd eax, ecx, 0x14
shr ecx, 0x14
push ecx
cmp eax, 0x400
jl 0x40cf29
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [0x47d150]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str._.2f_GB
jmp 0x40cf2f
push eax
push str._d_MB
push 0x1c
call fcn.0040b9fb
add esp, 0x10
cmp dword [0x83cbbc], 0x20
jae 0x40cf89
push 0x300
lea eax, [esp + 0x4c]
push eax
xor eax, eax
push eax
push eax
push 0xb
call dword [sym.imp.POWRPROF.dll_CallNtPowerInformation]
mov ecx, dword [0x83cbbc]
xor esi, esi
mov eax, esi
test ecx, ecx
je 0x40cf77
lea edx, [esp + 0x50]
cmp dword [edx], eax
cmova eax, dword [edx]
lea edx, [edx + 0x18]
sub ecx, 1
jne 0x40cf6a
push eax
push 0x470ca0
push 0x1d
call fcn.0040b9fb
add esp, 0xc
jmp 0x40cf99
push 0x470ca8
push 0x1d
call fcn.0040b9fb
pop ecx
pop ecx
xor esi, esi
call fcn.004056d0
movsx eax, al
push eax
push 0x470cac
push 0x10
call fcn.0040b9fb
add esp, 0xc
cmp dword [0x83e5c0], 0
je 0x40cfe0
mov ecx, 0x83525c
call fcn.00407328
cvtss2sd xmm0, xmm0
push ecx
push ecx
movsd qword [esp], xmm0
push str._.0f___
push 0x11
call fcn.0040b9fb
add esp, 0x10
jmp 0x40d03f
cmp dword [0x83e690], 0
je 0x40d000
lea eax, [esp + 0x20]
push eax
push esi
call dword [0x6b82f8]
push dword [esp + 0x38]
push 0x470cbc
jmp 0x40d025
cmp dword [0x83e688], 0
je 0x40d031
push 0x491380
push dword [0x491278]
call dword [0x491274]
push dword [0x49138c]
push 0x470cc4
push 0x11
call fcn.0040b9fb
add esp, 0x14
jmp 0x40d03f
push str.Unknown
push 0x11
call fcn.0040b9fb
pop ecx
pop ecx
cmp dword [0x83e690], 0
je 0x40d070
lea eax, [esp + 0x20]
push eax
push esi
call dword [0x6b82f8]
mov eax, dword [esp + 0x2c]
push 0x64
pop ecx
cdq
idiv ecx
push eax
push 0x470cd4
push 0x12
call fcn.0040b9fb
add esp, 0x14
jmp 0x40d082
push 0x470cdc
push 0x12
call fcn.0040b9fb
pop ecx
pop ecx
jmp 0x40d082
xor esi, esi
push 0x831738
push 0x470ce0
push 0x1b
call fcn.0040b9fb
add esp, 0xc
xorps xmm0, xmm0
cmp dword [0x6b8390], 0
movss dword [esp + 0x10], xmm0
push 4
pop ecx
je 0x40d168
mov eax, dword [0x83e574]
cmp eax, dword [0x801edc]
jne 0x40d168
movss xmm0, dword [0x83e694]
movss xmm1, dword [0x6b83c4]
comiss xmm0, xmm1
jbe 0x40d0e9
subss xmm0, xmm1
addss xmm0, dword [0x83e534]
movss dword [0x83e534], xmm0
movss dword [0x83e694], xmm1
test byte [0x83172c], cl
jne 0x40d15f
call fcn.00449fee
sub eax, dword [0x83f7e0]
movss xmm0, dword [0x6b83a4]
mulss xmm0, dword [0x47d304]
mov edx, dword [0x83e4d4]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov ecx, dword [0x83e4d0]
mulss xmm0, xmm1
divss xmm0, dword [0x47d2f8]
movss dword [esp + 8], xmm0
call fcn.00465820
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 8]
addss xmm0, xmm1
call fcn.004654ee
mov dword [0x83e4d0], eax
mov dword [0x83e4d4], edx
call fcn.00449fee
mov ecx, eax
jmp 0x40d18f
and dword [0x83e534], 0
and dword [0x83e694], 0
movlpd qword [0x83e4d0], xmm0
call fcn.00449fee
mov ecx, eax
mov eax, dword [0x801edc]
mov dword [0x83e574], eax
cmp dword [0x6b8390], 0
mov dword [0x83f7e0], ecx
je 0x40d412
movss xmm0, dword [0x83e534]
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x47d190]
jbe 0x40d412
cmp dword [0x83e4d4], esi
jl 0x40d412
jg 0x40d1d9
cmp dword [0x83e4d0], 0x10000
jbe 0x40d412
call fcn.00449fee
sub eax, dword [0x83e6a4]
mov edi, 0x46e1d0
cmp eax, 0x1388
jbe 0x40d31d
call fcn.00449fee
mov edx, dword [0x83e4d4]
mov ecx, dword [0x83e4d0]
mov dword [0x83e6a4], eax
call fcn.00465820
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
push ecx
push ecx
movss xmm0, dword [0x83e534]
mulss xmm1, dword [0x47d148]
divss xmm1, dword [0x47d2f8]
divss xmm1, dword [0x47d2cc]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x470ce4
push 0x17
call fcn.0040b9fb
mov esi, dword [0x801db8]
add esp, 0x10
cmp byte [esi + 0x2ccc], 0
jne 0x40d356
cmp byte [0x689d51], 0
jne 0x40d282
push 2
pop ecx
mov dword [esp + 8], 0x46e117
cmp byte [esi + 0x2bd0], cl
jne 0x40d28a
mov dword [esp + 8], 0x470cec
cmp byte [0x6b809d], 0
mov ecx, 0x46e1d4
mov edx, dword [0x83e4d4]
mov eax, edi
cmovne eax, ecx
mov ecx, dword [0x83e4d0]
push eax
call fcn.00465820
cvtsd2ss xmm0, xmm0
movzx ecx, byte [0x6b809d]
movss xmm1, dword [0x83e534]
mulss xmm0, dword [0x47d148]
divss xmm0, dword [0x47d2f8]
divss xmm1, xmm0
movss xmm0, dword [0x689d34]
divss xmm0, xmm1
cvtps2pd xmm1, xmm0
call fcn.00402316
push ecx
push ecx
lea eax, [esi + 0x2c00]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push dword [esp + 0x14]
push eax
call fcn.00401468
mov eax, dword [0x801db8]
add esp, 0x14
add eax, 0x2cfc
push 0x46e11d
push eax
call fcn.00401468
pop ecx
pop ecx
mov esi, dword [0x801db8]
cmp byte [0x689d51], 0
push 2
pop eax
jne 0x40d50a
cmp byte [esi + 0x2bd0], al
je 0x40d50a
mov byte [esi + 0x2c00], 0
lea eax, [esi + 0x2cfc]
push 0x46e11f
jmp 0x40d481
cmp byte [0x689d51], 0
jne 0x40d372
push 2
pop ecx
mov dword [esp + 8], 0x46e11e
cmp byte [esi + 0x2bd0], cl
jne 0x40d37a
mov dword [esp + 8], 0x470cf4
mov edx, dword [0x83e4d4]
mov ecx, dword [0x83e4d0]
call fcn.00465820
cvtsd2ss xmm0, xmm0
movzx ecx, byte [0x6b809d]
movss xmm1, dword [0x83e534]
mulss xmm0, dword [0x47d148]
divss xmm0, dword [0x47d2f8]
divss xmm1, xmm0
movss xmm0, dword [0x689d34]
divss xmm0, xmm1
cvtps2pd xmm1, xmm0
call fcn.00402316
push ecx
push ecx
lea eax, [esi + 0x2c00]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push dword [esp + 0x10]
push eax
call fcn.00401468
mov esi, dword [0x801db8]
add esp, 0x10
cmp byte [0x6b809d], 0
mov ecx, edi
mov eax, 0x46e1d4
mov edx, esi
cmovne ecx, eax
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx + 0x2cfc], al
inc ecx
test al, al
jne 0x40d3ff
jmp 0x40d323
push 0x470cfc
push 0x17
call fcn.0040b9fb
pop ecx
pop ecx
mov ecx, dword [0x801db8]
cmp byte [ecx + 0x2ccc], 0
jne 0x40d48b
cmp byte [0x689d51], 0
jne 0x40d446
cmp byte [ecx + 0x2bd0], 2
mov esi, 0x46e142
jne 0x40d44b
mov esi, 0x470d00
cmp byte [0x6b809d], 0
mov edi, 0x46e1d0
mov edx, 0x46e1d4
mov eax, edi
cmovne eax, edx
push eax
lea eax, [ecx + 0x2c00]
push esi
push eax
call fcn.00401468
mov eax, dword [0x801db8]
add esp, 0xc
add eax, 0x2cfc
push 0x46e143
push eax
call fcn.00401468
pop ecx
pop ecx
jmp 0x40d501
cmp byte [0x689d51], 0
jne 0x40d4a2
cmp byte [ecx + 0x2bd0], 2
mov eax, 0x46e14e
jne 0x40d4a7
mov eax, 0x470d08
push eax
lea eax, [ecx + 0x2c00]
push eax
call fcn.00401468
cmp byte [0x689d51], 0
mov esi, dword [0x801db8]
pop ecx
pop ecx
jne 0x40d4d5
push 2
pop ecx
mov edx, 0x46e14f
cmp byte [esi + 0x2ccc], cl
jne 0x40d4da
mov edx, 0x470d0c
cmp byte [0x6b809d], 0
mov edi, 0x46e1d0
mov ecx, 0x46e1d4
mov eax, edi
cmovne eax, ecx
push eax
push edx
lea eax, [esi + 0x2cfc]
push eax
call fcn.00401468
add esp, 0xc
mov esi, dword [0x801db8]
push 2
pop eax
mov dword [0x69c2b8], str.AVG_L_100km
cmp byte [esi + 0x22f4], 0
jne 0x40d5c8
cmp byte [0x689d51], 0
jne 0x40d53a
mov dword [esp + 8], 0x46e15e
cmp byte [esi + 0x21f8], al
jne 0x40d542
mov dword [esp + 8], 0x470d1c
cmp byte [0x6b809d], 0
mov ecx, 0x46e1d4
mov eax, edi
cmovne eax, ecx
push eax
movzx eax, byte [0x83172f]
imul eax, eax, 0x88
mov ecx, dword [eax + 0x7e6c78]
mov edx, dword [eax + 0x7e6c7c]
shrd ecx, edx, 0x10
shr edx, 0x10
call fcn.004657e0
cvtsd2ss xmm0, xmm0
movzx ecx, byte [0x6b809d]
xorps xmm1, xmm1
divss xmm0, dword [0x47d2f8]
cvtss2sd xmm1, xmm0
call fcn.00402316
push ecx
push ecx
lea eax, [esi + 0x2228]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push dword [esp + 0x14]
push eax
call fcn.00401468
mov eax, dword [0x801db8]
add esp, 0x14
xor ecx, ecx
mov byte [eax + 0x2324], cl
jmp 0x40d674
cmp byte [0x689d51], 0
jne 0x40d5e1
mov dword [esp + 8], 0x46e15f
cmp byte [esi + 0x21f8], al
jne 0x40d5e9
mov dword [esp + 8], 0x470d24
movzx eax, byte [0x83172f]
imul eax, eax, 0x88
mov ecx, dword [eax + 0x7e6c78]
mov edx, dword [eax + 0x7e6c7c]
shrd ecx, edx, 0x10
shr edx, 0x10
call fcn.004657e0
cvtsd2ss xmm0, xmm0
movzx ecx, byte [0x6b809d]
xorps xmm1, xmm1
divss xmm0, dword [0x47d2f8]
cvtss2sd xmm1, xmm0
call fcn.00402316
push ecx
push ecx
lea eax, [esi + 0x2228]
divsd xmm1, xmm0
movsd qword [esp], xmm1
push dword [esp + 0x10]
push eax
call fcn.00401468
mov edx, dword [0x801db8]
add esp, 0x10
cmp byte [0x6b809d], 0
mov ecx, edi
mov eax, 0x46e1d4
cmovne ecx, eax
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx + 0x2324], al
inc ecx
test al, al
jne 0x40d664
xor ecx, ecx
cmp dword [0x83fa08], 0
jne 0x40d701
cmp dword [0x6b8390], 0
jne 0x40d773
mov al, byte [0x6b8078]
test al, al
je 0x40d773
movzx eax, al
imul eax, eax, 0xe4
cmp dword [eax + 0x492118], ecx
je 0x40d773
push ecx
call fcn.0044da37
pop ecx
movzx ecx, byte [0x6b8078]
mov esi, edx
imul ecx, ecx, 0xe4
mov dword [esp + 8], eax
mov ecx, dword [ecx + 0x492118]
mov eax, dword [ecx + 0x18]
cdq
sub dword [esp + 8], eax
sbb esi, edx
test esi, esi
jg 0x40d6f1
jl 0x40d6e7
cmp dword [esp + 8], 5
jae 0x40d6f1
mov eax, dword [ecx + 0x60]
mov dword [0x83fa08], eax
jmp 0x40d6fd
mov eax, dword [0x83fa08]
mov dword [ecx + 0x18], 1
test eax, eax
je 0x40d773
test dword [0x83172c], 0x200
je 0x40d773
call fcn.00449fee
sub eax, dword [0x83e278]
movss xmm0, dword [0x6b83a4]
mulss xmm0, dword [0x47d304]
mov edx, dword [0x83e73c]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov ecx, dword [0x83e738]
mulss xmm0, xmm1
divss xmm0, dword [0x47d2f8]
movss dword [esp + 8], xmm0
call fcn.004657e0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 8]
addss xmm0, xmm1
call fcn.004654df
mov dword [0x83e738], eax
mov dword [0x83e73c], edx
call fcn.00449fee
mov edx, dword [0x801db8]
mov dword [0x83e278], eax
mov eax, dword [0x689d00]
cmp byte [edx + 0x24ec], 0
jne 0x40d933
cmp eax, dword [0x6b8390]
jne 0x40d837
cmp dword [0x83fa08], 0
je 0x40d837
cmp byte [0x689d51], 0
jne 0x40d7c8
cmp byte [edx + 0x23f0], 2
mov dword [esp + 8], 0x46e176
jne 0x40d7d0
mov dword [esp + 8], 0x470d2c
cmp byte [0x6b809d], 0
mov eax, 0x46e1d4
mov ecx, dword [0x83e738]
mov esi, dword [0x83e73c]
cmovne edi, eax
mov eax, dword [0x83fa08]
shrd ecx, esi, 0x10
cdq
shr esi, 0x10
add ecx, eax
push edi
adc edx, esi
call fcn.004657e0
movzx ecx, byte [0x6b809d]
movaps xmm1, xmm0
call fcn.00402316
divsd xmm1, xmm0
mov eax, dword [0x801db8]
push ecx
push ecx
add eax, 0x2420
divsd xmm1, qword [0x47d290]
movsd qword [esp], xmm1
push dword [esp + 0x14]
jmp 0x40d8db
mov al, byte [0x83172f]
test al, al
je 0x40d8e6
movzx eax, al
imul eax, eax, 0x88
mov al, byte [eax + 0x7e6c48]
test al, al
je 0x40d8e6
movzx eax, al
imul eax, eax, 0xe4
mov ecx, dword [eax + 0x492118]
test ecx, ecx
je 0x40d8e6
xor eax, eax
cmp dword [ecx + 0x18], eax
jle 0x40d8e6
cmp dword [ecx + 0x1c], eax
jne 0x40d8e6
cmp byte [0x689d51], al
jne 0x40d893
cmp byte [edx + 0x23f0], 2
mov dword [esp + 8], 0x46e177
jne 0x40d89b
mov dword [esp + 8], str._.0f__s
movd xmm0, dword [ecx + 0x60]
mov esi, 0x46e1d4
mov al, byte [0x6b809d]
cvtdq2ps xmm0, xmm0
test al, al
movzx ecx, al
cmovne edi, esi
push edi
cvtps2pd xmm1, xmm0
call fcn.00402316
push ecx
push ecx
lea eax, [edx + 0x2420]
divsd xmm1, xmm0
divsd xmm1, qword [0x47d290]
movsd qword [esp], xmm1
push dword [esp + 0x14]
push eax
call fcn.00401468
add esp, 0x14
jmp 0x40d922
cmp byte [0x689d51], 0
jne 0x40d8fd
cmp byte [edx + 0x23f0], 2
mov ecx, 0x46e19a
jne 0x40d902
mov ecx, 0x470d40
cmp byte [0x6b809d], 0
mov eax, 0x46e1d4
cmovne edi, eax
lea eax, [edx + 0x2420]
push edi
push ecx
push eax
call fcn.00401468
add esp, 0xc
mov eax, dword [0x801db8]
mov byte [eax + 0x251c], 0
jmp 0x40da9e
cmp eax, dword [0x6b8390]
jne 0x40d9b8
mov eax, dword [0x83fa08]
test eax, eax
je 0x40d9b8
cmp byte [0x689d51], 0
jne 0x40d95e
cmp byte [edx + 0x23f0], 2
mov dword [esp + 8], 0x46e19b
jne 0x40d966
mov dword [esp + 8], 0x470d48
mov ecx, dword [0x83e738]
mov esi, dword [0x83e73c]
shrd ecx, esi, 0x10
cdq
shr esi, 0x10
add ecx, eax
adc edx, esi
call fcn.004657e0
movzx ecx, byte [0x6b809d]
movaps xmm1, xmm0
call fcn.00402316
divsd xmm1, xmm0
mov eax, dword [0x801db8]
push ecx
push ecx
add eax, 0x2420
divsd xmm1, qword [0x47d290]
movsd qword [esp], xmm1
push dword [esp + 0x10]
jmp 0x40da43
mov al, byte [0x83172f]
test al, al
je 0x40da4e
movzx eax, al
imul eax, eax, 0x88
mov al, byte [eax + 0x7e6c48]
test al, al
je 0x40da4e
movzx eax, al
imul eax, eax, 0xe4
mov ecx, dword [eax + 0x492118]
test ecx, ecx
je 0x40da4e
xor eax, eax
cmp dword [ecx + 0x18], eax
jle 0x40da4e
cmp dword [ecx + 0x1c], eax
jne 0x40da4e
cmp byte [0x689d51], al
jne 0x40da0d
cmp byte [edx + 0x23f0], 2
mov eax, 0x46e19e
jne 0x40da12
mov eax, 0x470d50
movd xmm0, dword [ecx + 0x60]
movzx ecx, byte [0x6b809d]
cvtdq2ps xmm0, xmm0
cvtps2pd xmm1, xmm0
call fcn.00402316
push ecx
push ecx
divsd xmm1, xmm0
divsd xmm1, qword [0x47d290]
movsd qword [esp], xmm1
push eax
lea eax, [edx + 0x2420]
push eax
call fcn.00401468
add esp, 0x10
jmp 0x40da79
cmp byte [0x689d51], 0
jne 0x40da65
cmp byte [edx + 0x23f0], 2
mov eax, 0x46e19f
jne 0x40da6a
mov eax, 0x470d58
push eax
lea eax, [edx + 0x2420]
push eax
call fcn.00401468
pop ecx
pop ecx
cmp byte [0x6b809d], 0
mov eax, 0x46e1d4
mov ecx, dword [0x801db8]
cmovne edi, eax
sub ecx, edi
mov al, byte [edi]
mov byte [edi + ecx + 0x251c], al
inc edi
test al, al
jne 0x40da90
cmp byte [0x83172f], 0
je 0x40e161
movss xmm0, dword [0x689d14]
comiss xmm0, dword [0x47d13c]
jb 0x40daed
movzx ecx, byte [0x6b809d]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [0x47d248]
call fcn.00402316
divsd xmm1, xmm0
push ecx
push ecx
movsd qword [esp], xmm1
push 0x470d60
push 0
call fcn.0040b9fb
add esp, 0x10
movss xmm0, dword [0x689d1c]
comiss xmm0, dword [0x47d13c]
jb 0x40db2f
movzx ecx, byte [0x6b809d]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [0x47d248]
call fcn.00402316
divsd xmm1, xmm0
push ecx
push ecx
movsd qword [esp], xmm1
push 0x470d6c
push 1
call fcn.0040b9fb
add esp, 0x10
movss xmm1, dword [0x689d0c]
comiss xmm1, dword [0x47d13c]
jb 0x40db8d
movaps xmm0, xmm1
mov eax, 0x470d74
divss xmm0, dword [0x47d2cc]
push ecx
push ecx
mov ecx, 0x46e1a2
divss xmm1, dword [0x689d10]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x47d1f0]
movsd qword [esp], xmm0
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x47d1d8]
cmovbe eax, ecx
push eax
push 0x470d7c
push 2
call fcn.0040b9fb
add esp, 0x14
xorps xmm0, xmm0
maxss xmm0, dword [0x689d78]
push ecx
push ecx
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x470d84
push 0x1a
call fcn.0040b9fb
mov dl, byte [0x689d20]
add esp, 0x10
mov dword [0x69c354], 0x470d8c
test dl, dl
jne 0x40dbcc
push 0x470d98
jmp 0x40dbfe
cmp dl, 1
jne 0x40dbd8
push 0x470d9c
jmp 0x40dbfe
push 2
mov al, dl
pop ecx
sub al, cl
cmp al, 6
ja 0x40dbf9
movsx eax, dl
dec eax
push eax
push 0x470da0
push 3
call fcn.0040b9fb
add esp, 0xc
jmp 0x40dc07
push 0x470da4
push 3
call fcn.0040b9fb
pop ecx
pop ecx
cmp byte [0x6b80a0], 0
jne 0x40dd11
push 4
pop edx
cmp byte [0x835248], dl
je 0x40dd11
mov eax, dword [0x689d00]
cmp eax, dword [0x6b8390]
jne 0x40dd11
mov edx, 0x831738
mov ecx, 0x689d04
call fcn.00403bdd
movss xmm2, dword [0x689d34]
movaps xmm3, xmm0
movaps xmm1, xmm2
mov eax, 0x470da8
divss xmm1, xmm3
push ecx
push ecx
mov ecx, 0x46e1a3
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm1
movsd qword [esp], xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm3
mulsd xmm1, qword [0x47d210]
comisd xmm1, xmm0
xorps xmm0, xmm0
cmovbe eax, ecx
mov ecx, 0x470db0
comiss xmm0, xmm3
push eax
mov eax, 0x470dac
cmovbe eax, ecx
push eax
push 0x13
call fcn.0040b9fb
movss xmm1, dword [0x689d34]
add esp, 0xc
divss xmm1, dword [0x689d38]
mov ecx, 0x46e1b3
movzx eax, byte [0x7e68af]
movss xmm3, dword [0x47d2cc]
movaps xmm0, xmm1
mulss xmm0, xmm3
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movd xmm0, eax
mov eax, 0x470db8
cvtdq2ps xmm0, xmm0
divss xmm0, xmm3
comiss xmm0, xmm1
xorps xmm0, xmm0
cmovbe eax, ecx
mov ecx, 0x470dc0
comiss xmm0, dword [0x689d34]
push eax
mov eax, 0x470dbc
cmovbe eax, ecx
push eax
push 4
pop eax
push eax
call fcn.0040b9fb
add esp, 0x14
jmp 0x40dd2e
push 0x470dcc
push 0x13
call fcn.0040b9fb
push 0x470dd0
push 4
pop eax
push eax
call fcn.0040b9fb
add esp, 0x10
cmp dword [0x6b8390], 0
movss xmm1, dword [0x6b83c4]
mov ecx, dword [0x801edc]
je 0x40ddd9
cmp ecx, dword [0x83e54c]
jne 0x40ddd9
movsx eax, word [0x6b83cc]
cmp dword [0x83eb7c], eax
je 0x40dda7
cmp dword [0x83e2a4], 0
movaps xmm3, xmm1
jne 0x40dd84
movss xmm2, dword [0x83e684]
mov dword [0x83e2a4], 1
jmp 0x40dd98
movss xmm2, dword [0x83e548]
subss xmm2, xmm1
movss dword [0x83e684], xmm2
movss dword [0x83e548], xmm3
mov dword [0x83eb7c], eax
jmp 0x40ddb7
movss xmm2, dword [0x83e684]
movss xmm3, dword [0x83e548]
movss xmm4, dword [0x83e758]
comiss xmm1, xmm4
jbe 0x40ddfe
movaps xmm0, xmm1
subss xmm0, xmm4
addss xmm0, xmm3
movss dword [0x83e548], xmm0
jmp 0x40ddfe
movsx eax, word [0x6b83cc]
xorps xmm2, xmm2
and dword [0x83e548], 0
and dword [0x83e2a4], 0
movss dword [0x83e684], xmm2
mov dword [0x83eb7c], eax
ucomiss xmm2, dword [0x47d13c]
mov dword [0x83e54c], ecx
mov ecx, str._s_.1f
movss dword [0x83e758], xmm1
lahf
test ah, 0x44
jp 0x40de23
mov ecx, 0x470de0
divss xmm1, xmm2
push ecx
push ecx
mov edx, 0x46e1c2
mov eax, 0x470dd4
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
movss xmm0, dword [0x47d1a0]
comiss xmm0, xmm1
cmovbe eax, edx
push eax
push ecx
push 0x14
call fcn.0040b9fb
mov eax, dword [0x689d00]
add esp, 0x14
cmp eax, dword [0x6b8390]
je 0x40de82
push 0x470e0c
push 6
call fcn.0040b9fb
push 0x470e10
push 7
call fcn.0040b9fb
add esp, 0x10
jmp 0x40df34
movss xmm1, dword [0x689d2c]
mov eax, 0x470de4
movaps xmm0, xmm1
mulss xmm0, dword [0x47d2cc]
push ecx
push ecx
mov ecx, 0x46e1c3
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x47d1a8]
xorps xmm0, xmm0
cmovbe eax, ecx
mov ecx, str._s_.1f___
comiss xmm0, xmm1
push eax
mov eax, 0x470de8
cmovbe eax, ecx
push eax
push 6
call fcn.0040b9fb
movss xmm2, dword [0x689d30]
add esp, 0xc
movss xmm0, dword [0x47d2cc]
movaps xmm1, xmm2
mulss xmm1, xmm0
mov ecx, 0x46e1cd
mov eax, 0x470df8
subss xmm0, xmm1
movsd xmm1, qword [0x47d1d8]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
cvtps2pd xmm0, xmm2
comisd xmm1, xmm0
xorps xmm0, xmm0
cmovbe eax, ecx
mov ecx, str._s_.2f___
comiss xmm0, xmm2
push eax
mov eax, 0x470dfc
cmovbe eax, ecx
push eax
push 7
call fcn.0040b9fb
add esp, 0x14
call fcn.00449fee
sub eax, dword [0x83caa4]
cmp eax, 0x3e8
jl 0x40e161
cmp byte [0x689d20], 1
je 0x40e07d
movss xmm0, dword [0x689d18]
movsd xmm1, qword [0x47d198]
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x40e07d
movss xmm1, dword [0x83e1e8]
subss xmm1, dword [0x689d34]
movss xmm0, dword [0x689d14]
mov eax, dword [0x689d00]
mulss xmm1, dword [0x47d308]
divss xmm1, xmm0
mulss xmm1, dword [0x47d2f8]
divss xmm1, dword [0x47d2f8]
movss dword [0x83eea4], xmm1
cmp eax, dword [0x6b8390]
jne 0x40e012
comiss xmm0, dword [0x47d298]
jbe 0x40e012
comiss xmm1, dword [0x47d13c]
jb 0x40e012
cmp dword [0x83d058], eax
jne 0x40e012
movss xmm0, dword [0x831728]
ucomiss xmm0, dword [0x47d188]
lahf
test ah, 0x44
jp 0x40e012
push 4
pop eax
test byte [0x83172c], al
jne 0x40e012
cvtps2pd xmm0, xmm1
push ecx
push ecx
movsd qword [esp], xmm0
push 0x470e14
push 5
call fcn.0040b9fb
add esp, 0x10
jmp 0x40e020
push 0x470e1c
push 5
call fcn.0040b9fb
pop ecx
pop ecx
mov eax, dword [0x689d00]
mov dword [0x69bf10], 0x470e20
cmp eax, dword [0x6b8390]
je 0x40e041
push 0x470e2c
jmp 0x40e12b
cmp byte [0x689d51], 0
mov ecx, dword [0x801db8]
jne 0x40e05e
cmp byte [ecx + 0x27e0], 2
mov eax, 0x46e1ce
jne 0x40e063
mov eax, 0x470e28
push 0x69bef0
push eax
lea eax, [ecx + 0x2810]
push eax
call fcn.00401468
add esp, 0xc
jmp 0x40e13d
movss xmm1, dword [0x83e1e8]
subss xmm1, dword [0x689d34]
mov eax, dword [0x689d00]
mulss xmm1, dword [0x47d2c4]
mulss xmm1, dword [0x47d2c4]
mulss xmm1, dword [0x47d2f8]
divss xmm1, dword [0x47d2f8]
movss dword [0x83eea4], xmm1
cmp eax, dword [0x6b8390]
jne 0x40e10e
comiss xmm1, dword [0x47d13c]
jb 0x40e10e
cmp dword [0x83d058], eax
jne 0x40e10e
movss xmm0, dword [0x831728]
ucomiss xmm0, dword [0x47d188]
lahf
test ah, 0x44
jp 0x40e10e
push 4
pop eax
test byte [0x83172c], al
jne 0x40e10e
cvtps2pd xmm0, xmm1
push ecx
push ecx
movsd qword [esp], xmm0
push 0x470e30
push 5
call fcn.0040b9fb
add esp, 0x10
jmp 0x40e11c
push 0x470e38
push 5
call fcn.0040b9fb
pop ecx
pop ecx
mov dword [0x69bf10], 0x470e3c
push 0x470e40
mov eax, dword [0x801db8]
add eax, 0x2810
push eax
call fcn.00401468
pop ecx
pop ecx
call fcn.00449fee
movss xmm0, dword [0x689d34]
mov dword [0x83caa4], eax
mov eax, dword [0x689d00]
mov dword [0x83d058], eax
movss dword [0x83e1e8], xmm0
cmp dword [0x6b8390], 0
je 0x40e299
movss xmm2, dword [0x6b83a4]
movsd xmm1, qword [0x47d198]
cvtps2pd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x40e1c7
comiss xmm2, dword [0x47d13c]
jbe 0x40e1c7
and dword [0x69c424], 0
push 0x46e1cf
push 0x1e
mov dword [0x83e648], 1
call fcn.0040b9fb
mov esi, dword [0x6b840c]
mov edx, esi
movss xmm2, dword [0x6b83a4]
pop ecx
pop ecx
mov dword [0x83e4c8], edx
jmp 0x40e1d3
mov esi, dword [0x6b840c]
mov edx, dword [0x83e4c8]
mov ecx, dword [0x83e648]
test ecx, ecx
je 0x40e2c1
imul eax, ecx, 0x32
cvtps2pd xmm1, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x47d248]
comisd xmm1, xmm0
jb 0x40e2c1
sub esi, edx
inc ecx
push ecx
push ecx
mov dword [0x83e648], ecx
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x47d3e0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x47d2cc]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x470e44
push 0x1e
call fcn.0040b9fb
mov cl, byte [0x6b809d]
add esp, 0x10
test cl, cl
mov eax, 0x46e1c4
mov edx, str.km_h
movzx ecx, cl
cmovne eax, edx
push eax
imul eax, dword [0x83e648], 0x32
sub eax, 0x32
movd xmm1, eax
cvtdq2pd xmm1, xmm1
call fcn.00402316
push ecx
push ecx
mov esi, 0x83ef80
divsd xmm1, xmm0
movsd qword [esp], xmm1
push str.0____.0f__s
push esi
call fcn.00401468
add esp, 0x14
mov dword [0x69c424], esi
jmp 0x40e2b3
xor eax, eax
push 0x46e1d3
push 0x1e
mov dword [0x83e648], eax
mov dword [0x69c424], eax
call fcn.0040b9fb
pop ecx
pop ecx
movss xmm2, dword [0x6b83a4]
mov esi, dword [0x6b840c]
cmp dword [0x6b8390], 0
je 0x40e467
movsd xmm1, qword [0x47d198]
cvtps2pd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x40e32a
comiss xmm2, dword [0x47d13c]
jbe 0x40e32a
xor eax, eax
mov dword [0x83eb64], 1
push 0x46e1d7
push 0x1f
mov dword [0x83e280], eax
mov dword [0x83eed0], esi
mov dword [0x69c458], eax
call fcn.0040b9fb
mov esi, dword [0x6b840c]
mov edi, esi
movss xmm2, dword [0x6b83a4]
pop ecx
pop ecx
mov dword [0x83e2ac], edi
jmp 0x40e330
mov edi, dword [0x83e2ac]
mov ecx, dword [0x83eed0]
test ecx, ecx
je 0x40e385
mov eax, esi
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x47d3e0]
cvtpd2ps xmm1, xmm0
movd xmm0, dword [0x83e280]
mulss xmm1, xmm2
cvtdq2ps xmm0, xmm0
mulss xmm1, dword [0x47d304]
divss xmm1, dword [0x47d2cc]
addss xmm1, xmm0
cvttss2si ecx, xmm1
mov dword [0x83e280], ecx
jmp 0x40e38b
mov ecx, dword [0x83e280]
mov eax, dword [0x83eb64]
mov dword [0x83eed0], esi
test eax, eax
je 0x40e486
cmp eax, 5
jge 0x40e486
movsd xmm0, qword [0x47d230]
dec eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
call fcn.00465a20
mulsd xmm0, qword [0x47d270]
movd xmm1, dword [0x83e280]
cvtdq2pd xmm1, xmm1
mulsd xmm0, qword [0x47d2a0]
comisd xmm1, xmm0
jb 0x40e486
sub esi, edi
push ecx
push ecx
movd xmm1, esi
cvtdq2pd xmm1, xmm1
shr esi, 0x1f
addsd xmm1, qword [esi*8 + 0x47d3e0]
cvtpd2ps xmm1, xmm1
divss xmm1, dword [0x47d2cc]
cvtps2pd xmm1, xmm1
movsd qword [esp], xmm1
push 0x470e58
push 0x1f
call fcn.0040b9fb
mov eax, dword [0x83eb64]
movsd xmm0, qword [0x47d230]
dec eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
call fcn.00465a20
mulsd xmm0, qword [0x47d270]
add esp, 8
mov esi, 0x83e6b8
movsd qword [esp], xmm0
push str.0____.0f_m
push esi
call fcn.00401468
add esp, 0x10
mov dword [0x69c458], esi
inc dword [0x83eb64]
jmp 0x40e486
xor eax, eax
push 0x46e1e5
push 0x1f
mov dword [0x83eb64], eax
mov dword [0x83e280], eax
mov dword [0x69c458], eax
call fcn.0040b9fb
pop ecx
pop ecx
mov esi, 0x801964
mov al, byte [esi - 0x10]
cmp al, byte [0x83172f]
jne 0x40e51b
mov eax, 0x12c
cmp word [esi], ax
jbe 0x40e51b
movzx eax, word [esi + 4]
xorps xmm0, xmm0
movzx ecx, word [esi + 2]
sub ecx, eax
cvtsi2ss xmm0, ecx
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x47d240]
mulsd xmm0, qword [0x47d168]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
call fcn.00466570
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x10]
call fcn.00465860
fld qword [esp + 8]
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.00465850
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
andps xmm0, xmmword [0x47d3f0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x10], xmm0
jmp 0x40e521
movss xmm0, dword [esp + 0x10]
add esi, 0x1c
cmp esi, 0x801ce4
jl 0x40e48b
mulss xmm0, dword [0x47d2dc]
mov eax, 0x470e6c
cmp byte [0x83172f], 0
push ecx
push ecx
cvtps2pd xmm0, xmm0
mov ecx, 0x470e74
cmove eax, ecx
divsd xmm0, qword [0x47d240]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
push 0x16
call fcn.0040b9fb
xor esi, esi
add esp, 0x10
cmp byte [0x6b809e], 0
mov edi, 0x80
mov dword [esp + 0x10], esi
jne 0x40e5ef
cmp byte [0x6b80a0], 0
jne 0x40e5ef
push 4
pop eax
cmp byte [0x835248], al
je 0x40e5ef
lea eax, [esp + 0x10]
mov ecx, 0x831738
push eax
movzx eax, byte [0x83172f]
imul edx, eax, 0x88
add edx, 0x7e6c38
call fcn.00434e05
mov esi, dword [esp + 0x14]
pop ecx
test esi, esi
je 0x40e5ef
mov eax, dword [esi + 0x18]
xor edx, edx
push edi
push 0xa
pop ecx
div ecx
lea edx, [esp + 0x34c]
mov ecx, eax
call fcn.00402e44
pop ecx
push eax
push 0x470e7c
push 0x15
call fcn.0040b9fb
add esp, 0xc
jmp 0x40e5fd
push 0x470e80
push 0x15
call fcn.0040b9fb
pop ecx
pop ecx
test esi, esi
je 0x40e66d
movzx eax, byte [0x83172f]
imul eax, eax, 0x88
mov ecx, dword [eax + 0x7e6c10]
test ecx, ecx
je 0x40e66d
cmp ecx, 0x57e40
jae 0x40e66d
movsx eax, byte [eax + 0x7e6c09]
push 4
pop edx
test eax, eax
push 1
cmove eax, edx
xor edx, edx
push edi
push 0xa
pop edi
mov eax, dword [esi + eax*4 + 8]
div edi
lea edx, [esp + 0x350]
sub ecx, eax
call fcn.00402ebf
cmp byte [0x83172f], 0
mov ecx, 0x470e88
push eax
mov eax, 0x470e84
cmove eax, ecx
push eax
push 0x18
call fcn.0040b9fb
add esp, 0x14
jmp 0x40e67b
push 0x470e8c
push 0x18
call fcn.0040b9fb
pop ecx
pop ecx
test esi, esi
je 0x40e735
movzx eax, byte [0x83172f]
imul eax, eax, 0x88
mov edi, dword [eax + 0x7e6c14]
test edi, edi
je 0x40e735
cmp dword [eax + 0x7e6c10], 0x57e40
jae 0x40e735
movsx ecx, byte [eax + 0x7e6c09]
test ecx, ecx
jne 0x40e6dc
push 2
pop eax
push 4
lea ecx, [esi + 0x14]
pop edx
cmp dword [ecx], 0
jne 0x40e6d0
sub ecx, edx
sub eax, 1
jns 0x40e6c2
jmp 0x40e6d8
mov eax, dword [esi + eax*4 + 0xc]
mov dword [esp + 0x1c], eax
mov ecx, edx
jmp 0x40e6ed
cmp ecx, 1
jne 0x40e6e5
xor eax, eax
jmp 0x40e6e9
mov eax, dword [esi + ecx*4 + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + ecx*4 + 8]
xor edx, edx
sub eax, dword [esp + 0x1c]
push 1
push 0x80
push 0xa
pop ecx
div ecx
lea edx, [esp + 0x350]
sub edi, eax
mov ecx, edi
call fcn.00402ebf
cmp byte [0x83172f], 0
mov ecx, 0x470e94
push eax
mov eax, 0x470e90
cmove eax, ecx
push eax
push 0x19
call fcn.0040b9fb
add esp, 0x14
jmp 0x40e743
push 0x470e98
push 0x19
call fcn.0040b9fb
pop ecx
pop ecx
mov ecx, dword [esp + 0x3cc]
pop edi
pop esi
xor ecx, esp
call fcn.00445b7e
mov esp, ebp
pop ebp
ret