Function at 0x521050
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov byte [ebp - 1], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x30], xmm0
push 0x74
push 0
mov eax, dword [ebp + 8]
add eax, 4
push eax
call fcn.00522010
add esp, 0xc
call sym.MIDNIGHTLoader.exe_public:_static_unsigned_int___cdecl_asmjit::CpuInfo::detectHwThreadsCount_void_
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x64], eax
lea edx, [ebp - 0x40]
push edx
push 0
push 0
call sym.MIDNIGHTLoader.exe_public:_static_void___cdecl_asmjit::X86CpuUtil::callCpuId_unsigned_int__unsigned_int__union_asmjit::X86CpuId__
add esp, 0xc
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x14], eax
push 4
lea ecx, [ebp - 0x3c]
push ecx
mov edx, dword [ebp + 8]
add edx, 4
push edx
call fcn.00522170
add esp, 0xc
push 4
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp + 8]
add ecx, 8
push ecx
call fcn.00522170
add esp, 0xc
push 4
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ebp + 8]
add eax, 0xc
push eax
call fcn.00522170
add esp, 0xc
mov dword [ebp - 0xc], 0
jmp 0x5210e7
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 4
jae 0x521125
mov edx, dword [ebp + 8]
add edx, 4
push edx
mov eax, dword [ebp - 0xc]
shl eax, 4
add eax, 0x56b4f0
push eax
call fcn.00521890
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x521123
mov edx, dword [ebp - 0xc]
shl edx, 4
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x56b4f0]
mov dword [eax + 0x54], ecx
jmp 0x521125
jmp 0x5210de
cmp dword [ebp - 0x14], 1
jb 0x521478
lea edx, [ebp - 0x40]
push edx
push 0
push 1
call sym.MIDNIGHTLoader.exe_public:_static_void___cdecl_asmjit::X86CpuUtil::callCpuId_unsigned_int__unsigned_int__union_asmjit::X86CpuId__
add esp, 0xc
mov eax, dword [ebp - 0x40]
shr eax, 8
and eax, 0xf
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x58], eax
mov edx, dword [ebp - 0x40]
shr edx, 4
and edx, 0xf
mov eax, dword [ebp + 8]
mov dword [eax + 0x5c], edx
mov ecx, dword [ebp - 0x40]
and ecx, 0xf
mov edx, dword [ebp + 8]
mov dword [edx + 0x60], ecx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x58], 0xf
jne 0x5211a2
mov ecx, dword [ebp - 0x40]
shr ecx, 0x14
and ecx, 0xff
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x58]
mov eax, dword [ebp + 8]
mov dword [eax + 0x58], ecx
mov ecx, dword [ebp - 0x40]
shr ecx, 0x10
and ecx, 0xf
shl ecx, 4
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x5c]
mov eax, dword [ebp + 8]
mov dword [eax + 0x5c], ecx
mov ecx, dword [ebp - 0x40]
shr ecx, 0xc
and ecx, 3
mov edx, dword [ebp + 8]
mov dword [edx + 0x78], ecx
mov eax, dword [ebp - 0x3c]
and eax, 0xff
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x7c], eax
mov edx, dword [ebp - 0x3c]
shr edx, 8
and edx, 0xff
shl edx, 3
mov eax, dword [ebp + 8]
mov dword [eax + 0x80], edx
mov ecx, dword [ebp - 0x3c]
shr ecx, 0x10
and ecx, 0xff
mov edx, dword [ebp + 8]
mov dword [edx + 0x84], ecx
mov eax, dword [ebp - 0x38]
and eax, 1
je 0x5211fe
push 0x14
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x38]
and ecx, 2
je 0x521210
push 0x1f
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x38]
and edx, 8
je 0x521222
push 0x1a
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x200
je 0x521236
push 0x15
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x38]
and ecx, 0x2000
je 0x52124b
push 6
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x38]
and edx, 0x80000
je 0x521260
push 0x17
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x100000
je 0x521274
push 0x18
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x38]
and ecx, sym.MIDNIGHTLoader.exe_c_Aqe.oeOBj__h0DFNZ0W17a_Igqc_DMW2
je 0x521289
push 0x1b
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x38]
and edx, 0x800000
je 0x52129e
push 0x1c
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x2000000
je 0x5212b2
push 0x1e
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x38]
and ecx, 0x4000000
je 0x5212c7
push 0x23
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x38]
and edx, 0x8000000
je 0x5212dc
push 0x24
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x40000000
je 0x5212f0
push 0x20
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x34]
and ecx, 0x10
je 0x521302
push 2
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x34]
and edx, 0x100
je 0x521317
push 5
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x34]
and eax, 0x8000
je 0x52132b
push 4
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x34]
and ecx, 0x80000
je 0x521340
push 7
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x34]
and edx, 0x800000
je 0x521355
push 0xe
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x34]
and eax, 0x1000000
je 0x521369
push 0xc
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x34]
and ecx, 0x2000000
je 0x52138b
push 0x12
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov dword [ebp - 0x18], eax
push 0xf
mov ecx, dword [ebp - 0x18]
call fcn.00520fd0
mov edx, dword [ebp - 0x34]
and edx, 0x4000000
je 0x5213ad
push 0x12
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov dword [ebp - 0x1c], eax
push 0x13
mov ecx, dword [ebp - 0x1c]
call fcn.00520fd0
mov eax, dword [ebp - 0x34]
and eax, 0x10000000
je 0x5213c1
push 1
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x64], 1
jne 0x5213e7
mov edx, dword [ebp + 8]
cmp dword [edx + 0x54], 2
jne 0x5213e7
mov eax, dword [ebp - 0x34]
and eax, 0x10000000
je 0x5213e7
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x64], 2
mov edx, dword [ebp - 0x38]
and edx, 0xc000000
cmp edx, 0xc000000
jne 0x521406
lea eax, [ebp - 0x30]
push eax
push 0
call fcn.00521030
add esp, 8
mov ecx, dword [ebp - 0x38]
and ecx, 0x10000000
je 0x521478
mov edx, dword [ebp - 0x30]
and edx, 6
cmp edx, 6
jne 0x521478
push 0x25
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x800
je 0x52143a
push 0x2a
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x38]
and ecx, 0x4000
je 0x52144f
push 0x28
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x38]
and edx, 0x10000
je 0x521464
push 0x29
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x20000000
je 0x521478
push 0x27
mov ecx, dword [ebp + 8]
call fcn.00520fd0
cmp dword [ebp - 0x14], 7
jb 0x521640
lea ecx, [ebp - 0x40]
push ecx
push 0
push 7
call sym.MIDNIGHTLoader.exe_public:_static_void___cdecl_asmjit::X86CpuUtil::callCpuId_unsigned_int__unsigned_int__union_asmjit::X86CpuId__
add esp, 0xc
mov edx, dword [ebp - 0x3c]
and edx, 1
je 0x5214a4
push 0x31
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x3c]
and eax, 8
je 0x5214b6
push 0x2b
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x3c]
and ecx, 0x10
je 0x5214c8
push 0x2d
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x3c]
and edx, 0x100
je 0x5214dd
push 0x2c
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x3c]
and eax, 0x200
je 0x5214f1
push 0x32
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x3c]
and ecx, 0x800
je 0x521506
push 0x2e
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x3c]
and edx, 0x4000
je 0x521515
mov byte [ebp - 1], 1
mov eax, dword [ebp - 0x3c]
and eax, 0x40000
je 0x521529
push 0x21
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x3c]
and ecx, 0x80000
je 0x52153e
push 0x2f
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x3c]
and edx, 0x800000
je 0x521553
push 8
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x3c]
and eax, 0x20000000
je 0x521567
push 0x22
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x38]
and ecx, 1
je 0x521579
push 0xa
mov ecx, dword [ebp + 8]
call fcn.00520fd0
push 0x25
mov ecx, dword [ebp + 8]
call fcn.00521860
movzx edx, al
test edx, edx
je 0x52159c
mov eax, dword [ebp - 0x3c]
and eax, 0x20
je 0x52159c
push 0x26
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x3c]
and ecx, 0x10000
je 0x521640
mov edx, dword [ebp - 0x30]
and edx, 0x76
cmp edx, 0x76
jne 0x521640
push 0x33
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x3c]
and eax, 0x20000
je 0x5215d8
push 0x37
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x3c]
and ecx, 0x4000000
je 0x5215ed
push 0x35
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x3c]
and edx, 0x8000000
je 0x521602
push 0x36
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x3c]
and eax, 0x10000000
je 0x521616
push 0x34
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x3c]
and ecx, 0x40000000
je 0x52162b
push 0x38
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x3c]
and edx, 0x80000000
je 0x521640
push 0x39
mov ecx, dword [ebp + 8]
call fcn.00520fd0
cmp dword [ebp - 0x14], 0xd
jb 0x521676
movzx eax, byte [ebp - 1]
test eax, eax
je 0x521676
lea ecx, [ebp - 0x40]
push ecx
push 0
push 0xd
call sym.MIDNIGHTLoader.exe_public:_static_void___cdecl_asmjit::X86CpuUtil::callCpuId_unsigned_int__unsigned_int__union_asmjit::X86CpuId__
add esp, 0xc
mov edx, dword [ebp - 0x40]
and edx, dword [ebp - 0x30]
and edx, 0x18
cmp edx, 0x18
jne 0x521676
push 0x30
mov ecx, dword [ebp + 8]
call fcn.00520fd0
lea eax, [ebp - 0x40]
push eax
push 0
push 0x80000000
call sym.MIDNIGHTLoader.exe_public:_static_void___cdecl_asmjit::X86CpuUtil::callCpuId_unsigned_int__unsigned_int__union_asmjit::X86CpuId__
add esp, 0xc
mov dword [ebp - 0x20], 0x80000004
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x40]
push edx
call fcn.0051d6e0
add esp, 8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
add eax, 0x14
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0x80000001
jmp 0x5216be
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x24]
ja 0x521834
lea eax, [ebp - 0x40]
push eax
push 0
mov ecx, dword [ebp - 0xc]
push ecx
call sym.MIDNIGHTLoader.exe_public:_static_void___cdecl_asmjit::X86CpuUtil::callCpuId_unsigned_int__unsigned_int__union_asmjit::X86CpuId__
add esp, 0xc
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
add eax, 0x7fffffff
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
ja case.default.0x5216fa
mov ecx, dword [ebp - 0x10]
jmp dword [ecx*4 + 0x521848]
mov edx, dword [ebp - 0x38]
and edx, 1
je 0x521713
push 0xb
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x20
je 0x521725
push 0x1d
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x38]
and ecx, 0x40
je 0x521737
push 0x16
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x38]
and edx, 0x80
je 0x52174c
push 0x19
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x38]
and eax, 0x100
je 0x521760
push 9
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x34]
and ecx, 0x100000
je 0x521775
push 0
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x34]
and edx, 0x200000
je 0x52178a
push 0xd
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov eax, dword [ebp - 0x34]
and eax, sym.MIDNIGHTLoader.exe_c_Aqe.oeOBj__h0DFNZ0W17a_Igqc_DMW2
je 0x52179e
push 0xf
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov ecx, dword [ebp - 0x34]
and ecx, 0x8000000
je 0x5217b3
push 3
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov edx, dword [ebp - 0x34]
and edx, 0x40000000
je 0x5217d5
push 0x11
mov ecx, dword [ebp + 8]
call fcn.00520fd0
mov dword [ebp - 0x28], eax
push 0xf
mov ecx, dword [ebp - 0x28]
call fcn.00520fd0
mov eax, dword [ebp - 0x34]
and eax, 0x80000000
je 0x5217e9
push 0x10
mov ecx, dword [ebp + 8]
call fcn.00520fd0
jmp case.default.0x5216fa
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x40]
mov dword [ecx], edx
mov eax, dword [ebp - 8]
add eax, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x3c]
mov dword [ecx], edx
mov eax, dword [ebp - 8]
add eax, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x38]
mov dword [ecx], edx
mov eax, dword [ebp - 8]
add eax, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x34]
mov dword [ecx], edx
mov eax, dword [ebp - 8]
add eax, 4
mov dword [ebp - 8], eax
jmp 0x5216b5
mov ecx, dword [ebp + 8]
add ecx, 0x14
push ecx
call fcn.00521940
add esp, 4
mov esp, ebp
pop ebp
ret