Function at 0x4fdd80
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x605e5b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x160
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push 0
push 0x65091c
push 0x650938
mov ebx, ecx
push 0
push edi
mov dword [ebp - 0x2c], ebx
call fcn.005e2de2
push 0
push 0x650954
push 0x650938
push 0
push edi
mov esi, eax
call fcn.005e2de2
mov dword [ebp + 8], eax
mov eax, dword [ebx]
add esp, 0x28
mov ecx, ebx
call dword [eax + 0x60]
push ebx
call fcn.004d7930
add esp, 4
test al, al
je 0x4fde26
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 + 0x4c]
mov ecx, dword [ecx + 0x30]
push edx
push eax
push edi
call fcn.004f7dc0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c
fld qword [0x60d4b8]
mov ecx, dword [ebp + 0xc]
xor eax, eax
fstp qword [ebp - 0x8c]
fld qword [0x60d4b8]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
fstp qword [ebp - 0x84]
fld qword [0x60d4b8]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
fstp qword [ebp - 0x7c]
fld qword [0x60d4b8]
lea edx, [ebp - 0x50]
push edx
fstp qword [ebp - 0x74]
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.004e6fc0
test al, al
je 0x4ffd87
mov al, byte [ebp + 0x20]
test al, al
je 0x4ffc8d
test esi, esi
mov edi, dword [ebp + 0x18]
je 0x4fe012
push 0x68ad88
push edi
call fcn.004d6d20
add esp, 8
test al, al
je 0x4fe012
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x4fe012
mov al, byte [esi + 0x32]
test al, al
jne 0x4fe012
mov ecx, esi
call fcn.004d8480
test eax, eax
je 0x4fe012
mov ecx, esi
call fcn.004d8480
mov ecx, ebx
call fcn.004d8480
xor eax, eax
mov ecx, 0x19
lea edi, [ebp - 0x16c]
rep stosd dword es:[edi], eax
mov al, byte [esi + 0x31]
test al, al
mov dword [ebp - 0x16c], 0x64
mov dword [ebp + 0x18], 0x1000000
je 0x4fdf11
mov dword [ebp + 0x18], 0x1008000
mov eax, dword [ebp - 0x50]
fld qword [ebp - 0x8c]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
add edx, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x44]
add eax, ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], eax
call fcn.005e0b1c
fld qword [ebp - 0x84]
mov dword [ebp - 0xac], eax
call fcn.005e0b1c
fld qword [ebp - 0x7c]
fadd qword [ebp - 0x8c]
mov dword [ebp - 0xa8], eax
call fcn.005e0b1c
fld qword [ebp - 0x74]
fadd qword [ebp - 0x84]
mov dword [ebp - 0xa4], eax
call fcn.005e0b1c
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0x5c]
test eax, eax
jle 0x4fdf98
mov eax, dword [ebx + 0x50]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x80]
mov ecx, ebx
call fcn.004d8480
mov ecx, dword [ebp + 0x18]
lea edx, [ebp - 0x16c]
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.004d8480
push eax
lea eax, [ebp - 0xbc]
push eax
mov eax, dword [ebp + 0x18]
push edi
call dword [eax + 0x14]
mov eax, dword [ebx + 0x5c]
test eax, eax
jle 0x4ffd4e
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x50]
mov edx, dword [eax]
push 0
push 1
add ecx, 0x60
push ecx
push 0
push eax
call dword [edx + 0x64]
test eax, eax
jne 0x4ffd87
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4ffd4e
mov esi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x60]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebx + 0x4c]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x3c]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x1c]
test eax, eax
mov eax, dword [esi + 0x28]
mov ecx, ebx
jne 0x4fede0
test eax, eax
mov edx, dword [ebx]
jne 0x4fe705
call dword [edx + 0xac]
test al, al
je 0x4ffd87
fld qword [ebp - 0x84]
fmul qword [0x612ca0]
call fcn.005e0b1c
fld qword [ebp - 0x7c]
fmul qword [0x612ca0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x48]
call fcn.005e0b1c
fld qword [ebp - 0x74]
fmul qword [0x612ca0]
mov dword [ebp + 0x10], eax
fidiv dword [ebp - 0x44]
call fcn.005e0b1c
push 0x68ad88
push edi
mov dword [ebp + 0xc], eax
call fcn.004d6d20
add esp, 8
test al, al
je 0x4fe366
mov eax, dword [ebx + 0xb4]
cmp eax, 0x10
jne 0x4fe20a
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x44]
mov edi, dword [ebx + 0xb8]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test esi, esi
mov ecx, dword [ebx + 0x84]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xbc]
mov ecx, dword [ebx + 0xc0]
mov dword [ebp + 0x20], edx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
jle 0x4fe6df
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov ecx, dword [ebp - 0x48]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x10], esi
lea ecx, [ecx]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
sar edx, 0x10
imul edx, dword [ebx + 4]
test ecx, ecx
mov ebx, dword [ebp + 0x14]
lea edx, [ebx + edx*4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], edx
jle 0x4fe1b8
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x30]
sar eax, 0x10
mov edx, dword [ecx + eax*4]
movzx eax, word [esi]
mov dword [ebp - 0x34], edx
shr edx, 0x18
test edx, edx
je 0x4fe19e
mov ebx, eax
mov ecx, 0x100
sub ecx, edx
mov edx, dword [ebp - 0x24]
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 - 0x34]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x28]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x34]
shr eax, 8
and eax, edx
add ecx, ebx
add eax, ecx
mov word [esi], ax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
add eax, edx
add esi, 2
dec ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ecx
jne 0x4fe146
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x70]
mov esi, dword [ebp + 0x1c]
cdq
sub eax, edx
mov edx, dword [ebp + 0x20]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x10]
add esi, edx
dec eax
mov dword [ebp + 0x1c], esi
mov dword [ebp - 0x10], eax
jne 0x4fe120
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4fe6df
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x44]
mov edi, dword [ecx + 0xbc]
mov ebx, dword [ecx + 0xc0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
test esi, esi
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp + 0x20], eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x28], ebx
jle 0x4fe6df
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
sar ecx, 0x10
imul ecx, dword [edx + 4]
mov edx, dword [ebp + 0x14]
lea ecx, [edx + ecx*4]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x48]
test ecx, ecx
mov dword [ebp - 0x20], eax
jle 0x4fe310
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x30]
sar eax, 0x10
mov edx, dword [edx + eax*4]
mov eax, dword [esi]
mov dword [ebp - 0x24], edx
shr edx, 0x18
test edx, edx
je 0x4fe2f9
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 - 0x24]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x34]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x24]
add ebx, edi
mov edi, dword [ebp - 0x1c]
shr eax, 8
add ebx, ecx
and eax, edx
add eax, ebx
mov ebx, dword [ebp - 0x28]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
add eax, edx
add esi, 4
dec ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ecx
jne 0x4fe2a1
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x70]
mov ecx, dword [ebp + 0x20]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x10], eax
jne 0x4fe274
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 eax, edx
mov dword [ebp - 0x38], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x40], eax
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0xb4]
cmp eax, 0x10
mov dword [ebp - 0x5c], esi
jne 0x4fe563
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x44]
mov edi, dword [ebx + 0xbc]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test esi, esi
mov ecx, dword [ebx + 0x84]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xc0]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], edi
mov dword [ebp + 0x20], ecx
jle 0x4fe6df
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov ecx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x3c]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], esi
mov edi, edi
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x18], 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 - 0x10], ebx
mov dword [ebp - 0x30], eax
jle 0x4fe514
mov dword [ebp - 0x20], ecx
lea ebx, [ebx]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x30]
sar ecx, 0x10
mov ecx, dword [edx + ecx*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 0x4fe4f0
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 - 0x24], 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 - 0x40]
mov ebx, esi
and ebx, edi
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x24]
imul ebx, edx
add eax, ebx
mov ebx, dword [ebp - 0x28]
shr eax, 8
and eax, edi
add ebx, eax
mov eax, dword [ebp - 0x1c]
and ecx, eax
imul ecx, dword [ebp - 0x38]
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 - 0x10]
mov word [ebx], ax
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x20]
add ebx, 2
add edx, ecx
dec eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
jne 0x4fe460
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x70]
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 - 0x14]
dec eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x4fe430
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4fe6df
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x44]
mov ebx, dword [ecx + 0xc0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
test esi, esi
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xbc]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ebx
jle 0x4fe6df
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x1c], esi
lea ecx, [ecx]
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 - 0x48]
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 - 0x30], edx
jle 0x4fe6af
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x30]
sar ecx, 0x10
mov esi, dword [edx + ecx*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 0x4fe691
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 - 0x14]
shr edx, 8
and edx, edi
mov dword [ebp - 0x28], eax
mov edi, ecx
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x20]
and edi, edx
imul edi, eax
mov eax, esi
and eax, edx
imul eax, dword [ebp - 0x40]
add edi, eax
shr edi, 8
mov eax, edx
and edi, eax
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
add eax, edi
mov edi, dword [ebp + 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x34]
and ecx, eax
imul ecx, dword [ebp - 0x28]
and esi, eax
imul esi, dword [ebp - 0x38]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [ebp - 0x24]
add eax, ecx
mov dword [edi], eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x3c]
add edi, 4
add edx, ecx
dec eax
mov dword [ebp + 0x20], edi
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x3c], eax
jne 0x4fe600
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebp - 0x18]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x18], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x1c], eax
jne 0x4fe5d0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 + 0xac]
test al, al
je 0x4ffd87
fld qword [ebp - 0x84]
fmul qword [0x612ca0]
call fcn.005e0b1c
fld qword [ebp - 0x7c]
fmul qword [0x612ca0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x48]
call fcn.005e0b1c
fld qword [ebp - 0x74]
fmul qword [0x612ca0]
mov dword [ebp + 0xc], eax
fidiv dword [ebp - 0x44]
call fcn.005e0b1c
push 0x68ad88
push edi
mov dword [ebp + 0x20], eax
call fcn.004d6d20
add esp, 8
test al, al
je 0x4fea30
mov eax, dword [ebx + 0xb4]
cmp eax, 0x10
jne 0x4fe8cd
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebx + 0xbc]
mov edi, dword [ebp - 0x44]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test edi, edi
mov ecx, dword [ebx + 0x84]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xb8]
mov ebx, dword [ebx + 0xc0]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x34], ebx
jle 0x4fedba
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x38], edi
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x1c]
sar ecx, 0x10
imul ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ebp - 0x48]
test eax, eax
mov dword [ebp - 0x28], ecx
jle 0x4fe87b
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
sar eax, 0x10
movzx edx, byte [eax + ecx]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + edx*4]
movzx eax, word [edi]
mov dword [ebp - 0x30], edx
shr edx, 0x18
test edx, edx
je 0x4fe864
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 - 0x30]
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x24]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x30]
add ebx, esi
mov esi, dword [ebp - 0x40]
shr eax, 8
add ebx, ecx
mov ecx, dword [ebp - 0x28]
and eax, edx
add eax, ebx
mov ebx, dword [ebp - 0x34]
mov word [edi], ax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
add eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
add edi, 2
dec eax
mov dword [ebp - 0x1c], eax
jne 0x4fe800
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x70]
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 - 0x38]
dec eax
mov dword [ebp - 0x18], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x38], eax
jne 0x4fe7d4
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4fedba
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x44]
mov ebx, dword [ecx + 0xbc]
mov esi, dword [ecx + 0xc0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
test edi, edi
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x28], esi
jle 0x4fedba
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x38], 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 - 0x10], eax
add ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x48]
test eax, eax
mov dword [ebp - 0x34], ecx
jle 0x4fe9da
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
sar eax, 0x10
movzx edx, byte [eax + ecx]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + edx*4]
mov eax, dword [edi]
mov dword [ebp - 0x30], edx
shr edx, 0x18
test edx, edx
je 0x4fe9c3
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 - 0x30]
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x24]
and eax, edx
imul eax, ecx
mov ecx, dword [ebp - 0x30]
add esi, ebx
mov ebx, dword [ebp - 0x40]
shr eax, 8
add esi, ecx
mov ecx, dword [ebp - 0x34]
and eax, edx
add eax, esi
mov esi, dword [ebp - 0x28]
mov dword [edi], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
add eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
add edi, 4
dec eax
mov dword [ebp - 0x1c], eax
jne 0x4fe961
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x70]
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 - 0x38]
dec eax
mov dword [ebp - 0x18], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x38], eax
jne 0x4fe937
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 eax, edx
mov dword [ebp - 0x28], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x60], eax
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0xb4]
cmp eax, 0x10
mov dword [ebp - 0x14], esi
jne 0x4fec2f
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x44]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test esi, esi
mov ecx, dword [ebx + 0x84]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xbc]
mov ebx, dword [ebx + 0xc0]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x38], ebx
jle 0x4fedba
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x20], esi
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x3c]
sar eax, 0x10
imul eax, dword [ecx + 4]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x48]
test eax, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], edi
jle 0x4febdd
mov edx, eax
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
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 - 0x14]
mov eax, 0x80808081
mul edx
shr edx, 7
test edx, edx
je 0x4febbf
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 - 0x38]
shr edx, 8
and edx, edi
mov dword [ebp - 0x58], eax
mov edi, ecx
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x1c]
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 - 0x24]
mov ebx, dword [ebp - 0x38]
add eax, edi
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x34]
and ecx, eax
imul ecx, dword [ebp - 0x58]
and esi, eax
imul esi, dword [ebp - 0x28]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [ebp - 0x24]
add eax, ecx
mov word [edi], ax
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
add edi, 2
add edx, ecx
dec eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x40], eax
jne 0x4feb21
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebp - 0x3c]
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 - 0x20]
dec eax
mov dword [ebp - 0x3c], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x20], eax
jne 0x4feaf2
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4fedba
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x44]
mov ebx, dword [ecx + 0xc0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
test esi, esi
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + 0xbc]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], ebx
jle 0x4fedba
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x20], esi
lea esp, [esp]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x3c]
sar eax, 0x10
imul eax, dword [edx + 4]
mov dword [ebp - 0x18], ecx
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x48]
test eax, eax
mov dword [ebp - 0x10], edi
jle 0x4fed8a
mov dword [ebp - 0x40], eax
lea ecx, [ecx]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x58]
sar ecx, 0x10
movzx eax, byte [ecx + edx]
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + eax*4]
mov ecx, dword [edi]
mov edx, esi
shr edx, 0x18
imul edx, dword [ebp - 0x14]
mov eax, 0x80808081
mul edx
shr edx, 7
test edx, edx
je 0x4fed6c
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 - 0x38]
shr edx, 8
and edx, edi
mov dword [ebp - 0x34], eax
mov edi, ecx
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x1c]
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 - 0x30]
mov ebx, dword [ebp - 0x38]
add eax, edi
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
and ecx, eax
imul ecx, dword [ebp - 0x34]
and esi, eax
imul esi, dword [ebp - 0x28]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [ebp - 0x30]
add eax, ecx
mov dword [edi], eax
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
add edi, 4
add edx, ecx
dec eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x40], eax
jne 0x4fecd0
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebp - 0x3c]
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 - 0x20]
dec eax
mov dword [ebp - 0x3c], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x20], eax
jne 0x4feca0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4ff55e
mov eax, dword [ebx]
call dword [eax + 0xac]
test al, al
je 0x4ffd87
mov ecx, dword [ebp - 0x2c]
fld qword [ebp - 0x84]
mov eax, dword [ecx + 0x4c]
fmul qword [0x612ca0]
mov edx, dword [eax + 0x84]
mov ecx, dword [eax + 0x88]
mov edi, dword [eax + 0x24]
mov ebx, dword [eax + 0x28]
mov esi, dword [eax + 0x20]
mov dword [ebp - 0x5c], edx
mov edx, dword [eax + 0x8c]
mov dword [ebp - 0x60], ecx
mov dword [ebp + 0x20], edx
mov dword [ebp - 0x20], edi
mov dword [ebp + 0x10], ebx
call fcn.005e0b1c
fld qword [ebp - 0x7c]
fmul qword [0x612ca0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x48]
call fcn.005e0b1c
fld qword [ebp - 0x74]
fmul qword [0x612ca0]
mov dword [ebp + 0xc], eax
fidiv dword [ebp - 0x44]
call fcn.005e0b1c
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x18]
push 0x68ad88
push eax
call fcn.004d6d20
add esp, 8
test al, al
je 0x4ff187
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0xb4]
cmp eax, 0x10
jne 0x4ff007
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
cdq
sub eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 1
add eax, edx
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*2]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xbc]
mov ecx, dword [ecx + 0xc0]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x30], ecx
jle 0x4ff538
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov edx, dword [ebp - 0x44]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], edx
lea esp, [esp]
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 - 0x48]
test ecx, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
jle 0x4fefb5
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x28], ecx
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
test ecx, ecx
movzx edx, word [eax]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], edx
je 0x4fefa2
mov eax, dword [ebp - 0x30]
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 - 0x24]
and ebx, eax
shl dx, cl
mov ecx, dword [ebp - 0x38]
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 - 0x40]
shl ax, cl
mov ecx, dword [ebp - 0x40]
or edx, eax
mov eax, dword [ebp - 0x1c]
and eax, ecx
mov ecx, dword [ebp - 0x38]
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 - 0x10]
mov word [eax], dx
mov ecx, dword [ebp - 0x20]
add eax, 2
dec ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], ecx
jne 0x4fef20
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ebp - 0x3c]
cdq
sub eax, edx
mov edx, dword [ebp - 0x18]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x4feef0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4ff538
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xbc]
mov ecx, dword [ecx + 0xc0]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x30], ecx
jle 0x4ff538
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov edx, dword [ebp - 0x44]
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 - 0x48]
test ecx, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
jle 0x4ff131
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x28], ecx
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
test ecx, ecx
mov edx, dword [eax]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], edx
je 0x4ff11e
mov eax, dword [ebp - 0x30]
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 - 0x24]
and ebx, eax
shl edx, cl
mov ecx, dword [ebp - 0x38]
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 - 0x40]
shl eax, cl
mov ecx, dword [ebp - 0x40]
or edx, eax
mov eax, dword [ebp - 0x1c]
and eax, ecx
mov ecx, dword [ebp - 0x38]
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 - 0x10]
mov dword [eax], edx
mov ecx, dword [ebp - 0x20]
add eax, 4
dec ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x20], ecx
jne 0x4ff0a4
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ebp - 0x3c]
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 - 0x14]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x14], eax
jne 0x4ff074
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 eax, edx
mov dword [ebp - 0x24], 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 eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 8]
imul ecx, dword [ebp - 0x58]
mov dword [ebp - 0x34], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x2c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x40], eax
mov eax, dword [ecx + 0xb4]
cmp eax, 0x10
jne 0x4ff39c
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ebx, dword [ecx + 0xbc]
cdq
sub eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 1
add eax, edx
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*2]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0xc0]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x64], ebx
jle 0x4ff538
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov ecx, dword [ebp - 0x44]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x38], ecx
lea esp, [esp]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x14]
sar eax, 0x10
mov dword [ebp - 0x28], 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 - 0x48]
test eax, eax
mov dword [ebp - 0x18], ecx
jle 0x4ff34a
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x28], eax
sar eax, 0x10
mov eax, dword [edx + eax*4]
test eax, eax
movzx edx, word [ecx]
mov dword [ebp - 0x10], edx
je 0x4ff337
mov edx, eax
and edx, ebx
mov ecx, edi
shr edx, cl
mov ecx, dword [ebp - 0x10]
and ecx, ebx
mov ebx, ecx
imul edx, dword [ebp - 0x34]
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 - 0x54]
mov ecx, edi
shl bx, cl
mov edi, eax
and edi, edx
mov ecx, esi
shr edi, cl
mov ecx, dword [ebp - 0x10]
and ecx, edx
mov edx, ecx
imul edi, dword [ebp - 0x24]
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 - 0x40]
or ebx, edx
mov edx, dword [ebp - 0x10]
and edx, edi
mov edi, dword [ebp - 0x20]
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 - 0x18]
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 - 0x18], ecx
mov dword [ebp - 0x1c], eax
jne 0x4ff290
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ebp - 0x3c]
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 - 0x38]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x38], eax
jne 0x4ff260
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4ff538
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xbc]
mov ecx, dword [ecx + 0xc0]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x44]
test eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x68], ecx
jle 0x4ff538
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov edx, dword [ebp - 0x44]
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x38], edx
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], 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 - 0x48]
test eax, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x64], edx
jle 0x4ff508
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x28], eax
sar eax, 0x10
mov eax, dword [edx + eax*4]
test eax, eax
mov edx, dword [ecx]
mov dword [ebp - 0x14], edx
je 0x4ff4f5
mov edx, dword [ebp - 0x68]
mov ecx, eax
and ecx, edx
mov dword [ebp - 0x54], ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x54]
shr ebx, cl
mov ecx, dword [ebp - 0x14]
and ecx, edx
mov edx, ecx
imul ebx, dword [ebp - 0x40]
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 - 0x54], edx
mov edx, dword [ebp - 0x58]
and ebx, edx
shr ebx, cl
mov ecx, dword [ebp - 0x20]
and edi, edx
mov edx, dword [ebp - 0x60]
imul ebx, dword [ebp - 0x34]
shr edi, cl
shr ebx, 8
add ebx, edi
mov edx, dword [edx + ebx*4]
mov ebx, dword [ebp - 0x30]
shl edx, cl
mov edi, ecx
mov ecx, dword [ebp - 0x54]
and eax, ebx
or ecx, edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x54], ecx
mov ecx, esi
shr eax, cl
and edx, ebx
mov ebx, dword [ebp + 0x10]
shr edx, cl
imul eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x5c]
shr eax, 8
add eax, edx
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x54]
mov ecx, esi
shl edx, cl
mov ecx, dword [ebp - 0x10]
or eax, edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
add ecx, 4
dec eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], eax
jne 0x4ff440
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x70]
mov ecx, dword [ebp - 0x18]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x38]
dec eax
mov dword [ebp - 0x18], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x38], eax
jne 0x4ff410
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 + 0xac]
test al, al
je 0x4ffd87
mov ebx, dword [ebp - 0x2c]
fld qword [ebp - 0x84]
mov eax, dword [ebx + 0x4c]
fmul qword [0x612ca0]
mov ecx, dword [eax + 0x84]
mov edx, dword [eax + 0x88]
mov esi, dword [eax + 0x28]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x8c]
mov dword [ebp - 0x5c], edx
mov edx, dword [eax + 0x20]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x60], edx
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x1c], esi
call fcn.005e0b1c
fld qword [ebp - 0x7c]
fmul qword [0x612ca0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x48]
call fcn.005e0b1c
fld qword [ebp - 0x74]
fmul qword [0x612ca0]
mov dword [ebp + 0x20], eax
fidiv dword [ebp - 0x44]
call fcn.005e0b1c
push 0x68ad88
push edi
mov dword [ebp - 0x10], eax
call fcn.004d6d20
add esp, 8
test al, al
je 0x4ff8ee
mov eax, dword [ebx + 0xb4]
cmp eax, 0x10
jne 0x4ff774
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebx + 0xc0]
cdq
sub eax, edx
mov edx, dword [ebx + 0x84]
sar eax, 1
add eax, ecx
mov ecx, dword [ebx + 0xb8]
lea eax, [edx + eax*2]
mov edx, dword [ebx + 0xbc]
mov ebx, dword [ebp - 0x44]
test ebx, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x54], edi
jle 0x4ffc67
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x1c], ebx
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 - 0x24], eax
add ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x48]
test eax, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x68], ebx
jle 0x4ff722
mov dword [ebp - 0x28], eax
nop
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
sar eax, 0x10
movzx eax, byte [eax + ebx]
mov edx, dword [edx + eax*4]
test edx, edx
movzx eax, word [ecx]
je 0x4ff70f
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 - 0x3c]
xor edi, edi
mov di, word [ecx + ebx*4]
mov ebx, eax
mov ecx, esi
shl di, cl
and ebx, dword [ebp - 0x34]
mov ecx, edx
and ecx, dword [ebp - 0x34]
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 - 0x18]
shr eax, cl
or edi, ebx
movzx eax, word [edx + eax*4]
mov ebx, dword [ebp - 0x68]
shl ax, cl
mov ecx, dword [ebp - 0x20]
or edi, eax
mov word [ecx], di
mov edi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x28]
add ecx, 2
dec eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], eax
jne 0x4ff690
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ebp - 0x10]
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 0x4ff662
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4ffc67
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x44]
mov edi, dword [ecx + 0xc0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
test ebx, ebx
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0xbc]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x54], edi
jle 0x4ffc67
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
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 - 0x48]
test eax, eax
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x68], ebx
jle 0x4ff898
mov dword [ebp - 0x28], eax
nop
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
sar eax, 0x10
movzx eax, byte [eax + ebx]
mov edx, dword [edx + eax*4]
test edx, edx
mov eax, dword [ecx]
je 0x4ff885
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 - 0x3c]
mov edi, dword [ecx + ebx*4]
mov ebx, eax
mov ecx, esi
shl edi, cl
and ebx, dword [ebp - 0x34]
mov ecx, edx
and ecx, dword [ebp - 0x34]
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 - 0x18]
shr eax, cl
or edi, ebx
mov ebx, dword [ebp - 0x68]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [ebp - 0x20]
or edi, eax
mov dword [ecx], edi
mov edi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x28]
add ecx, 4
dec eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], eax
jne 0x4ff810
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ebp - 0x10]
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 0x4ff7e0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [edi + 4]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0xc]
imul ecx, eax
mov edi, dword [edi + 8]
mov dword [ebp + 0x18], eax
imul edi, dword [ebp + 0x18]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x40], eax
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0xb4]
cmp eax, 0x10
jne 0x4ffaea
mov eax, dword [ebx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebx + 0xc0]
cdq
sub eax, edx
mov edx, dword [ebx + 0x84]
sar eax, 1
add eax, ecx
mov ecx, dword [ebx + 0xb8]
lea eax, [edx + eax*2]
mov edx, dword [ebx + 0xbc]
mov ebx, dword [ebp - 0x44]
test ebx, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x6c], edi
jle 0x4ffc67
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x1c], ebx
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 - 0x24], eax
add ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x48]
test eax, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x58], ebx
jle 0x4ffa98
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
sar eax, 0x10
movzx eax, byte [eax + ebx]
mov eax, dword [edx + eax*4]
test eax, eax
movzx edx, word [ecx]
mov dword [ebp - 0x54], edx
je 0x4ffa85
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 - 0x38]
mov ecx, esi
shr edi, cl
mov ecx, dword [ebp - 0x3c]
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 - 0x34]
mov ecx, dword [ebp + 0x10]
shr edi, cl
and edx, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x10]
imul edi, dword [ebp - 0x40]
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 - 0x30]
or ebx, edx
mov edx, dword [ebp - 0x54]
and edx, edi
mov edi, dword [ebp - 0x6c]
shr edx, cl
shr eax, 8
add eax, edx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [ebp - 0x20]
or ebx, eax
mov word [ecx], bx
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x28]
add ecx, 2
dec eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], eax
jne 0x4ff9e1
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ebp - 0x10]
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 0x4ff9b4
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 0x4ffc67
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
imul eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x44]
mov edi, dword [ecx + 0xc0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x50]
sar eax, 2
add eax, edx
test ebx, ebx
mov edx, dword [ecx + 0x84]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xb8]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0xbc]
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x58], edi
jle 0x4ffc67
fld qword [ebp - 0x8c]
fmul qword [0x612ca0]
call fcn.005e0b1c
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x28], 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 - 0x48]
test eax, eax
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x54], ebx
jle 0x4ffc37
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
sar eax, 0x10
movzx eax, byte [eax + ebx]
mov eax, dword [edx + eax*4]
test eax, eax
mov edx, dword [ecx]
je 0x4ffc24
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 - 0x38]
mov ecx, esi
shr edi, cl
mov ecx, dword [ebp - 0x3c]
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 - 0x40]
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 - 0x54]
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 - 0x30]
shr eax, 8
add eax, edx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [ebp - 0x20]
or edi, eax
mov dword [ecx], edi
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x34]
add ecx, 4
dec eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], eax
jne 0x4ffb83
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x70]
mov ecx, dword [ebp - 0x10]
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 - 0x28]
add edx, ecx
dec eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0x28], eax
jne 0x4ffb54
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
call dword [edx + 0xb0]
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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 + 0x59]
test al, al
jne 0x4ffd69
mov al, byte [ebx + 0x32]
test al, al
jne 0x4ffd69
mov al, byte [ebx + 0x31]
test al, al
jne 0x4ffd69
mov eax, dword [ebx + 0x4c]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x4ffd69
mov ecx, dword [ebx + 0x48]
push ecx
lea ecx, [ebp - 0x108]
call fcn.004f2370
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
push ecx
xor esi, esi
mov dword [ebp - 0x90], ecx
push eax
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], esi
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], eax
call fcn.004df690
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 - 0x108]
call fcn.004e1020
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebx]
push eax
mov eax, dword [ebp - 0x4c]
push esi
lea ecx, [ebp - 0x9c]
push ecx
mov ecx, dword [ebp - 0x50]
push eax
push ecx
lea eax, [ebp - 0x108]
push eax
mov ecx, ebx
call dword [edx + 0x1c]
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], 0xffffffff
call fcn.004f2630
mov ecx, dword [ebp - 0x2c]
call fcn.004d8320
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.004e8ff0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c