Function at 0x478c50
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 0x4efab5
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.004be1a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x108], ebx
call fcn.004be1a0
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 0x479397
push 0x512228
lea ecx, [esp + 0x34]
call fcn.004be740
mov byte [esp + 0x13], 0x13
mov cl, byte [esp + 0x28]
sub cl, 0x7f
push ecx
push 5
lea ecx, [esp + 0x34]
call fcn.004be5e0
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.004be1b0
lea ecx, [esp + 0x34]
call fcn.004be4d0
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 0x4792f4
lea ecx, [esp + 0x14]
call fcn.004c7a60
cmp eax, 1
jbe 0x479248
lea ecx, [esp + 0x14]
call fcn.004c7a60
mov ebp, eax
jmp 0x47924d
mov ebp, 1
lea ecx, [esp + 0x14]
call fcn.004c7a60
add eax, ebp
mov dword [esp + 0x24], eax
jns 0x479260
xor eax, eax
lea edx, [eax*8]
push edx
call fcn.004dee45
add esp, 4
mov ebp, eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ebp
push edi
push eax
call fcn.0047c7a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x38], eax
push ecx
push 1
push eax
lea ecx, [esp + 0x20]
call fcn.0047cd70
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.0047c7a0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004c7a80
mov eax, dword [esp + 0x18]
push eax
call fcn.004de1a0
mov ecx, dword [esp + 0x28]
add esp, 4
lea edx, [ebp + ecx*8]
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], edx
call fcn.004c7a60
lea eax, [ebp + eax*8 + 8]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
jmp 0x479376
xor cl, cl
cmp cl, 1
jae 0x479341
lea edx, [eax + 8]
lea ecx, [esp + 0x14]
push edx
push eax
push eax
call fcn.0047c7a0
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.0047cd70
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push eax
push ecx
push edi
call fcn.0047cda0
add esp, 0xc
jmp 0x479371
push eax
push eax
add eax, 0xfffffff8
lea ecx, [esp + 0x1c]
push eax
call fcn.0047c7a0
mov eax, dword [esp + 0x1c]
push eax
add eax, 0xfffffff8
push eax
push edi
call fcn.0047cdd0
lea edx, [esp + 0x3c]
lea eax, [edi + 8]
push edx
push eax
push edi
call fcn.0047cda0
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 0x4791de
jmp 0x47955f
push 0x512220
lea ecx, [esp + 0x34]
call fcn.004be740
mov byte [esp + 0x13], 0x13
mov cl, byte [esp + 0x28]
add cl, 0x11
push ecx
push 5
lea ecx, [esp + 0x34]
call fcn.004be5e0
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.004be1b0
lea ecx, [esp + 0x34]
call fcn.004be4d0
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 0x4794c4
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x479418
sub eax, ecx
sar eax, 3
cmp eax, 1
jbe 0x479418
lea ecx, [esp + 0x14]
call fcn.004c7a60
mov ebp, eax
jmp 0x47941d
mov ebp, 1
lea ecx, [esp + 0x14]
call fcn.004c7a60
add eax, ebp
mov dword [esp + 0x38], eax
jns 0x479430
xor eax, eax
lea edx, [eax*8]
push edx
call fcn.004dee45
add esp, 4
mov ebp, eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ebp
push edi
push eax
call fcn.0047c7a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], eax
push ecx
push 1
push eax
lea ecx, [esp + 0x20]
call fcn.0047cd70
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.0047c7a0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004c7a80
mov eax, dword [esp + 0x18]
push eax
call fcn.004de1a0
mov ecx, dword [esp + 0x3c]
add esp, 4
lea edx, [ebp + ecx*8]
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], edx
call fcn.004c7a60
lea eax, [ebp + eax*8 + 8]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
jmp 0x479546
xor cl, cl
cmp cl, 1
jae 0x479511
lea edx, [eax + 8]
lea ecx, [esp + 0x14]
push edx
push eax
push eax
call fcn.0047c7a0
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.0047cd70
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push eax
push ecx
push edi
call fcn.0047cda0
add esp, 0xc
jmp 0x479541
push eax
push eax
add eax, 0xfffffff8
lea ecx, [esp + 0x1c]
push eax
call fcn.0047c7a0
mov eax, dword [esp + 0x1c]
push eax
add eax, 0xfffffff8
push eax
push edi
call fcn.0047cdd0
lea edx, [esp + 0x3c]
lea eax, [edi + 8]
push edx
push eax
push edi
call fcn.0047cda0
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 0x4793aa
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 0x47957e
xor eax, eax
jmp 0x479587
mov eax, dword [esp + 0x2c]
sub eax, ecx
sar eax, 3
cmp eax, ebx
jge 0x47958d
xor eax, eax
lea edx, [eax*8]
push edx
call fcn.004dee45
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 0x4795f1
mov dword [esp + 0x10c], edi
cmp edi, ebx
mov byte [esp + 0x118], 3
je 0x4795d7
push ebp
mov ecx, edi
call fcn.004be1b0
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 0x4795b6
mov eax, dword [esp + 0x38]
mov ecx, esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
call fcn.00479690
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 0x47962c
mov ecx, esi
call fcn.004be2e0
add esi, 8
cmp esi, edi
jne 0x47961a
mov esi, dword [esp + 0x18]
push esi
call fcn.004de1a0
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.004be2e0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x108], 0xffffffff
call fcn.004be2e0
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