Function at 0x45a110
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4da9bb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x15c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push 0
push 0x511138
push 0x512140
mov ebx, ecx
push 0
push edi
mov dword [ebp - 0x28], ebx
call fcn.004c4679
push 0
push 0x511118
push 0x512140
push 0
push edi
mov esi, eax
call fcn.004c4679
mov dword [ebp + 8], eax
mov eax, dword [ebx]
add esp, 0x28
mov ecx, ebx
call dword [eax + 0x50]
mov ecx, ebx
call fcn.00438410
test al, al
je 0x45a1b4
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
push 0
push ecx
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebx + 0x48]
mov ecx, dword [ecx + 0x30]
push edx
push eax
push edi
call fcn.004560c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
lea edx, [ebp - 0x4c]
push edx
mov edx, dword [ebp + 0x14]
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.004464a0
test al, al
je 0x45c0e6
mov al, byte [ebp + 0x20]
test al, al
je 0x45bfec
test esi, esi
mov edi, dword [ebp + 0x18]
je 0x45a397
push 0x54c780
push edi
call fcn.004378a0
add esp, 8
test al, al
je 0x45a397
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x45a397
mov al, byte [esi + 0x32]
test al, al
jne 0x45a397
mov ecx, esi
call fcn.00438f40
test eax, eax
je 0x45a397
mov ecx, esi
call fcn.00438f40
mov ecx, ebx
call fcn.00438f40
xor eax, eax
mov ecx, 0x19
lea edi, [ebp - 0x168]
rep stosd dword es:[edi], eax
mov al, byte [esi + 0x31]
test al, al
mov dword [ebp - 0x168], 0x64
mov dword [ebp + 0x18], 0x1000000
je 0x45a296
mov dword [ebp + 0x18], 0x1008000
mov eax, dword [ebp - 0x4c]
fld qword [ebp - 0x8c]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
add edx, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x40]
add eax, ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], eax
call fcn.004c331c
fld qword [ebp - 0x84]
mov dword [ebp - 0xac], eax
call fcn.004c331c
fld qword [ebp - 0x7c]
fadd qword [ebp - 0x8c]
mov dword [ebp - 0xa8], eax
call fcn.004c331c
fld qword [ebp - 0x74]
fadd qword [ebp - 0x84]
mov dword [ebp - 0xa4], eax
call fcn.004c331c
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0x58]
test eax, eax
jle 0x45a31d
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x80]
mov ecx, ebx
call fcn.00438f40
mov ecx, dword [ebp + 0x18]
lea edx, [ebp - 0x168]
push edx
mov edi, eax
mov eax, dword [edi]
push ecx
lea edx, [ebp - 0xac]
push edx
mov ecx, esi
mov dword [ebp + 0x18], eax
call fcn.00438f40
push eax
lea eax, [ebp - 0xbc]
push eax
mov eax, dword [ebp + 0x18]
push edi
call dword [eax + 0x14]
mov eax, dword [ebx + 0x58]
test eax, eax
jle 0x45c0ad
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x4c]
mov edx, dword [eax]
push 0
push 1
add ecx, 0x5c
push ecx
push 0
push eax
call dword [edx + 0x64]
test eax, eax
jne 0x45c0e6
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [ebp + 8]
test eax, eax
je 0x45c0ad
mov esi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x50]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x48]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x34]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x1c]
test eax, eax
mov eax, dword [esi + 0x28]
mov ecx, ebx
jne 0x45b149
test eax, eax
mov edx, dword [ebx]
jne 0x45aa82
call dword [edx + 0x9c]
test al, al
je 0x45c0e6
fld qword [ebp - 0x84]
fmul qword [0x4e8d90]
call fcn.004c331c
fld qword [ebp - 0x7c]
fmul qword [0x4e8d90]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.004c331c
fld qword [ebp - 0x74]
fmul qword [0x4e8d90]
mov dword [ebp + 0x10], eax
fidiv dword [ebp - 0x40]
call fcn.004c331c
push 0x54c780
push edi
mov dword [ebp + 0xc], eax
call fcn.004378a0
add esp, 8
test al, al
je 0x45a6e7
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
jne 0x45a58b
mov eax, dword [ebx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x40]
mov edi, dword [ebx + 0xb4]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test esi, esi
mov ecx, dword [ebx + 0x80]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xbc]
mov dword [ebp + 0x20], edx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ecx
jle 0x45aa5c
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov ebx, dword [ebp - 0x44]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], esi
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
sar edx, 0x10
imul edx, dword [eax + 4]
test ebx, ebx
mov eax, dword [ebp + 0x14]
lea edx, [eax + edx*4]
mov dword [ebp - 0x2c], edx
jle 0x45a539
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x2c]
add ecx, ebx
mov eax, ecx
sar eax, 0x10
mov edx, dword [edx + eax*4]
movzx eax, word [esi]
mov dword [ebp - 0x38], edx
shr edx, 0x18
test edx, edx
mov dword [ebp - 0x1c], ecx
je 0x45a52a
mov ebx, eax
mov ecx, 0x100
sub ecx, edx
mov edx, dword [ebp - 0x20]
and ebx, edx
imul ebx, ecx
shr ebx, 8
and ebx, edx
mov edx, eax
and edx, edi
imul edx, ecx
shr edx, 8
and edx, edi
add edx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x24]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x38]
shr eax, 8
add ecx, ebx
and eax, edx
add eax, ecx
mov ecx, dword [ebp - 0x1c]
mov word [esi], ax
mov eax, dword [ebp - 0x10]
add esi, 2
dec eax
mov dword [ebp - 0x10], eax
jne 0x45a4c5
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ebp + 0x20]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x14], eax
jne 0x45a4a2
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45aa5c
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x40]
mov edi, dword [ecx + 0xb8]
mov ebx, dword [ecx + 0xbc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
test esi, esi
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp + 0x20], eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], ebx
jle 0x45aa5c
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], esi
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
sar eax, 0x10
imul eax, dword [edx + 4]
mov edx, dword [ebp + 0x14]
lea eax, [edx + eax*4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x44]
test eax, eax
jle 0x45a691
mov dword [ebp - 0x10], eax
jmp 0x45a620
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x2c]
add ecx, edx
mov edx, ecx
sar edx, 0x10
mov edx, dword [eax + edx*4]
mov eax, dword [esi]
mov dword [ebp - 0x20], edx
shr edx, 0x18
test edx, edx
mov dword [ebp - 0x34], ecx
je 0x45a685
mov ecx, 0x100
sub ecx, edx
mov edx, eax
and edx, ebx
imul edx, ecx
shr edx, 8
and edx, ebx
mov ebx, eax
and ebx, edi
imul ebx, ecx
shr ebx, 8
and ebx, edi
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x38]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x20]
add ebx, edi
mov edi, dword [ebp - 0x1c]
shr eax, 8
add ebx, ecx
mov ecx, dword [ebp - 0x34]
and eax, edx
add eax, ebx
mov ebx, dword [ebp - 0x24]
mov dword [esi], eax
mov eax, dword [ebp - 0x10]
add esi, 4
dec eax
mov dword [ebp - 0x10], eax
jne 0x45a620
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp + 0xc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp + 0x20]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x1c]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x14]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x45a5f5
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [edi + 0xc]
mov ecx, dword [edi]
imul ecx, esi
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
imul ecx, esi
sar edx, 7
imul edi, esi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x34], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp - 0x3c], edx
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], edx
jne 0x45a8e0
mov eax, dword [ebx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x40]
mov edi, dword [ebx + 0xb8]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test esi, esi
mov ecx, dword [ebx + 0x80]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xb4]
mov ecx, dword [ebx + 0xbc]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], edi
mov dword [ebp + 0x20], ecx
jle 0x45aa5c
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov ecx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x30]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x54], esi
nop
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp + 8]
sar eax, 0x10
imul eax, dword [edx + 4]
test ecx, ecx
mov edx, dword [ebp + 0x14]
lea eax, [edx + eax*4]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x2c], eax
jle 0x45a891
mov dword [ebp - 0x14], ecx
lea ebx, [ebx]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x2c]
add eax, edx
mov dword [ebp - 0x10], eax
sar eax, 0x10
mov ecx, dword [ecx + eax*4]
movzx esi, word [ebx]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x5c]
mov eax, 0x80808081
mul edx
shr edx, 7
test edx, edx
je 0x45a878
mov ebx, dword [ebp + 0x20]
mov eax, 0x100
sub eax, edx
mov edx, ecx
and edx, ebx
imul edx, dword [ebp - 0x60]
mov ebx, esi
and ebx, dword [ebp + 0x20]
mov dword [ebp - 0x20], eax
imul ebx, eax
mov eax, dword [ebp + 0x20]
add edx, ebx
shr edx, 8
and edx, eax
mov eax, ecx
and eax, edi
imul eax, dword [ebp - 0x3c]
mov ebx, esi
and ebx, edi
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x20]
imul ebx, edx
add eax, ebx
mov ebx, dword [ebp - 0x24]
shr eax, 8
and eax, edi
add ebx, eax
mov eax, dword [ebp - 0x1c]
and ecx, eax
imul ecx, dword [ebp - 0x34]
and esi, eax
imul esi, edx
add ecx, esi
shr ecx, 8
and ecx, eax
add ebx, ecx
mov eax, ebx
mov ebx, dword [ebp - 0x18]
mov word [ebx], ax
mov eax, dword [ebp - 0x14]
add ebx, 2
dec eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], eax
jne 0x45a7e0
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x6c]
cdq
sub eax, edx
mov edx, dword [ebp + 0x1c]
sar eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp + 0xc]
add edx, eax
mov eax, dword [ebp - 0x54]
dec eax
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x54], eax
jne 0x45a7b0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45aa5c
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x40]
mov ebx, dword [ecx + 0xbc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
test esi, esi
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xb8]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x30], ebx
jle 0x45aa5c
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x1c], esi
lea ebx, [ebx]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x18]
sar edx, 0x10
imul edx, dword [eax + 4]
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x14]
lea edx, [ecx + edx*4]
mov dword [ebp + 0x20], edi
mov dword [ebp - 0x2c], edx
jle 0x45aa2c
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x2c]
add eax, edx
mov dword [ebp - 0x10], eax
sar eax, 0x10
mov esi, dword [ecx + eax*4]
mov ecx, dword [edi]
mov edx, esi
shr edx, 0x18
imul edx, dword [ebp - 0x5c]
mov eax, 0x80808081
mul edx
shr edx, 7
test edx, edx
je 0x45aa19
mov eax, 0x100
sub eax, edx
mov edx, ecx
and edx, ebx
imul edx, eax
mov edi, esi
and edi, ebx
imul edi, dword [ebp - 0x60]
add edx, edi
mov edi, dword [ebp - 0x30]
shr edx, 8
and edx, edi
mov dword [ebp - 0x24], eax
mov edi, ecx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x14]
and edi, edx
imul edi, eax
mov eax, esi
and eax, edx
imul eax, dword [ebp - 0x3c]
add edi, eax
shr edi, 8
mov eax, edx
and edi, eax
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
add eax, edi
mov edi, dword [ebp + 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x38]
and ecx, eax
imul ecx, dword [ebp - 0x24]
and esi, eax
imul esi, dword [ebp - 0x34]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [ebp - 0x20]
add eax, ecx
mov dword [edi], eax
mov eax, dword [ebp - 0x54]
add edi, 4
dec eax
mov dword [ebp + 0x20], edi
mov dword [ebp - 0x54], eax
jne 0x45a980
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp + 0xc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x18]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x1c], eax
jne 0x45a950
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [esi + 0x2c]
mov dword [ebp + 0x10], eax
call dword [edx + 0x9c]
test al, al
je 0x45c0e6
fld qword [ebp - 0x84]
fmul qword [0x4e8d90]
call fcn.004c331c
fld qword [ebp - 0x7c]
fmul qword [0x4e8d90]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.004c331c
fld qword [ebp - 0x74]
fmul qword [0x4e8d90]
mov dword [ebp + 0xc], eax
fidiv dword [ebp - 0x40]
call fcn.004c331c
push 0x54c780
push edi
mov dword [ebp + 0x20], eax
call fcn.004378a0
add esp, 8
test al, al
je 0x45adaa
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
jne 0x45ac48
mov eax, dword [ebx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebx + 0xb8]
mov edi, dword [ebp - 0x40]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test edi, edi
mov ecx, dword [ebx + 0x80]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xb4]
mov ebx, dword [ebx + 0xbc]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x10], ebx
jle 0x45b123
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x3c], edi
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x1c]
sar ecx, 0x10
imul ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x24], ecx
jle 0x45abf6
mov dword [ebp - 0x34], eax
lea ecx, [ecx]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
sar eax, 0x10
movzx eax, byte [eax + ecx]
mov edx, dword [edx + eax*4]
movzx eax, word [edi]
mov dword [ebp - 0x2c], edx
shr edx, 0x18
test edx, edx
je 0x45abea
mov ecx, 0x100
sub ecx, edx
mov edx, eax
and edx, ebx
imul edx, ecx
shr edx, 8
and edx, ebx
mov ebx, eax
and ebx, esi
imul ebx, ecx
shr ebx, 8
and ebx, esi
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x20]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x2c]
add ebx, esi
mov esi, dword [ebp - 0x38]
shr eax, 8
add ebx, ecx
mov ecx, dword [ebp - 0x24]
and eax, edx
add eax, ebx
mov ebx, dword [ebp - 0x10]
mov word [edi], ax
mov eax, dword [ebp - 0x34]
add edi, 2
dec eax
mov dword [ebp - 0x34], eax
jne 0x45ab80
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ebp - 0x18]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x18], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x3c], eax
jne 0x45ab51
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45b123
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x40]
mov ebx, dword [ecx + 0xb8]
mov esi, dword [ecx + 0xbc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
test edi, edi
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x24], esi
jle 0x45b123
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x3c], edi
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp - 0x18]
sar ecx, 0x10
imul ecx, dword [edx + 4]
mov dword [ebp - 0x1c], eax
add ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x38], ecx
jle 0x45ad54
mov dword [ebp - 0x34], eax
lea esp, [esp]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
sar eax, 0x10
movzx eax, byte [eax + ecx]
mov edx, dword [edx + eax*4]
mov eax, dword [edi]
mov dword [ebp - 0x2c], edx
shr edx, 0x18
test edx, edx
je 0x45ad48
mov ecx, 0x100
sub ecx, edx
mov edx, eax
and edx, esi
imul edx, ecx
shr edx, 8
and edx, esi
mov esi, eax
and esi, ebx
imul esi, ecx
shr esi, 8
and esi, ebx
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x20]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x2c]
add esi, ebx
mov ebx, dword [ebp - 0x10]
shr eax, 8
add esi, ecx
mov ecx, dword [ebp - 0x38]
and eax, edx
add eax, esi
mov esi, dword [ebp - 0x24]
mov dword [edi], eax
mov eax, dword [ebp - 0x34]
add edi, 4
dec eax
mov dword [ebp - 0x34], eax
jne 0x45ace0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ebp - 0x18]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x18], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x3c], eax
jne 0x45acb2
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [edi + 0xc]
mov ecx, dword [edi]
imul ecx, esi
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
imul ecx, esi
mov dword [ebp - 0x24], edx
imul edi, esi
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x60], edx
mov eax, 0x80808081
imul edi
mov eax, dword [ebx + 0xb0]
add edx, edi
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp eax, 0x10
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x5c], edx
jne 0x45af9e
mov eax, dword [ebx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x40]
cdq
sub eax, edx
mov edx, dword [ebx + 0x80]
sar eax, 1
add eax, ecx
test esi, esi
mov ecx, dword [ebx + 0xb8]
lea edi, [edx + eax*2]
mov eax, dword [ebx + 0xb4]
mov ebx, dword [ebx + 0xbc]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x58], ebx
jle 0x45b123
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov ecx, dword [ebp - 0x44]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], esi
nop
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp + 8]
sar eax, 0x10
imul eax, dword [edx + 4]
add eax, dword [ebp + 0x10]
test ecx, ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x2c], eax
jle 0x45af4f
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x2c]
add eax, edx
mov dword [ebp - 0x1c], eax
sar eax, 0x10
movzx edx, byte [eax + ecx]
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + edx*4]
movzx ecx, word [edi]
mov edx, esi
shr edx, 0x18
imul edx, dword [ebp - 0x54]
mov eax, 0x80808081
mul edx
shr edx, 7
test edx, edx
je 0x45af36
mov eax, 0x100
sub eax, edx
mov edx, ecx
and edx, ebx
imul edx, eax
mov edi, esi
and edi, ebx
imul edi, dword [ebp - 0x5c]
add edx, edi
shr edx, 8
and edx, ebx
mov dword [ebp - 0x30], eax
mov edi, ecx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x34]
and edi, edx
imul edi, eax
mov eax, esi
and eax, edx
imul eax, dword [ebp - 0x60]
add edi, eax
shr edi, 8
mov eax, edx
and edi, eax
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x58]
add eax, edi
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x38]
and ecx, eax
imul ecx, dword [ebp - 0x30]
and esi, eax
imul esi, dword [ebp - 0x24]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [ebp - 0x20]
add eax, ecx
mov word [edi], ax
mov eax, dword [ebp - 0x3c]
add edi, 2
dec eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x3c], eax
jne 0x45ae97
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x6c]
cdq
sub eax, edx
mov edx, dword [ebp + 0x1c]
sar eax, 1
lea edi, [edi + eax*2]
mov eax, dword [ebp + 0x20]
add edx, eax
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x45ae70
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45b123
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x40]
mov ebx, dword [ecx + 0xbc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
test esi, esi
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0xb8]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], ebx
jle 0x45b123
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], esi
jmp 0x45b010
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x30]
sar eax, 0x10
imul eax, dword [edx + 4]
mov dword [ebp - 0x1c], ecx
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x18], edi
jle 0x45b0f3
mov dword [ebp - 0x10], eax
lea ecx, [ecx]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x58]
add eax, edx
mov dword [ebp - 0x1c], eax
sar eax, 0x10
movzx edx, byte [eax + ecx]
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + edx*4]
mov ecx, dword [edi]
mov edx, esi
shr edx, 0x18
imul edx, dword [ebp - 0x54]
mov eax, 0x80808081
mul edx
shr edx, 7
test edx, edx
je 0x45b0e0
mov eax, 0x100
sub eax, edx
mov edx, ecx
and edx, ebx
imul edx, eax
mov edi, esi
and edi, ebx
imul edi, dword [ebp - 0x5c]
add edx, edi
mov edi, dword [ebp - 0x3c]
shr edx, 8
and edx, edi
mov dword [ebp - 0x38], eax
mov edi, ecx
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x34]
and edi, edx
imul edi, eax
mov eax, esi
and eax, edx
imul eax, dword [ebp - 0x60]
add edi, eax
shr edi, 8
mov eax, edx
and edi, eax
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x3c]
add eax, edi
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
and ecx, eax
imul ecx, dword [ebp - 0x38]
and esi, eax
imul esi, dword [ebp - 0x24]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [ebp - 0x2c]
add eax, ecx
mov dword [edi], eax
mov eax, dword [ebp - 0x10]
add edi, 4
dec eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], eax
jne 0x45b040
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp + 0x20]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x45b010
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
test eax, eax
jne 0x45b8be
mov eax, dword [ebx]
call dword [eax + 0x9c]
test al, al
je 0x45c0e6
mov ecx, dword [ebp - 0x28]
fld qword [ebp - 0x84]
mov eax, dword [ecx + 0x48]
fmul qword [0x4e8d90]
mov edx, dword [eax + 0x7c]
mov ecx, dword [eax + 0x80]
mov edi, dword [eax + 0x24]
mov ebx, dword [eax + 0x28]
mov esi, dword [eax + 0x20]
mov dword [ebp - 0x5c], edx
mov edx, dword [eax + 0x84]
mov dword [ebp - 0x60], ecx
mov dword [ebp + 0x20], edx
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x10], ebx
call fcn.004c331c
fld qword [ebp - 0x7c]
fmul qword [0x4e8d90]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.004c331c
fld qword [ebp - 0x74]
fmul qword [0x4e8d90]
mov dword [ebp + 0xc], eax
fidiv dword [ebp - 0x40]
call fcn.004c331c
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x18]
push 0x54c780
push eax
call fcn.004378a0
add esp, 8
test al, al
je 0x45b4e9
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xb0]
cmp eax, 0x10
jne 0x45b369
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
cdq
sub eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 1
add eax, edx
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*2]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0xb8]
mov ecx, dword [ecx + 0xbc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x40]
test eax, eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x2c], ecx
jle 0x45b898
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov edx, dword [ebp - 0x40]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
sar ecx, 0x10
imul ecx, dword [edx + 4]
mov edx, dword [ebp + 0x14]
lea ecx, [edx + ecx*4]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x44]
test ecx, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
jle 0x45b317
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x24], ecx
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
test ecx, ecx
movzx edx, word [eax]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x1c], edx
je 0x45b304
mov eax, dword [ebp - 0x2c]
and ecx, eax
and edx, eax
mov eax, dword [ebp + 0x20]
add edx, ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x1c]
shr edx, cl
movzx edx, word [eax + edx*4]
mov eax, dword [ebp - 0x20]
and ebx, eax
shl dx, cl
mov ecx, dword [ebp - 0x34]
and ecx, eax
mov eax, dword [ebp - 0x60]
add ebx, ecx
mov ecx, edi
shr ebx, cl
movzx eax, word [eax + ebx*4]
mov ebx, dword [ebp - 0x3c]
shl ax, cl
mov ecx, dword [ebp - 0x3c]
or edx, eax
mov eax, dword [ebp - 0x1c]
and eax, ecx
mov ecx, dword [ebp - 0x34]
and ecx, ebx
add eax, ecx
mov ebx, dword [ebp + 0x10]
mov ecx, esi
shr eax, cl
mov ecx, dword [ebp - 0x5c]
movzx eax, word [ecx + eax*4]
mov ecx, esi
shl ax, cl
or edx, eax
mov eax, dword [ebp - 0x18]
mov word [eax], dx
mov ecx, dword [ebp - 0x10]
add eax, 2
dec ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
jne 0x45b282
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp - 0x54]
cdq
sub eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x45b252
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45b898
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0xb8]
mov ecx, dword [ecx + 0xbc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x40]
test eax, eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x2c], ecx
jle 0x45b898
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov edx, dword [ebp - 0x40]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
sar ecx, 0x10
imul ecx, dword [edx + 4]
mov edx, dword [ebp + 0x14]
lea ecx, [edx + ecx*4]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x44]
test ecx, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
jle 0x45b493
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x24], ecx
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
test ecx, ecx
mov edx, dword [eax]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x1c], edx
je 0x45b480
mov eax, dword [ebp - 0x2c]
and ecx, eax
and edx, eax
mov eax, dword [ebp + 0x20]
add edx, ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x1c]
shr edx, cl
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 0x20]
and ebx, eax
shl edx, cl
mov ecx, dword [ebp - 0x34]
and ecx, eax
mov eax, dword [ebp - 0x60]
add ebx, ecx
mov ecx, edi
shr ebx, cl
mov eax, dword [eax + ebx*4]
mov ebx, dword [ebp - 0x3c]
shl eax, cl
mov ecx, dword [ebp - 0x3c]
or edx, eax
mov eax, dword [ebp - 0x1c]
and eax, ecx
mov ecx, dword [ebp - 0x34]
and ecx, ebx
mov ebx, dword [ebp + 0x10]
add eax, ecx
mov ecx, esi
shr eax, cl
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + eax*4]
mov ecx, esi
shl eax, cl
or edx, eax
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10]
add eax, 4
dec ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
jne 0x45b406
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp - 0x54]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x45b3d6
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
imul ecx, eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp - 0x38], edx
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 8]
imul ecx, dword [ebp - 0x58]
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x28]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ecx + 0xb0]
cmp eax, 0x10
mov dword [ebp - 0x3c], edx
jne 0x45b6fc
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ebx, dword [ecx + 0xb8]
cdq
sub eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 1
add eax, edx
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*2]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0xbc]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x40]
test eax, eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x64], ebx
jle 0x45b898
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov ecx, dword [ebp - 0x40]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x34], ecx
mov edi, edi
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x14]
sar eax, 0x10
mov dword [ebp - 0x24], edx
mov edx, dword [ebp + 8]
imul eax, dword [edx + 4]
mov edx, dword [ebp + 0x14]
lea eax, [edx + eax*4]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x30], ecx
jle 0x45b6aa
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x24], eax
sar eax, 0x10
mov eax, dword [edx + eax*4]
test eax, eax
movzx edx, word [ecx]
mov dword [ebp - 0x18], edx
je 0x45b697
mov edx, eax
and edx, ebx
mov ecx, edi
shr edx, cl
mov ecx, dword [ebp - 0x18]
and ecx, ebx
mov ebx, ecx
imul edx, dword [ebp - 0x38]
mov ecx, edi
shr ebx, cl
mov ecx, dword [ebp - 0x60]
shr edx, 8
add edx, ebx
xor ebx, ebx
mov bx, word [ecx + edx*4]
mov edx, dword [ebp - 0x50]
mov ecx, edi
shl bx, cl
mov edi, eax
and edi, edx
mov ecx, esi
shr edi, cl
mov ecx, dword [ebp - 0x18]
and ecx, edx
mov edx, ecx
imul edi, dword [ebp - 0x20]
mov ecx, esi
shr edx, cl
shr edi, 8
add edi, edx
mov edx, dword [ebp - 0x5c]
movzx edx, word [edx + edi*4]
mov edi, dword [ebp - 0x68]
shl dx, cl
mov ecx, dword [ebp + 0x10]
and eax, edi
shr eax, cl
imul eax, dword [ebp - 0x3c]
or ebx, edx
mov edx, dword [ebp - 0x18]
and edx, edi
mov edi, dword [ebp - 0x10]
shr edx, cl
shr eax, 8
add eax, edx
mov edx, dword [ebp + 0x20]
movzx eax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [ebp - 0x30]
or ebx, eax
mov word [ecx], bx
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x1c]
add ecx, 2
dec eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x1c], eax
jne 0x45b5f0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp - 0x54]
cdq
sub eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x34], eax
jne 0x45b5c0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45b898
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0xb8]
mov ecx, dword [ecx + 0xbc]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x40]
test eax, eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x68], ecx
jle 0x45b898
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov edx, dword [ebp - 0x40]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x34], edx
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
sar edx, 0x10
imul edx, dword [eax + 4]
mov eax, dword [ebp + 0x14]
lea edx, [eax + edx*4]
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x64], edx
jle 0x45b868
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x24], eax
sar eax, 0x10
mov eax, dword [edx + eax*4]
test eax, eax
mov edx, dword [ecx]
mov dword [ebp - 0x14], edx
je 0x45b855
mov edx, dword [ebp - 0x68]
mov ecx, eax
and ecx, edx
mov dword [ebp - 0x50], ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x50]
shr ebx, cl
mov ecx, dword [ebp - 0x14]
and ecx, edx
mov edx, ecx
imul ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x10]
shr edx, cl
mov ecx, dword [ebp + 0x20]
shr ebx, 8
add ebx, edx
mov ecx, dword [ecx + ebx*4]
mov edx, ecx
mov ecx, dword [ebp + 0x10]
shl edx, cl
mov ebx, eax
mov ecx, edi
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x58]
and ebx, edx
shr ebx, cl
mov ecx, dword [ebp - 0x10]
and edi, edx
mov edx, dword [ebp - 0x60]
imul ebx, dword [ebp - 0x38]
shr edi, cl
shr ebx, 8
add ebx, edi
mov edx, dword [edx + ebx*4]
mov ebx, dword [ebp - 0x2c]
shl edx, cl
mov edi, ecx
mov ecx, dword [ebp - 0x50]
and eax, ebx
or ecx, edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x50], ecx
mov ecx, esi
shr eax, cl
and edx, ebx
mov ebx, dword [ebp + 0x10]
shr edx, cl
imul eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x5c]
shr eax, 8
add eax, edx
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x50]
mov ecx, esi
shl edx, cl
mov ecx, dword [ebp - 0x18]
or eax, edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
add ecx, 4
dec eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], eax
jne 0x45b7a0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ebp - 0x30]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x30], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x34], eax
jne 0x45b770
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [esi + 0x2c]
mov edx, dword [ebx]
mov dword [ebp + 0xc], eax
call dword [edx + 0x9c]
test al, al
je 0x45c0e6
mov ebx, dword [ebp - 0x28]
fld qword [ebp - 0x84]
mov eax, dword [ebx + 0x48]
fmul qword [0x4e8d90]
mov ecx, dword [eax + 0x7c]
mov edx, dword [eax + 0x80]
mov esi, dword [eax + 0x28]
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax + 0x84]
mov dword [ebp - 0x5c], edx
mov edx, dword [eax + 0x20]
mov dword [ebp - 0x54], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x60], edx
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x1c], esi
call fcn.004c331c
fld qword [ebp - 0x7c]
fmul qword [0x4e8d90]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.004c331c
fld qword [ebp - 0x74]
fmul qword [0x4e8d90]
mov dword [ebp + 0x20], eax
fidiv dword [ebp - 0x40]
call fcn.004c331c
push 0x54c780
push edi
mov dword [ebp - 0x18], eax
call fcn.004378a0
add esp, 8
test al, al
je 0x45bc4e
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
jne 0x45bad4
mov eax, dword [ebx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebx + 0xbc]
cdq
sub eax, edx
mov edx, dword [ebx + 0x80]
sar eax, 1
add eax, ecx
mov ecx, dword [ebx + 0xb4]
lea eax, [edx + eax*2]
mov edx, dword [ebx + 0xb8]
mov ebx, dword [ebp - 0x40]
test ebx, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x50], edi
jle 0x45bfc6
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x1c], ebx
nop
mov ebx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
sar ebx, 0x10
imul ebx, dword [edx + 4]
mov dword [ebp - 0x20], eax
add ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x68], ebx
jle 0x45ba82
mov dword [ebp - 0x24], eax
lea ecx, [ecx]
mov eax, dword [ebp - 0x20]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x20], eax
sar eax, 0x10
movzx eax, byte [eax + ebx]
mov edx, dword [edx + eax*4]
test edx, edx
movzx eax, word [ecx]
je 0x45ba6f
mov ebx, eax
and ebx, edi
mov ecx, edx
and ecx, edi
add ebx, ecx
mov ecx, esi
shr ebx, cl
mov ecx, dword [ebp - 0x54]
xor edi, edi
mov di, word [ecx + ebx*4]
mov ebx, eax
mov ecx, esi
shl di, cl
and ebx, dword [ebp - 0x38]
mov ecx, edx
and ecx, dword [ebp - 0x38]
add ebx, ecx
mov ecx, dword [ebp + 0x10]
shr ebx, cl
mov ecx, dword [ebp - 0x5c]
movzx ebx, word [ecx + ebx*4]
mov ecx, dword [ebp + 0x10]
shl bx, cl
mov ecx, dword [ebp - 0x64]
and eax, ecx
and edx, ecx
mov ecx, dword [ebp - 0x60]
add eax, edx
mov edx, dword [ebp - 0x30]
shr eax, cl
or edi, ebx
movzx eax, word [edx + eax*4]
mov ebx, dword [ebp - 0x68]
shl ax, cl
mov ecx, dword [ebp - 0x10]
or edi, eax
mov word [ecx], di
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
add ecx, 2
dec eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], eax
jne 0x45b9f0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp - 0x18]
cdq
sub eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x1c], eax
jne 0x45b9c0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45bfc6
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x40]
mov edi, dword [ecx + 0xbc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
test ebx, ebx
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0xb8]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x50], edi
jle 0x45bfc6
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x1c], ebx
mov edi, edi
mov ebx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
sar ebx, 0x10
imul ebx, dword [edx + 4]
add ebx, eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x68], ebx
jle 0x45bbf8
mov dword [ebp - 0x24], eax
nop
mov eax, dword [ebp - 0x20]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x20], eax
sar eax, 0x10
movzx eax, byte [eax + ebx]
mov edx, dword [edx + eax*4]
test edx, edx
mov eax, dword [ecx]
je 0x45bbe5
mov ebx, eax
and ebx, edi
mov ecx, edx
and ecx, edi
add ebx, ecx
mov ecx, esi
shr ebx, cl
mov ecx, dword [ebp - 0x54]
mov edi, dword [ecx + ebx*4]
mov ebx, eax
mov ecx, esi
shl edi, cl
and ebx, dword [ebp - 0x38]
mov ecx, edx
and ecx, dword [ebp - 0x38]
add ebx, ecx
mov ecx, dword [ebp + 0x10]
shr ebx, cl
mov ecx, dword [ebp - 0x5c]
mov ebx, dword [ecx + ebx*4]
mov ecx, dword [ebp + 0x10]
shl ebx, cl
mov ecx, dword [ebp - 0x64]
and eax, ecx
and edx, ecx
mov ecx, dword [ebp - 0x60]
add eax, edx
mov edx, dword [ebp - 0x30]
shr eax, cl
or edi, ebx
mov ebx, dword [ebp - 0x68]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [ebp - 0x10]
or edi, eax
mov dword [ecx], edi
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
add ecx, 4
dec eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], eax
jne 0x45bb70
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp - 0x18]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x1c], eax
jne 0x45bb40
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [edi + 0xc]
mov ecx, dword [edi]
imul ecx, eax
mov dword [ebp + 0x18], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [edi + 4]
imul ecx, dword [ebp + 0x18]
mov edi, dword [edi + 8]
imul edi, dword [ebp + 0x18]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x2c], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [ebp - 0x3c], edx
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
mov dword [ebp - 0x34], edx
jne 0x45be49
mov eax, dword [ebx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebx + 0xbc]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, dword [ebx + 0x80]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xb4]
mov ecx, dword [ebx + 0xb8]
mov ebx, dword [ebp - 0x40]
test ebx, ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x6c], edi
jle 0x45bfc6
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x14]
sar ebx, 0x10
imul ebx, dword [eax + 4]
add ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x58], ebx
jle 0x45bdf7
mov dword [ebp - 0x24], eax
nop
mov eax, dword [ebp - 0x20]
add eax, dword [ebp + 0x20]
mov dword [ebp - 0x20], eax
sar eax, 0x10
movzx edx, byte [eax + ebx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + edx*4]
test eax, eax
movzx edx, word [ecx]
mov dword [ebp - 0x50], edx
je 0x45bde4
mov ebx, eax
and ebx, edi
mov ecx, esi
shr ebx, cl
mov ecx, edx
and ecx, edi
mov edi, ecx
imul ebx, dword [ebp - 0x34]
mov ecx, esi
shr edi, cl
mov ecx, dword [ebp - 0x54]
shr ebx, 8
add ebx, edi
movzx ebx, word [ecx + ebx*4]
mov edi, eax
mov ecx, esi
shl bx, cl
and edi, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
shr edi, cl
and edx, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
imul edi, dword [ebp - 0x3c]
shr edx, cl
shr edi, 8
add edi, edx
mov edx, dword [ebp - 0x5c]
movzx edx, word [edx + edi*4]
mov edi, dword [ebp - 0x68]
shl dx, cl
mov ecx, dword [ebp - 0x60]
and eax, edi
shr eax, cl
imul eax, dword [ebp - 0x2c]
or ebx, edx
mov edx, dword [ebp - 0x50]
and edx, edi
mov edi, dword [ebp - 0x6c]
shr edx, cl
shr eax, 8
add eax, edx
mov edx, dword [ebp - 0x30]
movzx eax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [ebp - 0x10]
or ebx, eax
mov word [ecx], bx
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x24]
add ecx, 2
dec eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], eax
jne 0x45bd40
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp - 0x18]
cdq
sub eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x1c], eax
jne 0x45bd12
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x45bfc6
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
imul eax, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x40]
mov edi, dword [ecx + 0xbc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x4c]
sar eax, 2
add eax, edx
test ebx, ebx
mov edx, dword [ecx + 0x80]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb4]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0xb8]
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x58], edi
jle 0x45bfc6
fld qword [ebp - 0x8c]
fmul qword [0x4e8d90]
call fcn.004c331c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
sar ebx, 0x10
imul ebx, dword [edx + 4]
add ebx, eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x50], ebx
jle 0x45bf96
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x20]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x20], eax
sar eax, 0x10
movzx eax, byte [eax + ebx]
mov eax, dword [edx + eax*4]
test eax, eax
mov edx, dword [ecx]
je 0x45bf83
mov ebx, eax
and ebx, edi
mov ecx, esi
shr ebx, cl
mov ecx, edx
and ecx, edi
mov edi, ecx
imul ebx, dword [ebp - 0x34]
mov ecx, esi
shr edi, cl
mov ecx, dword [ebp - 0x54]
shr ebx, 8
add ebx, edi
mov edi, dword [ecx + ebx*4]
mov ecx, esi
mov esi, dword [ebp - 0x64]
shl edi, cl
mov ecx, dword [ebp + 0x10]
mov ebx, eax
and ebx, esi
shr ebx, cl
mov ecx, edx
and ecx, esi
mov esi, ecx
imul ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x10]
shr esi, cl
mov ecx, dword [ebp - 0x5c]
shr ebx, 8
add ebx, esi
mov esi, dword [ecx + ebx*4]
mov ecx, dword [ebp + 0x10]
shl esi, cl
mov ecx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x50]
or edi, esi
mov esi, dword [ebp - 0x68]
and eax, esi
shr eax, cl
and edx, esi
mov esi, dword [ebp - 0x1c]
shr edx, cl
imul eax, dword [ebp - 0x2c]
shr eax, 8
add eax, edx
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [ebp - 0x10]
or edi, eax
mov dword [ecx], edi
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
add ecx, 4
dec eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x38], eax
jne 0x45bee2
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ebp - 0x18]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x24], eax
jne 0x45beb3
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov al, byte [ebx + 0x56]
test al, al
jne 0x45c0c8
mov al, byte [ebx + 0x32]
test al, al
jne 0x45c0c8
mov al, byte [ebx + 0x31]
test al, al
jne 0x45c0c8
mov eax, dword [ebx + 0x48]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x45c0c8
mov ecx, dword [ebx + 0x44]
push ecx
lea ecx, [ebp - 0x104]
call fcn.004538e0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
push ecx
xor esi, esi
mov dword [ebp - 0x90], ecx
push eax
lea ecx, [ebp - 0x104]
mov dword [ebp - 4], esi
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], eax
call fcn.0043f160
push esi
mov esi, dword [ebp + 0x18]
push esi
lea edx, [ebp - 0x8c]
push edx
lea eax, [ebp - 0x9c]
push eax
push edi
lea ecx, [ebp - 0x104]
call fcn.00440be0
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebx]
push eax
mov eax, dword [ebp - 0x48]
push esi
lea ecx, [ebp - 0x9c]
push ecx
mov ecx, dword [ebp - 0x4c]
push eax
push ecx
lea eax, [ebp - 0x104]
push eax
mov ecx, ebx
call dword [edx + 0x1c]
lea ecx, [ebp - 0x104]
mov dword [ebp - 4], 0xffffffff
call fcn.00453960
mov ecx, dword [ebp - 0x28]
call fcn.00438de0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push 0
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0xc]
push eax
push ecx
push edx
push edi
mov ecx, ebx
call fcn.00448320
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c