Function at 0x404523
Capabilities:
Get number of processors
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push edi
add edi, 0x14ba5
xor edi, 0x171f5
pop edi
push edi
push ebx
add esp, 4
add edi, 0xe888
pop edi
push eax
call 0x40143e
add byte [ebx], dh
dec esi
cmp dword [ecx + 0x3e], ecx
inc eax
dec ebp
add esp, 4
add eax, 0x6289
pop eax
mov edx, dword [ebp - 0x30]
add edx, 0x70
imul eax, dword [ebp - 0x2c], 0x70
add eax, 0x44f3663b
imul ecx, dword [ebp - 0x2c], 0x70
sub eax, ecx
xor edx, eax
imul edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1dc4], edx
push edi
and edi, 0xb31e
call 0x40147f
add byte [edx], bh
inc ebp
xor eax, 0x3e323239
inc edx
xor eax, 0x8104c483
out dx, eax
inc ecx
insb byte es:[edi], dx
add dword [eax], eax
call 0x401497
add byte [0x4e384f32], dh
cmp eax, 0x833e3b42
les eax, [edi + ebx*2]
mov edx, dword [ebp - 0x1dc4]
add edx, 1
mov dword [ebp - 0x15a4], edx
push eax
push ecx
add esp, 4
or eax, 0x3242
sub eax, 0x6fd
call 0x4014c9
add byte [ebp + 0x4c], al
dec ebp
inc ebx
aaa
inc ebx
inc eax
inc edi
add esp, 4
call 0x4014d8
add byte [eax + 0x3d], cl
cmp eax, 0x834d4f4a
les eax, [eax + ebx*2]
push esi
push edx
add esp, 4
jmp 0x4014e7
and esi, 0x170bb
add esi, 0x14832
and esi, 0x7b13
pop esi
push eax
sub eax, 0x24e2
xor eax, 0xfa44
or eax, 0x13f14
pop eax
imul eax, dword [ebp - 0x2c], 0x70
add eax, 0x44f3663b
imul ecx, dword [ebp - 0x2c], 0x70
sub eax, ecx
xor eax, dword [ebp - 0x15a4]
imul eax, dword [ebp - 0x2c]
imul edx, dword [ebp - 0x2c], 0x70
sub eax, edx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x15a4]
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1e8c], eax
mov dword [ebp - 0x1628], 1
push esi
push eax
add esp, 4
jmp 0x401554
pop esi
push edx
push ebx
add esp, 4
sub edx, 0xe544
jmp 0x401567
pop edx
push esi
call 0x401578
add byte [eax], bh
xor al, 0x32
cmp al, 0x3a
inc esp
xor eax, 0xc483453c
add al, 0x5e
imul ecx, dword [ebp - 0x1628], 0x70
add ecx, 0x44f3663b
imul edx, dword [ebp - 0x1628], 0x70
sub ecx, edx
xor ecx, dword [ebp - 0x1e8c]
imul ecx, dword [ebp - 0x1628]
imul eax, dword [ebp - 0x1628], 0x70
sub ecx, eax
mov dword [ebp - 0x162c], ecx
mov ecx, dword [ebp - 0x1064]
mov edx, dword [ebp - 0x1060]
mov dword [ebp - 0x1634], ecx
mov dword [ebp - 0x1630], edx
push ebx
push esi
add esp, 4
add ebx, 0x12df5
call 0x4015de
add byte [eax + 0x43], al
dec esi
inc eax
inc eax
push eax
aaa
add esp, 4
xor ebx, 0x60f8
pop ebx
push eax
xor eax, 0x1793
pop eax
push edx
sub edx, 0x87af
pop edx
push esi
push ebx
add esp, 4
call 0x40160b
add byte [ecx], bh
cmp byte [edx], bh
xor bh, byte [eax]
inc ebx
xor eax, dword [eax - 0x7d]
les eax, [esi + ebx*2]
push edi
push edx
add esp, 4
xor edi, 0x156bc
jmp 0x401621
pop edi
push ecx
sub ecx, 0x1267a
pop ecx
mov eax, dword [ebp - 0x30]
add eax, 0x70
imul ecx, dword [ebp - 0x2c], 0x70
add ecx, 0x44f3663b
imul edx, dword [ebp - 0x2c], 0x70
sub ecx, edx
xor eax, ecx
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1e94], eax
push edx
or edx, 0x4979
or edx, 0x955c
or edx, 0x6687
pop edx
push eax
push esi
add esp, 4
call 0x401674
add byte [ebx + 0x3d], cl
inc ebx
inc esi
xor al, 0x45
inc ebx
inc edi
push eax
add esp, 4
sub eax, 0x13635
pop eax
mov eax, dword [ebp - 0x1634]
add eax, 0x70
imul ecx, dword [ebp - 0x1630], 0x70
add ecx, 0x44f3663b
imul edx, dword [ebp - 0x1630], 0x70
sub ecx, edx
xor eax, ecx
imul eax, dword [ebp - 0x1630]
mov dword [ebp - 0x1e90], eax
mov eax, dword [ebp - 0x1e90]
mov dword [ebp - 0x1e98], eax
mov ecx, dword [ebp - 0x1e94]
cmp ecx, dword [ebp - 0x1e98]
jae 0x4016d2
mov dword [ebp - 0x15a8], 1
jmp 0x4016dc
mov dword [ebp - 0x15a8], 0
mov dl, byte [ebp - 0x15a8]
mov byte [ebp - 0x3ad], dl
movzx eax, byte [ebp - 0x3ad]
test eax, eax
je 0x4044bb
push edx
push esi
add esp, 4
call 0x401709
add byte [edx + 0x3f], al
dec edi
inc edi
inc edi
cmp eax, 0x8104c483
retf 0x29d3
aas
inc ebp
add esp, 4
add esp, 4
pop ebx
imul eax, dword [ebp - 0x1098], 0x70
add eax, 0x44f3663b
imul ecx, dword [ebp - 0x1098], 0x70
sub eax, ecx
xor eax, dword [ebp - 0x1fa0]
imul eax, dword [ebp - 0x1098]
imul edx, dword [ebp - 0x1098], 0x70
sub eax, edx
mov dword [ebp - 0x109c], eax
mov eax, dword [ebp - 0x109c]
mov ecx, dword [ebp - 0x1098]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
push edi
push edi
add esp, 4
or edi, 0x8746
pop edi
push ecx
and ecx, 0x155e
pop ecx
push eax
push edi
add esp, 4
jmp 0x4033e2
call 0x4033ee
add byte [esi], bh
inc edi
xor al, 0x4e
cmp ecx, dword [eax - 0x7d]
les eax, [eax + ebx*2]
mov edx, dword [ebp - 0x30]
add edx, 0x70
imul eax, dword [ebp - 0x2c], 0x70
add eax, 0x44f3663b
imul ecx, dword [ebp - 0x2c], 0x70
sub eax, ecx
xor edx, eax
imul edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1fa4], edx
mov edx, dword [ebp - 0x1fa4]
mov dword [ebp - 0x1fa8], edx
cmp dword [ebp - 0x1fa8], 0xdd8
jne 0x403553
push esi
push edi
add esp, 4
or esi, 0xb9e4
pop esi
push ebx
push eax
add esp, 4
and ebx, 0xf845
jmp 0x40344c
xor ebx, 0xb8d7
or ebx, 0x2195
pop ebx
push edi
and edi, 0x1601a
pop edi
push esi
sub esi, 0x153e5
sub esi, 0xbee8
sub esi, 0x7de0
add esi, 0xa125
pop esi
push ecx
push eax
add esp, 4
add ecx, 0x150f1
and ecx, 0x7db7
add ecx, 0x517a
pop ecx
mov eax, dword [ebp - 0x14]
add eax, 0x70
imul ecx, dword [ebp - 0x10], 0x70
add ecx, 0x44f3663b
imul edx, dword [ebp - 0x10], 0x70
sub ecx, edx
xor eax, ecx
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x1fac], eax
mov eax, dword [ebp - 0x1fac]
mov dword [ebp - 0x1fb0], eax
mov ecx, dword [ebp - 0x1fb0]
sub ecx, 0xbb8
mov dword [ebp - 0x1fb4], ecx
mov dword [ebp - 0x10a0], 1
push esi
or esi, 0x6301
pop esi
push edi
sub edi, 0x4982
call 0x4034f9
add byte [edx], dh
xor eax, 0x33424d34
inc edi
add esp, 4
or edi, 0x15001
pop edi
push ebx
push esi
add esp, 4
and ebx, 0x12d46
pop ebx
imul edx, dword [ebp - 0x10a0], 0x70
add edx, 0x44f3663b
imul eax, dword [ebp - 0x10a0], 0x70
sub edx, eax
xor edx, dword [ebp - 0x1fb4]
imul edx, dword [ebp - 0x10a0]
imul ecx, dword [ebp - 0x10a0], 0x70
sub edx, ecx
mov dword [ebp - 0x10a4], edx
mov edx, dword [ebp - 0x10a4]
mov eax, dword [ebp - 0x10a0]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], eax
push eax
push eax
add esp, 4
add eax, 0x159e9
pop eax
push ebx
push edi
add esp, 4
and ebx, 0x44af
or ebx, 0x1d00
pop ebx
push ebx
or ebx, 0x16490
xor ebx, 0xb592
add ebx, 0xcd9e
pop ebx
push ecx
push eax
add esp, 4
jmp 0x403590
or ecx, 0x5ae8
call 0x4035a5
add byte [eax], bh
inc esi
xor al, 0x48
cmp al, 0x46
dec edx
add esp, 4
or ecx, 0x90b7
pop ecx
push edx
or edx, 0xb132
pop edx
mov ecx, dword [ebp - 0x30]
add ecx, 0x70
imul edx, dword [ebp - 0x2c], 0x70
add edx, 0x44f3663b
imul eax, dword [ebp - 0x2c], 0x70
sub edx, eax
xor ecx, edx
imul ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1fb8], ecx
mov ecx, dword [ebp - 0x1fb8]
mov dword [ebp - 0x1fbc], ecx
cmp dword [ebp - 0x1fbc], 0x9e7
jne 0x4044b6
push edx
push ebx
add esp, 4
sub edx, 0x10221
jmp 0x403605
and edx, 0xb883
pop edx
push ecx
or ecx, 0x8a33
or ecx, 0x1435
jmp 0x40361e
jmp 0x403626
pop ecx
push edi
push ecx
add esp, 4
jmp 0x403634
pop edi
push edx
push edi
add esp, 4
call 0x403649
add byte [esi], dh
inc esp
inc edi
push eax
inc esp
cmp dword [edi], esi
dec esp
add esp, 4
and edx, 0xba01
add edx, 0x455f
pop edx
mov edx, dword [ebp - 0x14]
add edx, 0x70
imul eax, dword [ebp - 0x10], 0x70
add eax, 0x44f3663b
imul ecx, dword [ebp - 0x10], 0x70
sub eax, ecx
xor edx, eax
imul edx, dword [ebp - 0x10]
mov dword [ebp - 0x1fc0], edx
mov edx, dword [ebp - 0x1fc0]
mov dword [ebp - 0x1fc4], edx
mov eax, dword [ebp - 0x1fc4]
sub eax, 0xec
mov dword [ebp - 0x1fc8], eax
mov dword [ebp - 0x10a8], 1
push eax
call 0x4036b2
add byte [ebp + 0x36], cl
dec esi
dec ebp
dec esp
dec esp
xor al, 0x3c
inc esi
inc edi
add esp, 4
call 0x4036c1
add byte [edi], bh
aas
dec esp
cmp eax, 0xc4833539
add al, 0xeb
push es
aas
cmp dword [eax], edi
cmp dword [eax + 0x39], eax
sub eax, 0x1407e
pop eax
imul ecx, dword [ebp - 0x10a8], 0x70
add ecx, 0x44f3663b
imul edx, dword [ebp - 0x10a8], 0x70
sub ecx, edx
xor ecx, dword [ebp - 0x1fc8]
imul ecx, dword [ebp - 0x10a8]
imul eax, dword [ebp - 0x10a8], 0x70
sub ecx, eax
mov dword [ebp - 0x10ac], ecx
mov ecx, dword [ebp - 0x10ac]
mov edx, dword [ebp - 0x10a8]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
push edi
call 0x403727
add byte [ebx], dh
inc edx
push eax
dec ecx
xor ecx, dword [esi + 0x4c]
cmp ecx, dword [esi - 0x7d]
les eax, [ecx + eax*4]
iretd
jmp 0x401416
mov dword [ebp - 0x3f0], 0
call 0x4044ca
mov eax, 0x13379797
pop eax
mov dword [ebp - 0x3f0], eax
push eax
and eax, 0x16645
and eax, 0x136ab
sub eax, 0x12287
pop eax
push eax
xor eax, 0xe33f
and eax, 0x126a9
call 0x404504
add byte [eax + 0x42], dl
aas
cmp dh, byte [esi]
inc edi
inc ebx
add esp, 4
pop eax
mov ecx, dword [ebp - 0x20fc]
mov dword [ebp - 0x15c4], ecx
push edx
call 0x404523
add byte [eax + 0x41], cl
dec eax
aas
cmp edi, dword [esi]
xor eax, dword [ebx - 0x357efb3c]
cmp al, 0x30
add dword [eax], eax
add edx, 0xd9d3
or edx, 0x340f
pop edx
push eax
sub eax, 0x1bf0
jmp 0x404545
pop eax
mov edx, dword [ebp - 0x14]
add edx, 0x70
imul eax, dword [ebp - 0x10], 0x70
add eax, 0x44f3663b
imul ecx, dword [ebp - 0x10], 0x70
sub eax, ecx
xor edx, eax
imul edx, dword [ebp - 0x10]
mov dword [ebp - 0x15c4], edx
mov edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x2060], edx
mov eax, dword [ebp - 0x2060]
add eax, dword [ebp - 0x15c4]
mov dword [ebp - 0x3f0], eax
push edx
call 0x404594
add byte [edi + ecx*2], dh
aaa
dec ecx
inc esi
inc edx
dec eax
add esp, 4
pop edx
push edx
push edi
add esp, 4
jmp 0x4045a5
jmp 0x4045aa
add edx, 0x5ace
add edx, 0x5d60
pop edx
mov byte [ebp - 0xbe4], 0x52
mov byte [ebp - 0xbe3], 0xb9
mov byte [ebp - 0xbe2], 0x10
mov byte [ebp - 0xbe1], 0x10
mov byte [ebp - 0xbe0], 0x10
mov byte [ebp - 0xbdf], 0x10
mov byte [ebp - 0xbde], 0x5a
push ebx
push edi
add esp, 4
sub ebx, 0xbde5
pop ebx
push ecx
and ecx, 0x107
pop ecx
push edx
jmp 0x404603
pop edx
push eax
push esi
add esp, 4
sub eax, 0x169e4
pop eax
push ebx
jmp 0x404619
pop ebx
mov byte [ebp - 0xbec], 0x52
mov byte [ebp - 0xbeb], 0xb9
mov byte [ebp - 0xbea], 0x20
mov byte [ebp - 0xbe9], 0x20
mov byte [ebp - 0xbe8], 0x20
mov byte [ebp - 0xbe7], 0x20
mov byte [ebp - 0xbe6], 0x5a
push edx
push edx
add esp, 4
jmp 0x404656
and edx, 0x5cec
pop edx
push edx
sub edx, 0x14bea
pop edx
push ebx
push edi
add esp, 4
and ebx, 0x14648
or ebx, 0xb55f
or ebx, 0xc2bd
pop ebx
mov dword [ebp - 0x2100], 0xe
push ebx
push eax
add esp, 4
call 0x404699
add byte [ebx + 0x33], al
dec esi
dec esi
xor ecx, dword [ebp - 0x7d]
les eax, [eax + ebp*8]
or byte [eax], al
add byte [eax], al
add byte [edx], dh
dec eax
dec ebx
xor al, byte [ebx + 0x43]
add esp, 4
sub ebx, 0xd29a
or ebx, 0x113d6
pop ebx
mov ecx, 1
imul edx, ecx, 0
lea eax, [ebp + edx - 0xbe4]
mov dword [ebp - 0x15c8], eax
push ecx
add ecx, 0x15047
xor ecx, 0x7f93
pop ecx
push ecx
push edi
add esp, 4
xor ecx, 0x12711
xor ecx, 0x4bad
and ecx, 0xf6ba
pop ecx
push ecx
push esi
add esp, 4
or ecx, 0xd2dc
pop ecx
mov dword [ebp - 0x2104], 0xffffffff
push edx
add edx, 0x75b9
xor edx, 0xc14c
xor edx, 0x39df
xor edx, 0x16d5d
pop edx
push ebx
push ecx
add esp, 4
sub ebx, 0x4cf8
or ebx, 0x150d2
xor ebx, 0x10f32
pop ebx
mov ecx, dword [ebp - 0x3f0]
mov dword [ebp - 0x4fc], ecx
jmp 0x404759
push eax
push ebx
add esp, 4
or eax, 0x13874
call 0x404773
add byte [0x454c3a43], dh
inc edx
xor al, 0x35
inc ebx
add esp, 4
add eax, 0xb0f8
add eax, 0xadb5
pop eax
push ecx
add ecx, 0xf6ac
pop ecx
mov eax, dword [ebp - 0x4fc]
sub eax, dword [ebp - 0x3f0]
cmp eax, 0xffffffff
jb 0x4047d3
push ecx
push eax
add esp, 4
and ecx, 0xc4a3
and ecx, 0xb0b2
pop ecx
push ecx
xor ecx, 0x1207
pop ecx
push esi
push edx
add esp, 4
sub esi, 0x16369
xor esi, 0xca01
or esi, 0x2209
pop esi
jmp 0x404a01
mov dword [ebp - 0xc80], 7
mov ecx, dword [ebp - 0x4fc]
mov dword [ebp - 0xacc], ecx
push edi
push eax
add esp, 4
jmp 0x4047f5
call 0x404802
add byte [edi], dh
dec esi
inc ebp
xor esi, dword [edx]
dec ebx
xor eax, dword [ebx - 0x107efb3c]
invalid
push edx
call 0x404a10
add byte [ebx + eax*2 + 0x32], cl
cmp bh, byte [edx]
xor cl, byte ds:[eax - 0x7d]
les eax, [ecx + eax*4]
ljmp 0xf281