Function at 0x4a92a0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x5126be
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x98
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, 0x5e15a0
mov dword [esp + 0x40], esi
call fcn.00470660
push eax
mov eax, dword [esp + 0xbc]
push eax
mov ecx, esi
call fcn.004a8cf0
xor ebp, ebp
mov dword [esi], 0x51cc04
mov dword [esp + 0xb0], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], 0x51cbf8
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov edi, dword [esp + 0xbc]
mov byte [esp + 0xb0], 1
cmp edi, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], ebp
je 0x4a9412
cmp byte [edi], 0
je 0x4a9412
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], 1
call fcn.0046e990
mov ecx, dword [esi + 0x7c]
push 0xffffffffffffffff
push edi
mov byte [esp + 0xb8], 2
call fcn.004553e0
cmp eax, 0x1f4
jbe 0x4a939a
push 0x1f4
lea ecx, [esp + 0x38]
push edi
push ecx
mov ecx, dword [esi + 0x7c]
call fcn.00455520
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 3
call fcn.00470b10
lea ecx, [esp + 0x34]
mov byte [esp + 0xb0], 2
call fcn.0046ebb0
lea ecx, [esp + 0x2c]
call fcn.00470660
mov edi, eax
mov ecx, 0x128
call fcn.00488280
cmp eax, ebp
je 0x4a93b5
push edi
push esi
mov ecx, eax
call fcn.0047c110
mov ebx, eax
jmp 0x4a93b7
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea edi, [edx + 1]
cmp eax, edi
jae 0x4a93ed
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a93e3
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0xb0], 1
mov dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x18]
inc eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], eax
call fcn.0046ebb0
mov al, byte [esp + 0xc0]
mov dword [esi + 0x140], ebp
test al, 1
je 0x4a955f
call fcn.004ce600
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
test al, al
mov ecx, 0x138
je 0x4a94d4
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a9463
push ebp
mov ecx, 0x5e1668
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a9465
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov dword [esi + 0x140], ebx
lea edi, [eax + 1]
mov eax, dword [esp + 0x1c]
cmp eax, edi
jae 0x4a94a1
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a9497
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
mov dword [ecx + edx*4], ebx
mov ecx, dword [esp + 0x18]
inc ecx
cmp eax, 1
mov dword [esp + 0x18], ecx
jne 0x4a955f
mov eax, dword [esi + 0x140]
mov dword [esp + 0x28], eax
jmp 0x4a955f
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a94f7
push ebp
mov ecx, 0x5e16c0
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a94f9
xor ebx, ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x144], ebx
lea edi, [ecx + 1]
cmp eax, edi
jae 0x4a9535
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a952b
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
inc ecx
cmp eax, 1
mov dword [esp + 0x18], ecx
jne 0x4a955f
mov ecx, dword [esi + 0x144]
mov dword [esp + 0x28], ecx
mov al, byte [esp + 0xc0]
mov dword [esi + 0x144], ebp
test al, 2
je 0x4a9618
call fcn.004ce600
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
test al, al
je 0x4a9618
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a95b0
push ebp
mov ecx, 0x5e16c0
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a95b2
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov dword [esi + 0x144], ebx
lea edi, [eax + 1]
mov eax, dword [esp + 0x1c]
cmp eax, edi
jae 0x4a95ee
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a95e4
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
mov dword [ecx + edx*4], ebx
mov ecx, dword [esp + 0x18]
inc ecx
cmp eax, 2
mov dword [esp + 0x18], ecx
jne 0x4a9618
mov eax, dword [esi + 0x144]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0xc0]
mov dword [esi + 0x148], ebp
test al, 4
je 0x4a96bd
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a9655
push ebp
mov ecx, 0x5e15d0
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a9657
xor ebx, ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x148], ebx
lea edi, [ecx + 1]
cmp eax, edi
jae 0x4a9693
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a9689
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
inc ecx
cmp eax, 4
mov dword [esp + 0x18], ecx
jne 0x4a96bd
mov ecx, dword [esi + 0x148]
mov dword [esp + 0x28], ecx
mov al, byte [esp + 0xc0]
mov dword [esi + 0x14c], ebp
test al, 8
je 0x4a9762
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a96fa
push ebp
mov ecx, 0x5e1660
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a96fc
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x14c], ebx
lea edi, [edx + 1]
cmp eax, edi
jae 0x4a9738
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a972e
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
inc ecx
cmp eax, 8
mov dword [esp + 0x18], ecx
jne 0x4a9762
mov edx, dword [esi + 0x14c]
mov dword [esp + 0x28], edx
mov al, byte [esp + 0xc0]
mov dword [esi + 0x150], ebp
test al, 0x10
je 0x4a9807
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a979f
push ebp
mov ecx, 0x5e1658
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a97a1
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov dword [esi + 0x150], ebx
lea edi, [eax + 1]
mov eax, dword [esp + 0x1c]
cmp eax, edi
jae 0x4a97dd
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a97d3
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
mov dword [ecx + edx*4], ebx
mov ecx, dword [esp + 0x18]
inc ecx
cmp eax, 0x10
mov dword [esp + 0x18], ecx
jne 0x4a9807
mov eax, dword [esi + 0x150]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0xc0]
mov dword [esi + 0x154], ebp
test al, 0x20
je 0x4a98ac
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a9844
push ebp
mov ecx, 0x5e1640
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a9846
xor ebx, ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x154], ebx
lea edi, [ecx + 1]
cmp eax, edi
jae 0x4a9882
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a9878
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
inc ecx
cmp eax, 0x20
mov dword [esp + 0x18], ecx
jne 0x4a98ac
mov ecx, dword [esi + 0x154]
mov dword [esp + 0x28], ecx
mov al, byte [esp + 0xc0]
mov dword [esi + 0x158], ebp
test al, 0x40
je 0x4a9951
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a98e9
push ebp
mov ecx, 0x5e1618
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a98eb
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x158], ebx
lea edi, [edx + 1]
cmp eax, edi
jae 0x4a9927
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a991d
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
inc ecx
cmp eax, 0x40
mov dword [esp + 0x18], ecx
jne 0x4a9951
mov edx, dword [esi + 0x158]
mov dword [esp + 0x28], edx
mov al, byte [esp + 0xc0]
mov dword [esi + 0x15c], ebp
test al, 0x80
je 0x4a99f6
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a998e
push ebp
mov ecx, 0x5e1618
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a9990
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov dword [esi + 0x15c], ebx
lea edi, [eax + 1]
mov eax, dword [esp + 0x1c]
cmp eax, edi
jae 0x4a99cc
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a99c2
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
mov dword [ecx + edx*4], ebx
mov ecx, dword [esp + 0x18]
inc ecx
cmp eax, 0x40
mov dword [esp + 0x18], ecx
jne 0x4a99f6
mov eax, dword [esi + 0x15c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc0]
mov dword [esi + 0x160], ebp
test ah, 1
je 0x4a9a9e
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a9a34
push ebp
mov ecx, 0x5e1690
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
mov ebx, eax
jmp 0x4a9a36
xor ebx, ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x160], ebx
lea edi, [ecx + 1]
cmp eax, edi
jae 0x4a9a72
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a9a68
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
inc ecx
cmp eax, 0x100
mov dword [esp + 0x18], ecx
jne 0x4a9a9e
mov ecx, dword [esi + 0x160]
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0xc0]
mov dword [esi + 0x164], ebp
and edi, 0x200
mov dword [esi + 0x168], ebp
mov dword [esp + 0x20], edi
je 0x4a9cd4
xor edx, edx
lea ecx, [esp + 0x34]
call fcn.0049f3c0
mov ecx, eax
mov byte [esp + 0xb0], 4
call fcn.00470660
lea ecx, [esp + 0x34]
mov edi, eax
mov byte [esp + 0xb0], 1
call fcn.0046ebb0
push 0x64
lea edx, [esp + 0x48]
mov ecx, edi
call fcn.0049f2b0
mov ecx, 0xfc
call fcn.00488280
cmp eax, ebp
je 0x4a9b1a
push 0x5413c8
push esi
mov ecx, eax
call fcn.00474290
mov edi, eax
jmp 0x4a9b1c
xor edi, edi
mov ecx, 0x128
mov byte [edi + 0x78], 1
mov byte [edi + 0x5d], 1
call fcn.00488280
mov ebx, eax
cmp ebx, ebp
je 0x4a9b4b
mov ecx, 0x5e16b8
call fcn.00470660
push eax
push esi
mov ecx, ebx
call fcn.0047c110
mov ebx, eax
jmp 0x4a9b4d
xor ebx, ebx
mov ecx, 0x128
call fcn.00488280
mov ebp, eax
test ebp, ebp
je 0x4a9b72
mov ecx, 0x5e16a8
call fcn.00470660
push eax
push esi
mov ecx, ebp
call fcn.0047c110
jmp 0x4a9b74
xor eax, eax
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov ebp, dword [ebx + 4]
sub edx, ecx
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x2c], eax
sub ecx, ebp
cmp edx, ecx
jge 0x4a9b96
mov edx, dword [ebx + 0xc]
mov ecx, eax
sub edx, ebp
push edx
jmp 0x4a9ba1
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
sub ecx, edx
push ecx
mov ecx, ebx
call fcn.00478ee0
mov ecx, 0x11c
call fcn.00488280
test eax, eax
je 0x4a9bc5
lea edx, [esp + 0x44]
mov ecx, eax
push edx
push esi
call fcn.0047ac10
mov ebp, eax
jmp 0x4a9bc7
xor ebp, ebp
push 0
mov ecx, ebp
call fcn.0047bb90
mov ecx, 0x11c
call fcn.00488280
test eax, eax
je 0x4a9bed
push 0x5413c8
push esi
mov ecx, eax
call fcn.0047ac10
jmp 0x4a9bef
xor eax, eax
mov dword [esi + 0x164], eax
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp + 4]
push ecx
mov ecx, eax
call fcn.00478ee0
mov edx, dword [edi]
push 0
push 0xfffffc18
push 0xfffffc18
push 0
push 1
push ebx
mov ecx, edi
call dword [edx + 0x80]
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi]
push 0
push 0xfffffc18
push 0xfffffc18
push 0
push 8
push ecx
mov ecx, edi
call dword [eax + 0x80]
mov edx, dword [edi]
push 0
push 0xfffffc18
push 0xfffffc18
push ebx
push 0xd
push ebp
mov ecx, edi
call dword [edx + 0x80]
mov ecx, dword [esi + 0x164]
mov eax, dword [edi]
push 0
push 0xfffffc18
push 0xfffffc18
push 0
push 8
push ecx
mov ecx, edi
call dword [eax + 0x80]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea ebp, [edx + 1]
cmp eax, ebp
jae 0x4a9cb2
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
fild qword [esp + 0x34]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, ebp
jbe 0x4a9ca8
mov ebp, eax
push ebp
lea ecx, [esp + 0x14]
call fcn.004acee0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], 1
mov dword [eax + ecx*4], edi
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
inc eax
mov dword [esp + 0x18], eax
xor ebp, ebp
mov ecx, 0x138
call fcn.00488280
mov ebx, eax
cmp ebx, ebp
je 0x4a9cfc
push ebp
mov ecx, 0x5e1630
call fcn.00470660
push eax
push esi
mov ecx, ebx
call fcn.00479a30
mov ebx, eax
jmp 0x4a9cfe
xor ebx, ebx
cmp edi, ebp
mov dword [esi + 0x16c], ebx
je 0x4a9df7
mov ecx, 0x138
call fcn.00488280
mov edi, eax
cmp edi, ebp
je 0x4a9d32
push ebp
mov ecx, 0x5e15b0
call fcn.00470660
push eax
push esi
mov ecx, edi
call fcn.00479a30
jmp 0x4a9d34
xor eax, eax
mov ecx, dword [esp + 0xc4]
mov dword [esi + 0x168], eax
cmp ecx, 0x200
jne 0x4a9d4d
mov dword [esp + 0x28], eax
mov ecx, 0xfc
call fcn.00488280
cmp eax, ebp
je 0x4a9d6c
push 0x5413c8
push esi
mov ecx, eax
call fcn.00474290
mov edi, eax
jmp 0x4a9d6e
xor edi, edi
mov edx, dword [edi]
push ebp
push 0xfffffc18
mov byte [edi + 0x78], 1
mov byte [edi + 0x5d], 1
mov eax, dword [esi + 0x168]
push 0xfffffc18
push ebp
push 1
push eax
mov ecx, edi
call dword [edx + 0x80]
mov eax, dword [esi + 0x16c]
mov edx, dword [edi]
push ebp
push 0xfffffc18
push 0xfffffc18
push ebp
push 0xe
push eax
mov ecx, edi
call dword [edx + 0x80]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea ebx, [ecx + 1]
cmp eax, ebx
jae 0x4a9dea
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, ebx
jbe 0x4a9de0
mov ebx, eax
push ebx
lea ecx, [esp + 0x14]
call fcn.004acee0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], edi
jmp 0x4a9e38
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea edi, [ecx + 1]
cmp eax, edi
jae 0x4a9e2d
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
fild qword [esp + 0x20]
fmul dword [0x51582c]
call fcn.004fff44
cmp eax, edi
jbe 0x4a9e23
mov edi, eax
push edi
lea ecx, [esp + 0x14]
call fcn.004acee0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
inc ebx
inc ecx
xor edx, edx
cmp ebx, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x30], ecx
jbe 0x4a9e71
mov ecx, edi
mov eax, dword [ecx]
add ecx, 4
add eax, 4
mov ebp, dword [eax + 0xc]
sub ebp, dword [eax + 4]
movsx eax, byte [esi + 0x78]
add ebp, eax
add edx, ebp
dec ebx
jne 0x4a9e56
xor ebp, ebp
movsx eax, byte [esi + 0x78]
mov ebx, dword [esi + 8]
mov ecx, dword [edi]
sub eax, ebx
mov ebx, dword [esi + 0x10]
add eax, ebx
mov ebx, dword [esi + 4]
sub eax, edx
mov edx, dword [ecx + 0xc]
add ecx, 4
push 2
shr eax, 1
push eax
mov eax, dword [esi + 0xc]
sub eax, edx
mov edx, dword [ecx]
sub eax, ebx
mov ecx, dword [edi]
add eax, edx
cdq
sub eax, edx
sar eax, 1
push eax
push ebp
push 5
push ecx
mov ecx, esi
call fcn.00476110
mov eax, dword [esp + 0x18]
mov edi, 1
cmp eax, edi
jbe 0x4a9ee2
mov edx, dword [esp + 0x14]
push ebp
push 0xfffffc18
push 0xfffffc18
mov eax, dword [edx + edi*4]
push ebp
push 0xc
push eax
mov ecx, esi
call fcn.00476110
mov eax, dword [esp + 0x18]
inc edi
cmp edi, eax
jb 0x4a9ebc
mov edx, dword [esp + 0x28]
cmp edx, ebp
je 0x4a9f03
mov dword [esi + 0x11c], edx
mov ecx, dword [edx + 0xe0]
push edx
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x16c]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov dword [esi + 0x120], ecx
lea ecx, [edi + edx + 1]
cmp eax, ecx
jbe 0x4a9f34
mov ecx, dword [esp + 0x14]
sub eax, edx
push 1
mov edx, dword [ecx + eax*4 - 4]
mov ecx, dword [ecx + edi*4]
push edx
call fcn.00476cb0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], 0x51cbf8
cmp eax, ebp
je 0x4a9f4d
push eax
call fcn.004ffee0
add esp, 4
mov ecx, dword [esp + 0xa8]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa4
ret 0x10