Function at 0x478300
Capabilities:
Check for peb ntglobalflag flag
Contain obfuscated stackstrings
Get number of processors
Get process heap flags
Get process heap force flags
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4efc05
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf0
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov byte [esp + 0x3c], 0x13
mov byte [esp + 0x3d], 0x14
mov byte [esp + 0x3e], 0x15
mov byte [esp + 0x3f], 0x16
mov byte [esp + 0x40], 0x17
mov byte [esp + 0x41], 0x18
mov byte [esp + 0x42], 0x19
mov byte [esp + 0x43], 0x1a
mov byte [esp + 0x44], 0x1b
mov byte [esp + 0x45], 0x1c
mov byte [esp + 0x46], 0x1d
mov byte [esp + 0x47], 0x1e
mov byte [esp + 0x48], 0x1f
mov byte [esp + 0x49], 0x20
mov byte [esp + 0x4a], 0x21
mov byte [esp + 0x4b], 0x22
mov byte [esp + 0x4c], 0x23
mov byte [esp + 0x4d], 0x24
mov byte [esp + 0x4e], 0x25
mov byte [esp + 0x4f], 0x26
mov byte [esp + 0x50], 0x27
mov byte [esp + 0x51], 0x28
mov byte [esp + 0x52], 0x29
mov byte [esp + 0x53], 0x2a
mov byte [esp + 0x54], 0x2b
mov byte [esp + 0x55], 0x2c
mov byte [esp + 0x56], 0x2d
mov byte [esp + 0x57], 0x2e
mov byte [esp + 0x58], 0x2f
mov byte [esp + 0x59], 0x30
mov byte [esp + 0x5a], 0x31
mov byte [esp + 0x5b], 0x32
mov byte [esp + 0x5c], 0x33
mov byte [esp + 0x5d], 0x34
mov byte [esp + 0x5e], 0x35
mov byte [esp + 0x5f], 0x36
mov byte [esp + 0x60], 0x37
mov byte [esp + 0x61], 0x38
mov byte [esp + 0x62], 0x39
mov byte [esp + 0x63], 0x3a
mov byte [esp + 0x64], 0x3b
mov byte [esp + 0x65], 0x3c
mov byte [esp + 0x66], 0x3d
mov byte [esp + 0x67], 0x3e
mov byte [esp + 0x68], 0x3f
mov byte [esp + 0x69], 0x40
mov byte [esp + 0x6a], 0x41
mov byte [esp + 0x6b], 0x42
mov byte [esp + 0x6c], 0x43
mov byte [esp + 0x6d], 0x44
mov byte [esp + 0x6e], 0x45
mov byte [esp + 0x6f], 0x46
mov byte [esp + 0x70], 0x47
mov byte [esp + 0x71], 0x48
mov byte [esp + 0x72], 0x49
mov byte [esp + 0x73], 0x4a
mov byte [esp + 0x74], 0x4b
mov byte [esp + 0x75], 0x4c
mov byte [esp + 0x76], 0x4d
mov byte [esp + 0x77], 0x4e
mov byte [esp + 0x78], 0x4f
mov byte [esp + 0x79], 0x50
mov byte [esp + 0x7a], 0x51
mov byte [esp + 0x7b], 0x52
mov byte [esp + 0x7c], 0x53
mov byte [esp + 0x7d], 0x54
mov byte [esp + 0x7e], 0x55
mov byte [esp + 0x7f], 0x56
mov byte [esp + 0x80], 0x57
mov byte [esp + 0x81], 0x58
mov byte [esp + 0x82], 0x59
mov byte [esp + 0x83], 0x5a
mov byte [esp + 0x84], 0x5b
mov byte [esp + 0x85], 0x5c
mov byte [esp + 0x86], 0x5d
mov byte [esp + 0x87], 0x5e
mov dl, 0x68
mov cl, 0x69
mov al, 0x6a
xor ebx, ebx
mov byte [esp + 0x88], 0x5f
mov byte [esp + 0x89], 0x60
mov byte [esp + 0x8a], 0x61
mov byte [esp + 0x8b], 0x62
mov byte [esp + 0x8c], 0x63
mov byte [esp + 0x8d], 0x64
mov byte [esp + 0x8e], 0x65
mov byte [esp + 0x8f], 0x66
mov byte [esp + 0x90], 0x67
mov byte [esp + 0x91], dl
mov byte [esp + 0x92], cl
mov byte [esp + 0x93], al
mov byte [esp + 0x94], bl
mov byte [esp + 0x98], 0x13
mov byte [esp + 0x99], 0x14
mov byte [esp + 0x9a], 0x15
mov byte [esp + 0x9b], 0x16
mov byte [esp + 0x9c], 0x17
mov byte [esp + 0x9d], 0x18
mov byte [esp + 0x9e], 0x19
mov byte [esp + 0x9f], 0x1a
mov byte [esp + 0xa0], 0x1b
mov byte [esp + 0xa1], 0x1c
mov byte [esp + 0xa2], 0x1d
mov byte [esp + 0xa3], 0x1e
mov byte [esp + 0xa4], 0x1f
mov byte [esp + 0xa5], 0x20
mov byte [esp + 0xa6], 0x21
mov byte [esp + 0xa7], 0x22
mov byte [esp + 0xa8], 0x23
mov byte [esp + 0xa9], 0x24
mov byte [esp + 0xaa], 0x25
mov byte [esp + 0xab], 0x26
mov byte [esp + 0xac], 0x27
mov byte [esp + 0xad], 0x28
mov byte [esp + 0xae], 0x29
mov byte [esp + 0xaf], 0x2a
mov byte [esp + 0xb0], 0x2b
mov byte [esp + 0xb1], 0x2c
mov byte [esp + 0xb2], 0x2d
mov byte [esp + 0xb3], 0x2e
mov byte [esp + 0xb4], 0x2f
mov byte [esp + 0xb5], 0x30
mov byte [esp + 0xb6], 0x31
mov byte [esp + 0xb7], 0x32
mov byte [esp + 0xb8], 0x33
mov byte [esp + 0xb9], 0x34
mov byte [esp + 0xba], 0x35
mov byte [esp + 0xbb], 0x36
mov byte [esp + 0xbc], 0x37
mov byte [esp + 0xbd], 0x38
mov byte [esp + 0xbe], 0x39
mov byte [esp + 0xbf], 0x3a
mov byte [esp + 0xc0], 0x3b
mov byte [esp + 0xc1], 0x3c
mov byte [esp + 0xc2], 0x3d
mov byte [esp + 0xc3], 0x3e
mov byte [esp + 0xc4], 0x3f
mov byte [esp + 0xc5], 0x40
mov byte [esp + 0xc6], 0x41
mov byte [esp + 0xc7], 0x42
mov byte [esp + 0xc8], 0x43
mov byte [esp + 0xc9], 0x44
mov byte [esp + 0xca], 0x45
mov byte [esp + 0xcb], 0x46
mov byte [esp + 0xcc], 0x47
mov byte [esp + 0xcd], 0x48
mov byte [esp + 0xce], 0x49
mov byte [esp + 0xcf], 0x4a
mov byte [esp + 0xd0], 0x4b
mov byte [esp + 0xd1], 0x4c
mov byte [esp + 0xd2], 0x4d
mov byte [esp + 0xd3], 0x4e
mov byte [esp + 0xd4], 0x4f
mov byte [esp + 0xd5], 0x50
mov byte [esp + 0xd6], 0x51
mov byte [esp + 0xd7], 0x52
mov byte [esp + 0xee], cl
lea ecx, [esp + 0x2c]
mov byte [esp + 0xd8], 0x53
mov byte [esp + 0xd9], 0x54
mov byte [esp + 0xda], 0x55
mov byte [esp + 0xdb], 0x56
mov byte [esp + 0xdc], 0x57
mov byte [esp + 0xdd], 0x58
mov byte [esp + 0xde], 0x59
mov byte [esp + 0xdf], 0x5a
mov byte [esp + 0xe0], 0x5b
mov byte [esp + 0xe1], 0x5c
mov byte [esp + 0xe2], 0x5d
mov byte [esp + 0xe3], 0x5e
mov byte [esp + 0xe4], 0x5f
mov byte [esp + 0xe5], 0x60
mov byte [esp + 0xe6], 0x61
mov byte [esp + 0xe7], 0x62
mov byte [esp + 0xe8], 0x63
mov byte [esp + 0xe9], 0x64
mov byte [esp + 0xea], 0x65
mov byte [esp + 0xeb], 0x66
mov byte [esp + 0xec], 0x67
mov byte [esp + 0xed], dl
mov byte [esp + 0xef], al
mov byte [esp + 0xf0], 0x6b
mov byte [esp + 0xf1], 0x6c
mov byte [esp + 0xf2], 0x6d
mov byte [esp + 0xf3], 0x6e
mov byte [esp + 0xf4], 0x6f
mov byte [esp + 0xf5], 0x70
mov byte [esp + 0xf6], 0x71
mov byte [esp + 0xf7], 0x72
mov byte [esp + 0xf8], 0x73
mov byte [esp + 0xf9], 0x74
mov byte [esp + 0xfa], bl
call fcn.004be970
lea ecx, [esp + 0x30]
mov dword [esp + 0x108], ebx
call fcn.004be970
mov al, byte [esp + 0x13]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov al, byte [esi + 0xd]
mov byte [esp + 0x108], 2
cmp al, bl
mov dword [esp + 0x28], ebx
push 6
je 0x478a47
push 0x5122d8
lea ecx, [esp + 0x34]
call fcn.004bef10
mov byte [esp + 0x13], 0x13
mov cl, byte [esp + 0x28]
sub cl, 0x7f
push ecx
push 5
lea ecx, [esp + 0x34]
call fcn.004bedb0
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.004be980
lea ecx, [esp + 0x34]
call fcn.004beca0
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x20]
dec al
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x1c]
sub ecx, eax
mov edi, eax
sar ecx, 3
cmp ecx, 1
jae 0x4789a4
lea ecx, [esp + 0x14]
call fcn.004c82b0
cmp eax, 1
jbe 0x4788f8
lea ecx, [esp + 0x14]
call fcn.004c82b0
mov ebp, eax
jmp 0x4788fd
mov ebp, 1
lea ecx, [esp + 0x14]
call fcn.004c82b0
add eax, ebp
mov dword [esp + 0x24], eax
jns 0x478910
xor eax, eax
lea edx, [eax*8]
push edx
call fcn.004df7b5
add esp, 4
mov ebp, eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ebp
push edi
push eax
call fcn.0047be50
lea ecx, [esp + 0x30]
mov dword [esp + 0x38], eax
push ecx
push 1
push eax
lea ecx, [esp + 0x20]
call fcn.0047c420
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
add edx, 8
lea ecx, [esp + 0x14]
push edx
push eax
push edi
call fcn.0047be50
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004c82d0
mov eax, dword [esp + 0x18]
push eax
call fcn.004deb10
mov ecx, dword [esp + 0x28]
add esp, 4
lea edx, [ebp + ecx*8]
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], edx
call fcn.004c82b0
lea eax, [ebp + eax*8 + 8]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
jmp 0x478a26
xor cl, cl
cmp cl, 1
jae 0x4789f1
lea edx, [eax + 8]
lea ecx, [esp + 0x14]
push edx
push eax
push eax
call fcn.0047be50
lea eax, [esp + 0x30]
mov edx, 1
push eax
mov eax, dword [esp + 0x20]
mov ecx, eax
sub ecx, edi
sar ecx, 3
sub edx, ecx
lea ecx, [esp + 0x18]
push edx
push eax
call fcn.0047c420
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push eax
push ecx
push edi
call fcn.0047c450
add esp, 0xc
jmp 0x478a21
push eax
push eax
add eax, 0xfffffff8
lea ecx, [esp + 0x1c]
push eax
call fcn.0047be50
mov eax, dword [esp + 0x1c]
push eax
add eax, 0xfffffff8
push eax
push edi
call fcn.0047c480
lea edx, [esp + 0x3c]
lea eax, [edi + 8]
push edx
push eax
push edi
call fcn.0047c450
add esp, 0x18
add dword [esp + 0x1c], 8
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
mov al, byte [esp + eax + 0x98]
cmp al, bl
mov byte [esp + 0x13], al
jne 0x47888e
jmp 0x478c0f
push 0x5122d0
lea ecx, [esp + 0x34]
call fcn.004bef10
mov byte [esp + 0x13], 0x13
mov cl, byte [esp + 0x28]
add cl, 0x11
push ecx
push 5
lea ecx, [esp + 0x34]
call fcn.004bedb0
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.004be980
lea ecx, [esp + 0x34]
call fcn.004beca0
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x20]
dec al
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x1c]
sub ecx, eax
mov edi, eax
sar ecx, 3
cmp ecx, 1
jae 0x478b74
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x478ac8
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x478ac8
lea ecx, [esp + 0x14]
call fcn.004c82b0
mov ebp, eax
jmp 0x478acd
mov ebp, 1
lea ecx, [esp + 0x14]
call fcn.004c82b0
add eax, ebp
mov dword [esp + 0x38], eax
jns 0x478ae0
xor eax, eax
lea edx, [eax*8]
push edx
call fcn.004df7b5
add esp, 4
mov ebp, eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ebp
push edi
push eax
call fcn.0047be50
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], eax
push ecx
push 1
push eax
lea ecx, [esp + 0x20]
call fcn.0047c420
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add edx, 8
lea ecx, [esp + 0x14]
push edx
push eax
push edi
call fcn.0047be50
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004c82d0
mov eax, dword [esp + 0x18]
push eax
call fcn.004deb10
mov ecx, dword [esp + 0x3c]
add esp, 4
lea edx, [ebp + ecx*8]
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], edx
call fcn.004c82b0
lea eax, [ebp + eax*8 + 8]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
jmp 0x478bf6
xor cl, cl
cmp cl, 1
jae 0x478bc1
lea edx, [eax + 8]
lea ecx, [esp + 0x14]
push edx
push eax
push eax
call fcn.0047be50
lea eax, [esp + 0x30]
mov edx, 1
push eax
mov eax, dword [esp + 0x20]
mov ecx, eax
sub ecx, edi
sar ecx, 3
sub edx, ecx
lea ecx, [esp + 0x18]
push edx
push eax
call fcn.0047c420
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push eax
push ecx
push edi
call fcn.0047c450
add esp, 0xc
jmp 0x478bf1
push eax
push eax
add eax, 0xfffffff8
lea ecx, [esp + 0x1c]
push eax
call fcn.0047be50
mov eax, dword [esp + 0x1c]
push eax
add eax, 0xfffffff8
push eax
push edi
call fcn.0047c480
lea edx, [esp + 0x3c]
lea eax, [edi + 8]
push edx
push eax
push edi
call fcn.0047c450
add esp, 0x18
add dword [esp + 0x1c], 8
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
mov al, byte [esp + eax + 0x3c]
cmp al, bl
mov byte [esp + 0x13], al
jne 0x478a5a
mov cl, byte [esp + 0x14]
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x34], esp
mov dword [esp + 0x38], edi
mov byte [edi], cl
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x478c2e
xor eax, eax
jmp 0x478c37
mov eax, dword [esp + 0x2c]
sub eax, ecx
sar eax, 3
cmp eax, ebx
jge 0x478c3d
xor eax, eax
lea edx, [eax*8]
push edx
call fcn.004df7b5
mov dword [edi + 4], eax
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
add esp, 4
mov edi, eax
cmp ebp, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], edi
je 0x478ca1
mov dword [esp + 0x10c], edi
cmp edi, ebx
mov byte [esp + 0x118], 3
je 0x478c87
push ebp
mov ecx, edi
call fcn.004be980
mov al, byte [ebp + 4]
mov byte [edi + 4], al
mov eax, dword [esp + 0x48]
add ebp, 8
add edi, 8
cmp ebp, eax
mov byte [esp + 0x118], 2
mov dword [esp + 0x34], edi
jne 0x478c66
mov eax, dword [esp + 0x38]
mov ecx, esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
call fcn.00478d40
mov esi, dword [esp + 0x18]
mov ebp, eax
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x108], 1
cmp esi, eax
mov edi, eax
je 0x478cdc
mov ecx, esi
call fcn.004beab0
add esi, 8
cmp esi, edi
jne 0x478cca
mov esi, dword [esp + 0x18]
push esi
call fcn.004deb10
add esp, 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x108], bl
call fcn.004beab0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x108], 0xffffffff
call fcn.004beab0
mov ecx, dword [esp + 0x100]
pop edi
mov ax, bp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xfc
ret