Function at 0x55a318
Capabilities:
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
cmp dword [ecx + 0x48], 0
jne 0x55a8f1
lea eax, [esp + 0xb0]
xorps xmm0, xmm0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
and dword [eax + 0x20], 0
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax], xmm0
push eax
call sub.KERNEL32.DLL_GetSystemInfo
xor ecx, ecx
mov eax, 0x80000000
mov esi, ebx
cpuid
xchg ebx, esi
cmp eax, 0x80000004
mov dword [esp + 8], eax
jb 0x55a423
push 4
pop ecx
push 0x50
pop edx
call fcn.00425bef
test eax, eax
je 0x55a8fe
mov ebx, eax
lea eax, [esp + 0x24]
xor esi, esi
xor ecx, ecx
mov dword [eax], 5
mov dword [eax + 4], ebx
mov eax, 0x80000000
test cl, 1
mov dword [esp + 0x2c], esi
jne 0x55a43f
cmp eax, dword [esp + 8]
ja 0x55a43f
setae cl
mov edi, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ecx
adc edi, 0
xor ecx, ecx
mov ebx, ebx
cpuid
xchg ebx, ebx
mov dword [esp + 0x10], ebx
cmp esi, dword [esp + 0x24]
jne 0x55a3f9
mov dword [esp + 0xc], ecx
mov ebx, edx
mov edx, esi
lea ecx, [esp + 0x24]
mov esi, eax
call fcn.00558963
mov eax, esi
mov edx, ebx
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
jmp 0x55a3fd
mov ebx, dword [esp + 0xc]
shl esi, 4
mov dword [ebx + esi], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + esi + 4], eax
mov dword [ebx + esi + 8], ecx
mov dword [ebx + esi + 0xc], edx
mov ecx, dword [esp + 4]
mov eax, edi
mov esi, dword [esp + 0x2c]
inc esi
jmp 0x55a39b
xor eax, eax
mov dword [esp + 8], 0
mov dword [esp + 0x30], 0
inc eax
mov dword [esp + 0x14], eax
jmp 0x55a57c
push 0x30
pop ecx
xor edx, edx
xor ebx, ebx
call fcn.00487eba
mov edi, dword [esp + 0x28]
lea ecx, [esp + 0x18]
shl esi, 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
add esi, edi
push 2
pop eax
push 5
pop edx
test bl, 1
je 0x55a477
test edx, edx
je 0x55a4d5
cmp edi, esi
je 0x55a4d5
dec edx
jmp 0x55a491
cmp edx, eax
jbe 0x55a4d5
mov ecx, esi
sub ecx, edi
shr ecx, 4
cmp ecx, eax
jbe 0x55a4d5
mov ecx, eax
shl eax, 4
not ecx
add edi, eax
add edx, ecx
mov dword [esp + 4], edx
mov edx, dword [edi]
lea ebx, [esp + 0x18]
lea eax, [edi + 0x10]
mov ecx, ebx
mov dword [esp + 0x10], eax
call 0x55a913
mov edx, dword [edi + 4]
mov ecx, ebx
call 0x55a913
mov edx, dword [edi + 8]
mov ecx, ebx
call 0x55a913
mov edx, dword [edi + 0xc]
mov ecx, ebx
call 0x55a913
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 4]
xor eax, eax
mov bl, 1
jmp 0x55a467
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
xor eax, eax
cmp edx, eax
je 0x55a4ec
cmp byte [esi + eax], 0
je 0x55a4ee
inc eax
jmp 0x55a4df
mov eax, edx
mov ecx, esi
push 0x69ee8c
push eax
call fcn.0055a957
pop ecx
pop ecx
mov edi, edx
lea ebx, [esp + 0x58]
mov edx, eax
mov ecx, ebx
push edi
call fcn.0043e6d0
pop eax
cmp dword [ebx], 0
je 0x55a52c
xor eax, eax
mov dword [esp + 8], 0
mov dword [esp + 0x30], 0
inc eax
mov dword [esp + 0x14], eax
jmp 0x55a558
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
xor edx, edx
mov ecx, edi
call fcn.00487eba
mov dword [esp + 0x30], eax
mov dword [esp + 8], edi
push edi
push esi
mov dword [esp + 0x1c], edx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.00563c9c
mov eax, dword [esp + 0x24]
test eax, eax
je 0x55a57c
mov ecx, dword [esp + 0x28]
shl eax, 4
push 4
pop edx
push eax
call fcn.00408833
pop eax
xor eax, eax
xor ecx, ecx
mov ebx, ebx
cpuid
xchg ebx, ebx
mov dword [esp + 4], ecx
mov edi, edx
mov eax, dword [esp + 0x3c]
add eax, 0x40
mov dword [esp + 0x80], eax
push 0xc
pop ecx
xor edx, edx
call fcn.00487eba
lea esi, [esp + 0x18]
mov dword [esi], eax
mov dword [esi + 4], edx
and dword [esi + 8], 0
mov ecx, esi
mov edx, ebx
call 0x55a913
mov ecx, esi
mov edx, edi
call 0x55a913
mov edx, dword [esp + 4]
mov ecx, esi
call 0x55a913
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
xor eax, eax
cmp edx, eax
je 0x55a5e3
cmp byte [ecx + eax], 0
je 0x55a5e5
inc eax
jmp 0x55a5d6
mov eax, edx
push 0x69ee9c
push eax
call fcn.0055a957
pop ecx
pop ecx
mov esi, edx
lea edi, [esp + 0x58]
mov edx, eax
mov ecx, edi
push esi
call fcn.0043e6d0
pop eax
cmp dword [edi], 0
je 0x55a625
movsx eax, word [esp + 0xb0]
cmp eax, 0xe
ja 0x55a62f
mov edi, dword [eax*4 + 0x6d55a4]
mov esi, dword [eax*4 + 0x6d55e0]
jmp 0x55a637
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
jmp 0x55a637
mov esi, 0x69ee7d
push 7
pop edi
mov ecx, edi
xor edx, edx
call fcn.00487eba
mov dword [esp + 0x38], eax
push edi
push esi
mov dword [esp + 0x3c], edx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
call fcn.00563c9c
mov ebx, dword [esp + 0xc4]
cmp byte [esp + 0x40], 0
mov dword [esp + 0x48], edi
je 0x55a68e
lea edi, [esp + 0x84]
mov edx, ebx
mov ecx, edi
call fcn.0055a96f
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
mov dword [esp + 0x44], eax
jmp 0x55a6b3
xor edx, edx
mov ecx, ebx
inc edx
call fcn.00558654
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x8c], ebx
mov esi, ebx
inc ebx
jne 0x55a6bb
push 8
pop eax
jmp 0x55a6e4
cmp ebx, 0x1ffffff
ja 0x55a8f9
mov edi, ebx
shl edi, 6
js 0x55a8f9
push 8
pop ecx
mov edx, edi
call fcn.00425bef
test eax, eax
je 0x55a909
lea ecx, [esp + 0x4c]
shl esi, 3
mov dword [ecx], ebx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
xor ebx, ebx
xor edi, edi
inc edi
test esi, esi
je 0x55a844
lea ecx, [esp + 0x70]
mov dword [esp + 0x58], 0x69f224
mov dword [esp + 4], esi
lea esi, [esp + 0x18]
lea edx, [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x1c], fcn.0043a0b0
inc ecx
mov dword [esp + 0x5c], ecx
and dword [esp + 0x68], 0
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x24]
call fcn.00556bd9
mov edx, dword [esp + 0x34]
mov ecx, esi
push dword [esp + 0x48]
call fcn.00434de0
pop eax
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x58]
push dword [esp + 8]
call fcn.00434de0
pop eax
mov eax, dword [esp + 0x44]
movsd xmm0, qword [esp + 0x18]
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x60]
cmp ebx, dword [esp + 0x4c]
mov ecx, dword [eax + edi*8 - 8]
mov edi, dword [eax + edi*8 - 4]
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [esp + 0x58]
mov dword [esp + 0x78], esi
mov dword [esp + 0xa8], edx
movsd qword [esp + 0xa0], xmm0
jne 0x55a7cd
mov esi, ecx
lea ecx, [esp + 0x4c]
mov edx, ebx
call fcn.005589f1
mov ecx, esi
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 4]
jmp 0x55a7d5
mov esi, dword [esp + 4]
mov eax, dword [esp + 0xc]
shl ebx, 6
add esi, 0xfffffff8
mov dword [eax + ebx + 4], edi
mov dword [eax + ebx], ecx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
inc edi
mov dword [eax + ebx + 0x10], ecx
movsd xmm0, qword [esp + 0x24]
movsd qword [eax + ebx + 8], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [eax + ebx + 0x14], xmm0
mov ecx, dword [esp + 0x78]
mov dword [eax + ebx + 0x1c], ecx
movsd xmm0, qword [esp + 0xa0]
movsd qword [eax + ebx + 0x20], xmm0
mov ecx, dword [esp + 0xa8]
mov dword [eax + ebx + 0x28], ecx
mov dword [eax + ebx + 0x2c], 0x80000000
and dword [eax + ebx + 0x38], 0
mov ebx, dword [esp + 0x54]
inc ebx
mov dword [esp + 0x54], ebx
jmp 0x55a6f9
mov eax, dword [esp + 0x54]
movsd xmm0, qword [esp + 0x4c]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x98], eax
movsd qword [esp + 0x90], xmm0
call fcn.0047e0a3
mov edi, dword [esp + 0x3c]
mov esi, dword [edi + 0x44]
mov edx, dword [edi + 0x48]
mov ecx, esi
call fcn.00558c0e
mov ecx, dword [edi + 0x40]
mov edx, esi
call fcn.00453f75
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x90]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
call fcn.00563c9c
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], ecx
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
call fcn.00563c9c
mov eax, dword [esp + 0x30]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 8]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x40]
mov byte [edi + 0x4c], al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004341f0
push 4
pop ecx
push 0x50
pop edx
call fcn.00434230
push 8
pop ecx
mov edx, edi
call fcn.00434230
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov eax, edx
mov edi, edx
mov ebx, edx
mov esi, ecx
shr eax, 0x18
shr edi, 8
shr ebx, 0x10
mov dword [ebp - 0x10], eax
call fcn.0055578e
mov ecx, esi
mov edx, edi
call fcn.0055578e
mov ecx, esi
mov edx, ebx
call fcn.0055578e
mov edx, dword [ebp - 0x10]
mov ecx, esi
call fcn.0055578e
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret