Function at 0x1013d280
Capabilities:
Get system information on windows

Disassembly:
mov eax, 0x24
call fcn.10228380
push ebx
push esi
mov esi, dword [esp + 0x30]
xorps xmm0, xmm0
movq qword [0x1033c6cc], xmm0
push edi
movups xmmword [0x1033c6ac], xmm0
movups xmmword [0x1033c6bc], xmm0
test esi, esi
jne 0x1013d2c5
push 0x1be
push str.cryptomem_sec.c
push str.assertion_failed:_size___0
call sym.libcrypto_3.dll_OPENSSL_die
add esp, 0xc
lea edi, [esi - 1]
and edi, esi
je 0x1013d2e3
push 0x1bf
push str.cryptomem_sec.c
push str.assertion_failed:__size___size___1____0
call sym.libcrypto_3.dll_OPENSSL_die
add esp, 0xc
test esi, esi
je 0x1013d50c
test edi, edi
jne 0x1013d50c
mov ecx, dword [esp + 0x38]
cmp ecx, 8
ja 0x1013d4ea
mov ecx, 8
xor edx, edx
mov dword [0x1033c6b8], esi
mov eax, esi
mov dword [0x1033c6c4], ecx
div ecx
add eax, eax
mov dword [0x1033c6d0], eax
cmp eax, 8
jb 0x1013d50c
or edx, 0xffffffff
mov dword [0x1033c6c0], edx
test eax, eax
je 0x1013d344
mov ecx, eax
inc edx
shr eax, 1
cmp ecx, 2
jae 0x1013d334
mov dword [0x1033c6c0], edx
push 0x1e5
lea eax, [edx*4]
push str.cryptomem_sec.c
push eax
call sym.libcrypto_3.dll_CRYPTO_zalloc
add esp, 0xc
mov dword [0x1033c6bc], eax
test eax, eax
jne 0x1013d38b
push 0x1e6
push str.cryptomem_sec.c
push str.assertion_failed:_sh.freelist___NULL
call sym.libcrypto_3.dll_OPENSSL_die
add esp, 0xc
cmp dword [0x1033c6bc], 0
je 0x1013d50c
mov eax, dword [0x1033c6d0]
push 0x1ea
shr eax, 3
push str.cryptomem_sec.c
push eax
call sym.libcrypto_3.dll_CRYPTO_zalloc
add esp, 0xc
mov dword [0x1033c6c8], eax
test eax, eax
jne 0x1013d3d3
push 0x1eb
push str.cryptomem_sec.c
push str.assertion_failed:_sh.bittable___NULL
call sym.libcrypto_3.dll_OPENSSL_die
add esp, 0xc
cmp dword [0x1033c6c8], 0
je 0x1013d50c
mov eax, dword [0x1033c6d0]
push 0x1ef
shr eax, 3
push str.cryptomem_sec.c
push eax
call sym.libcrypto_3.dll_CRYPTO_zalloc
add esp, 0xc
mov dword [0x1033c6cc], eax
test eax, eax
jne 0x1013d41b
push 0x1f0
push str.cryptomem_sec.c
push str.assertion_failed:_sh.bitmalloc___NULL
call sym.libcrypto_3.dll_OPENSSL_die
add esp, 0xc
cmp dword [0x1033c6cc], 0
je 0x1013d50c
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ebx, dword [esp + 0x10]
mov eax, dword [0x1033c6b8]
push 4
push 0x3000
lea eax, [eax + ebx*2]
push eax
push 0
mov dword [0x1033c6b0], eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x1033c6ac], eax
test eax, eax
je 0x1013d50c
push ebp
push dword [0x1033c6c8]
add eax, ebx
push 0
push eax
mov dword [0x1033c6b4], eax
call fcn.1013d940
push dword [0x1033c6b4]
push dword [0x1033c6bc]
call fcn.1013cc30
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [esp + 0x4c]
add esp, 0x14
mov edi, 1
push eax
push edi
push ebx
push dword [0x1033c6ac]
call esi
mov ecx, dword [0x1033c6b8]
test eax, eax
mov ebp, 2
mov eax, ebx
cmove edi, ebp
dec ecx
neg eax
lea ecx, [ecx + ebx*2]
and ecx, eax
lea eax, [esp + 0x38]
push eax
mov eax, dword [0x1033c6ac]
push 1
push ebx
add eax, ecx
push eax
call esi
push dword [0x1033c6b8]
test eax, eax
push dword [0x1033c6b4]
cmove edi, ebp
call dword [sym.imp.KERNEL32.dll_VirtualLock]
test eax, eax
cmove edi, ebp
pop ebp
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x24
ret
lea eax, [ecx - 1]
test ecx, eax
je 0x1013d305
push 0x1d4
push str.cryptomem_sec.c
push str.assertion_failed:__minsize___minsize___1____0
call sym.libcrypto_3.dll_OPENSSL_die
add esp, 0xc
call fcn.1013ce20
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x24
ret