Function at 0x4788ee
Capabilities:
64-bit execution via heavens gate
Get number of processors
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20f4
push ebx
push esi
push edi
push edx
call 0x47890b
add byte [edi + edi + 0x4e], al
inc ebx
cmp edi, dword [ecx]
aas
push eax
dec ebx
push eax
add esp, 4
add edx, 0x1095b
call 0x478922
add byte [0x44413c48], dh
inc edx
xor cl, byte [ebx + eax*4 - 0x3c]
add al, 0x81
arpl bx, si
add byte [eax], al
pop edx
mov eax, 0x4d
mov word [ebp - 0x2030], ax
mov ecx, 0x42
mov word [ebp - 0x202e], cx
mov edx, 0x53
mov word [ebp - 0x202c], dx
mov eax, 0x65
mov word [ebp - 0x202a], ax
mov ecx, 0x72
mov word [ebp - 0x2028], cx
mov edx, 0x76
mov word [ebp - 0x2026], dx
mov eax, 0x69
mov word [ebp - 0x2024], ax
mov ecx, 0x63
mov word [ebp - 0x2022], cx
mov edx, 0x65
mov word [ebp - 0x2020], dx
mov eax, 0x2e
mov word [ebp - 0x201e], ax
mov ecx, 0x65
mov word [ebp - 0x201c], cx
mov edx, 0x78
mov word [ebp - 0x201a], dx
mov eax, 0x65
mov word [ebp - 0x2018], ax
xor ecx, ecx
mov word [ebp - 0x2016], cx
mov dword [ebp - 0x1064], 1
push edi
push ebx
add esp, 4
or edi, 0x14c7e
sub edi, 0xf01c
jmp 0x4789f1
jmp 0x4789f8
pop edi
push esi
sub esi, 0x107e0
pop esi
push edi
push ecx
add esp, 4
xor edi, 0xa12f
pop edi
imul edx, dword [ebp - 0x1064], 0x138
add edx, 0x55f3663b
imul eax, dword [ebp - 0x1064], 0x138
sub edx, eax
xor edx, 0xabe912
imul edx, dword [ebp - 0x1064]
imul ecx, dword [ebp - 0x1064], 0x138
sub edx, ecx
mov dword [ebp - 0x1068], edx
push ecx
xor ecx, 0x1544
jmp 0x478a54
pop ecx
push ecx
push edx
add esp, 4
or ecx, 0x139e3
call 0x478a70
add byte [ebp + 0x3a], al
inc ebx
xor dl, byte ds:[eax + 0x3c]
inc ebx
inc edx
inc eax
add esp, 4
and ecx, 0x146f1
pop ecx
mov dword [ebp - 0x10], 1
push eax
push esi
add esp, 4
or eax, 0x17463
pop eax
push ecx
push edx
add esp, 4
sub ecx, 0x4b4
or ecx, 0xb4b2
jmp 0x478aa6
pop ecx
push ecx
push edi
add esp, 4
sub ecx, 0x1810b
pop ecx
imul edx, dword [ebp - 0x10], 0x138
add edx, 0x55f3663b
imul eax, dword [ebp - 0x10], 0x138
sub edx, eax
xor edx, 0x153c
imul edx, dword [ebp - 0x10]
imul ecx, dword [ebp - 0x10], 0x138
sub edx, ecx
mov dword [ebp - 0x14], edx
push ecx
push edx
add esp, 4
call 0x478af3
add byte [ebx], bh
cmp dh, byte [edx + edi]
cmp al, byte [eax + 0x32]
inc edx
aaa
add esp, 4
sub ecx, 0x6f36
and ecx, 0x636e
pop ecx
push edi
sub edi, 0x4f7b
add edi, 0x1148d
pop edi
push edx
call 0x478b21
add byte [ebp + 0x48], cl
cmp edi, dword [ebx]
inc eax
xor esi, dword [0xc4833a37]
add al, 0x5a
push ebx
push edx
add esp, 4
or ebx, 0x150c0
or ebx, 0x1645f
sub ebx, 0x702f
and ebx, 0x9f25
pop ebx
mov dword [ebp - 0x2c], 1
push edi
call 0x478b5a
add byte [edi], dh
xor cl, byte [ecx + 0x38]
cmp eax, dword [ecx + 0x35]
inc eax
dec edi
add esp, 4
or edi, 0x9dc0
and edi, 0xe9bc
call 0x478b78
add byte [eax + edi + 0x35], cl
inc esp
xor eax, 0x393d424e
add esp, 4
pop edi
imul edx, dword [ebp - 0x2c], 0x138
add edx, 0x55f3663b
imul eax, dword [ebp - 0x2c], 0x138
sub edx, eax
xor edx, 0
imul edx, dword [ebp - 0x2c]
imul ecx, dword [ebp - 0x2c], 0x138
sub edx, ecx
mov dword [ebp - 0x30], edx
jmp 0x478d5d
mov ecx, dword [ebp - 0x1068]
mov edx, dword [ebp - 0x1064]
mov dword [ebp - 0x163c], ecx
mov dword [ebp - 0x1638], edx
push esi
or esi, 0xd36c
sub esi, 0x51ab
call 0x478d90
add byte [edi + 0x3c], al
xor eax, 0x33434f39
dec esp
add esp, 4
call 0x478da3
add byte [edi + esi], dh
dec esp
dec edx
dec ebx
xor edi, dword [ebx]
cmp dh, byte [ebx]
inc ebx
add esp, 4
pop esi
push esi
sub esi, 0x7b35
or esi, 0x17f9
pop esi
push ebx
or ebx, 0x10e9a
pop ebx
push ecx
push edi
add esp, 4
xor ecx, 0x351e
call 0x478dd5
add byte [edx + 0x43], al
dec ebx
cmp al, 0x4f
dec esi
add esp, 4
pop ecx
mov eax, dword [ebp - 0x30]
add eax, 0x138
imul ecx, dword [ebp - 0x2c], 0x138
add ecx, 0x55f3663b
imul edx, dword [ebp - 0x2c], 0x138
sub ecx, edx
xor eax, ecx
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1e64], eax
push eax
push ecx
add esp, 4
or eax, 0x783c
sub eax, 0xb0a1
xor eax, 0xf2f8
add eax, 0xbf60
pop eax
push esi
and esi, 0x3b71
add esi, 0x116dc
sub esi, 0x184b
pop esi
mov eax, dword [ebp - 0x163c]
add eax, 0x138
imul ecx, dword [ebp - 0x1638], 0x138
add ecx, 0x55f3663b
imul edx, dword [ebp - 0x1638], 0x138
sub ecx, edx
xor eax, ecx
imul eax, dword [ebp - 0x1638]
mov dword [ebp - 0x1e60], eax
mov eax, dword [ebp - 0x1e60]
mov dword [ebp - 0x1e68], eax
mov ecx, dword [ebp - 0x1e64]
cmp ecx, dword [ebp - 0x1e68]
jae 0x478e91
mov dword [ebp - 0x15ac], 1
jmp 0x478e9b
mov dword [ebp - 0x15ac], 0
mov dl, byte [ebp - 0x15ac]
mov byte [ebp - 0x3ad], dl
movzx eax, byte [ebp - 0x3ad]
test eax, eax
je 0x47bf0e
push esi
call 0x478ec6
add byte [edx], bh
xor edi, dword [esi]
aas
dec esi
dec esi
xor ecx, dword [ebx + 0x4c]
add esp, 4
add esi, 0xe53e
or esi, 0x76a3
or esi, 0x1278f
pop esi
push edi
push ecx
add esp, 4
sub edi, 0x9928
pop edi
push esi
push ecx
add esp, 4
and esi, 0x13dad
xor esi, 0x1858f
and esi, 0x1184d
call 0x478f0e
add byte [ebx + 0x44], al
cmp al, byte [edi + 0x3f]
cmp al, 0x41
inc esi
inc eax
add esp, 4
pop esi
push edi
or edi, 0x11eb3
pop edi
mov ecx, dword [ebp - 0x30]
add ecx, 0x138
imul edx, dword [ebp - 0x2c], 0x138
add edx, 0x55f3663b
imul eax, dword [ebp - 0x2c], 0x138
sub edx, eax
xor ecx, edx
imul ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1e6c], ecx
mov ecx, dword [ebp - 0x1e6c]
mov dword [ebp - 0x1e70], ecx
cmp dword [ebp - 0x1e70], 0x63c1
jne 0x479095
push edx
jmp 0x478f67
sub edx, 0xdfc5
or edx, 0x8292
call 0x478f81
add byte [0x4d434938], dh
dec edx
inc edi
add esp, 4
pop edx
push edi
or edi, 0xaab5
or edi, 0x14d60
pop edi
mov edx, dword [ebp - 0x14]
add edx, 0x138
imul eax, dword [ebp - 0x10], 0x138
add eax, 0x55f3663b
imul ecx, dword [ebp - 0x10], 0x138
sub eax, ecx
xor edx, eax
imul edx, dword [ebp - 0x10]
mov dword [ebp - 0x1e74], edx
mov edx, dword [ebp - 0x1e74]
mov dword [ebp - 0x1e78], edx
mov eax, dword [ebp - 0x1e78]
sub eax, 0x898
mov dword [ebp - 0x1e7c], eax
mov dword [ebp - 0x106c], 1
push eax
push eax
add esp, 4
jmp 0x478fee
call 0x478ffa
add byte [edx + 0x4b], al
xor cl, byte [edx + 0x32]
push eax
add esp, 4
add eax, 0xb13a
and eax, 0xfe1b
pop eax
push ebx
push ebx
add esp, 4
or ebx, 0x972a
pop ebx
imul ecx, dword [ebp - 0x106c], 0x138
add ecx, 0x55f3663b
imul edx, dword [ebp - 0x106c], 0x138
sub ecx, edx
xor ecx, dword [ebp - 0x1e7c]
imul ecx, dword [ebp - 0x106c]
imul eax, dword [ebp - 0x106c], 0x138
sub ecx, eax
mov dword [ebp - 0x1070], ecx
mov ecx, dword [ebp - 0x1070]
mov edx, dword [ebp - 0x106c]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
push edi
call 0x479073
add byte [esi + 0x3a], al
xor eax, dword [edx + 0x32]
dec esp
inc ecx
aas
cmp dword [ebx - 0x387efb3c], eax
adc al, 0xcb
add byte [eax], al
or edi, 0x8096
add byte [eax], al
pop edi
push eax
call 0x479091
add byte [ecx + 0x4e], al
inc ebp
dec ecx
inc eax
xor al, byte [ebx + 0x535804c4]
push ebx
push edi
add esp, 4
and ebx, 0x5d09
pop ebx
push esi
sub esi, 0xfdc1
or esi, 0x1642
or esi, 0xc50a
or al, ch
add byte [eax], al
pop esi
push ecx
push ebx
add esp, 4
and ecx, 0xf869
sub ecx, 0x7adb
pop ecx
mov eax, dword [ebp - 0x14]
add eax, 0x138
imul ecx, dword [ebp - 0x10], 0x138
add ecx, 0x55f3663b
imul edx, dword [ebp - 0x10], 0x138
sub ecx, edx
xor eax, ecx
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1e80], eax
mov eax, dword [ebp - 0x1e80]
mov dword [ebp - 0x1ef0], eax
lea ecx, [ebp - 0x9b0]
mov dword [ebp - 0x3e0], ecx
mov edx, dword [ebp - 0x3e0]
mov dword [edx + 4], 1
push ecx
push edi
add esp, 4
or ecx, 0xc2e8
call 0x479130
add byte [edi], bh
inc eax
aas
xor cl, byte [eax + 0x3e]
xor eax, dword [ecx + 0x3b]
add esp, 4
pop ecx
push ecx
and ecx, 0x6e49
invalid
loope 0x479190
mov dl, 0