Function at 0x501244
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Get number of processors
Get process heap flags
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 8], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00407dc0
xor eax, eax
push ebp
push 0x501c8d
push dword fs:[eax]
mov dword fs:[eax], esp
mov bl, 1
mov dword [edi], 0x64
mov dword [edi + 4], 0
lea eax, [edi + 8]
mov edx, 0x501cac
call fcn.004060dc
lea eax, [edi + 0xc]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x10], 0x65
mov dword [edi + 0x14], 0
lea eax, [edi + 0x18]
mov edx, 0x501cc8
call fcn.004060dc
lea eax, [edi + 0x1c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x20], 0x66
mov dword [edi + 0x24], 0
lea eax, [edi + 0x28]
mov edx, 0x501ce8
call fcn.004060dc
lea eax, [edi + 0x2c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x30], 0x67
mov dword [edi + 0x34], 0
lea eax, [edi + 0x38]
mov edx, 0x501d04
call fcn.004060dc
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x40], 0x68
mov dword [edi + 0x44], 0
lea eax, [edi + 0x48]
mov edx, 0x501d28
call fcn.004060dc
lea eax, [edi + 0x4c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x50], 0x69
mov dword [edi + 0x54], 0
lea eax, [edi + 0x58]
mov edx, 0x501d40
call fcn.004060dc
lea eax, [edi + 0x5c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x60], 0x6a
mov dword [edi + 0x64], 0
lea eax, [edi + 0x68]
mov edx, 0x501d5c
call fcn.004060dc
lea eax, [edi + 0x6c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x70], 0x6b
mov dword [edi + 0x74], 0
lea eax, [edi + 0x78]
mov edx, 0x501d7c
call fcn.004060dc
lea eax, [edi + 0x7c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x80], 0x6c
mov dword [edi + 0x84], 0
lea eax, [edi + 0x88]
mov edx, 0x501d98
call fcn.004060dc
lea eax, [edi + 0x8c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x90], 0x6d
mov dword [edi + 0x94], 0
lea eax, [edi + 0x98]
mov edx, 0x501dbc
call fcn.004060dc
lea eax, [edi + 0x9c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0xa0], 0x6e
mov dword [edi + 0xa4], 0
lea eax, [edi + 0xa8]
mov edx, 0x501dd8
call fcn.004060dc
lea eax, [edi + 0xac]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0xb0], 0x6f
mov dword [edi + 0xb4], 0
lea eax, [edi + 0xb8]
mov edx, 0x501dfc
call fcn.004060dc
lea eax, [edi + 0xbc]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0xc0], 0x70
mov dword [edi + 0xc4], 0
lea eax, [edi + 0xc8]
mov edx, 0x501e14
call fcn.004060dc
lea eax, [edi + 0xcc]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0xd0], 0x71
mov dword [edi + 0xd4], 0
lea eax, [edi + 0xd8]
mov edx, 0x501e30
call fcn.004060dc
lea eax, [edi + 0xdc]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0xe0], 0x76
mov dword [edi + 0xe4], 0
lea eax, [edi + 0xe8]
mov edx, 0x501e48
call fcn.004060dc
lea eax, [edi + 0xec]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0xf0], 0x77
mov dword [edi + 0xf4], 0
lea eax, [edi + 0xf8]
mov edx, 0x501e60
call fcn.004060dc
lea eax, [edi + 0xfc]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x100], 0x1f7
mov dword [edi + 0x104], 0
lea eax, [edi + 0x108]
mov edx, 0x501e80
call fcn.004060dc
lea eax, [edi + 0x10c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x110], 0x74
mov dword [edi + 0x114], 0
lea eax, [edi + 0x118]
mov edx, 0x501ea8
call fcn.004060dc
lea eax, [edi + 0x11c]
xor edx, edx
call fcn.004060dc
mov dword [edi + 0x120], 0xc9
mov dword [edi + 0x124], 0
lea eax, [edi + 0x128]
mov edx, 0x501ecc
call fcn.004060dc
lea eax, [edi + 0x12c]
xor edx, edx
call fcn.004060dc
xor edx, edx
push ebp
push 0x501c4d
push dword fs:[edx]
mov dword fs:[edx], esp
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push edx
push eax
push 0
push 4
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004fe918
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, 4
adc edx, 0
push edx
push eax
push 0
push 4
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004fea38
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, 8
adc edx, 0
push edx
push eax
push 0
push 4
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.004fea38
mov dword [ebp - 0x30], 0xc
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov esi, dword [ebp - 0x18]
dec esi
test esi, esi
jl 0x501c43
inc esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
push edx
push eax
push 0
push 4
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.004fea38
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 4
adc edx, 0
push edx
push eax
push 0
push 4
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 4]
call fcn.004fea38
mov eax, dword [ebp - 0x20]
cmp eax, 0x6d
jg 0x5016ee
je 0x501976
add eax, 0xffffff9c
cmp eax, 8
ja case.default.0x5016c3
jmp dword [eax*4 + 0x5016ca]
cmp eax, 0x74
jg 0x50171c
je 0x501b7e
sub eax, 0x6e
je 0x5019b7
dec eax
je 0x5019f8
dec eax
je 0x501a39
dec eax
je 0x501a7a
jmp case.default.0x5016c3
sub eax, 0x76
je 0x501abb
dec eax
je 0x501afc
sub eax, 0x52
je 0x501bd5
sub eax, 0x12e
je 0x501b3d
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0xc]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x1c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x2c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x3c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x4c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x5c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x6c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x7c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x8c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x9c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0xac]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0xbc]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0xcc]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0xdc]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0xec]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0xfc]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [edi + 0x10c]
mov eax, dword [ebp - 4]
call fcn.004fe918
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.004fea38
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
lea eax, [ebp - 0x44]
call fcn.0040d3c0
mov edx, dword [ebp - 0x44]
lea eax, [edi + 0x11c]
call fcn.004060dc
jmp case.default.0x5016c3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
add eax, 8
adc edx, 0
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, 8
sbb edx, 0
push edx
push eax
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.004fea38
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
lea eax, [ebp - 0x48]
call fcn.0040d3c0
mov edx, dword [ebp - 0x48]
lea eax, [edi + 0x12c]
call fcn.004060dc
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
add eax, dword [ebp - 0x28]
adc edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
dec esi
jne 0x501651
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x501c5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x501c94
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.004060d4
lea eax, [ebp - 8]
call fcn.004060cc
lea eax, [ebp - 4]
mov edx, dword [0x4fe5b4]
call fcn.00407d5c
ret