Function at 0x4b8480
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x541dbb
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 0x588f6c
push 0x588f88
mov ebx, ecx
push 0
push edi
mov dword [ebp - 0x28], ebx
call fcn.0052b199
push 0
push 0x588fa4
push 0x588f88
push 0
push edi
mov esi, eax
call fcn.0052b199
mov dword [ebp + 8], eax
mov eax, dword [ebx]
add esp, 0x28
mov ecx, ebx
call dword [eax + 0x50]
mov ecx, ebx
call fcn.00495b10
test al, al
je 0x4b8524
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.004b4430
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.004a3fe0
test al, al
je 0x4ba456
mov al, byte [ebp + 0x20]
test al, al
je 0x4ba35c
test esi, esi
mov edi, dword [ebp + 0x18]
je 0x4b8707
push 0x5c3540
push edi
call fcn.00494f90
add esp, 8
test al, al
je 0x4b8707
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x4b8707
mov al, byte [esi + 0x32]
test al, al
jne 0x4b8707
mov ecx, esi
call fcn.00496640
test eax, eax
je 0x4b8707
mov ecx, esi
call fcn.00496640
mov ecx, ebx
call fcn.00496640
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 0x4b8606
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.00527ae0
fld qword [ebp - 0x84]
mov dword [ebp - 0xac], eax
call fcn.00527ae0
fld qword [ebp - 0x7c]
fadd qword [ebp - 0x8c]
mov dword [ebp - 0xa8], eax
call fcn.00527ae0
fld qword [ebp - 0x74]
fadd qword [ebp - 0x84]
mov dword [ebp - 0xa4], eax
call fcn.00527ae0
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0x58]
test eax, eax
jle 0x4b868d
mov eax, dword [ebx + 0x4c]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x80]
mov ecx, ebx
call fcn.00496640
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.00496640
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 0x4ba41d
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 0x4ba456
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4ba41d
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 0x4b94b9
test eax, eax
mov edx, dword [ebx]
jne 0x4b8df2
call dword [edx + 0x9c]
test al, al
je 0x4ba456
fld qword [ebp - 0x84]
fmul qword [0x55abc0]
call fcn.00527ae0
fld qword [ebp - 0x7c]
fmul qword [0x55abc0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.00527ae0
fld qword [ebp - 0x74]
fmul qword [0x55abc0]
mov dword [ebp + 0x10], eax
fidiv dword [ebp - 0x40]
call fcn.00527ae0
push 0x5c3540
push edi
mov dword [ebp + 0xc], eax
call fcn.00494f90
add esp, 8
test al, al
je 0x4b8a57
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
jne 0x4b88fb
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 0x4b8dcc
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b88a9
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 0x4b889a
mov ebx, eax
mov ecx, pe_nt_image_headers32
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 0x4b8835
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 0x4b8812
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b8dcc
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 0x4b8dcc
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b8a01
mov dword [ebp - 0x10], eax
jmp 0x4b8990
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 0x4b89f5
mov ecx, pe_nt_image_headers32
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 0x4b8990
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 0x4b8965
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b8c50
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 0x4b8dcc
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b8c01
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 0x4b8be8
mov ebx, dword [ebp + 0x20]
mov eax, pe_nt_image_headers32
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 0x4b8b50
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 0x4b8b20
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b8dcc
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 0x4b8dcc
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b8d9c
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 0x4b8d89
mov eax, pe_nt_image_headers32
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 0x4b8cf0
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 0x4b8cc0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4ba456
fld qword [ebp - 0x84]
fmul qword [0x55abc0]
call fcn.00527ae0
fld qword [ebp - 0x7c]
fmul qword [0x55abc0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.00527ae0
fld qword [ebp - 0x74]
fmul qword [0x55abc0]
mov dword [ebp + 0xc], eax
fidiv dword [ebp - 0x40]
call fcn.00527ae0
push 0x5c3540
push edi
mov dword [ebp + 0x20], eax
call fcn.00494f90
add esp, 8
test al, al
je 0x4b911a
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
jne 0x4b8fb8
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 0x4b9493
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b8f66
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 0x4b8f5a
mov ecx, pe_nt_image_headers32
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 0x4b8ef0
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 0x4b8ec1
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b9493
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 0x4b9493
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b90c4
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 0x4b90b8
mov ecx, pe_nt_image_headers32
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 0x4b9050
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 0x4b9022
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b930e
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 0x4b9493
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b92bf
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 0x4b92a6
mov eax, pe_nt_image_headers32
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 0x4b9207
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 0x4b91e0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b9493
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 0x4b9493
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x14], esi
jmp 0x4b9380
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 0x4b9463
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 0x4b9450
mov eax, pe_nt_image_headers32
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 0x4b93b0
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 0x4b9380
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b9c2e
mov eax, dword [ebx]
call dword [eax + 0x9c]
test al, al
je 0x4ba456
mov ecx, dword [ebp - 0x28]
fld qword [ebp - 0x84]
mov eax, dword [ecx + 0x48]
fmul qword [0x55abc0]
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.00527ae0
fld qword [ebp - 0x7c]
fmul qword [0x55abc0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.00527ae0
fld qword [ebp - 0x74]
fmul qword [0x55abc0]
mov dword [ebp + 0xc], eax
fidiv dword [ebp - 0x40]
call fcn.00527ae0
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x18]
push 0x5c3540
push eax
call fcn.00494f90
add esp, 8
test al, al
je 0x4b9859
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xb0]
cmp eax, 0x10
jne 0x4b96d9
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 0x4b9c08
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b9687
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 0x4b9674
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 0x4b95f2
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 0x4b95c2
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b9c08
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 0x4b9c08
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b9803
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 0x4b97f0
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 0x4b9776
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 0x4b9746
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b9a6c
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 0x4b9c08
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b9a1a
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 0x4b9a07
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 0x4b9960
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 0x4b9930
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4b9c08
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 0x4b9c08
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b9bd8
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 0x4b9bc5
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 0x4b9b10
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 0x4b9ae0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4ba456
mov ebx, dword [ebp - 0x28]
fld qword [ebp - 0x84]
mov eax, dword [ebx + 0x48]
fmul qword [0x55abc0]
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.00527ae0
fld qword [ebp - 0x7c]
fmul qword [0x55abc0]
mov dword [ebp + 0x1c], eax
fidiv dword [ebp - 0x44]
call fcn.00527ae0
fld qword [ebp - 0x74]
fmul qword [0x55abc0]
mov dword [ebp + 0x20], eax
fidiv dword [ebp - 0x40]
call fcn.00527ae0
push 0x5c3540
push edi
mov dword [ebp - 0x18], eax
call fcn.00494f90
add esp, 8
test al, al
je 0x4b9fbe
mov eax, dword [ebx + 0xb0]
cmp eax, 0x10
jne 0x4b9e44
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 0x4ba336
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b9df2
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 0x4b9ddf
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 0x4b9d60
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 0x4b9d30
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4ba336
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 0x4ba336
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4b9f68
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 0x4b9f55
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 0x4b9ee0
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 0x4b9eb0
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4ba1b9
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 0x4ba336
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4ba167
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 0x4ba154
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 0x4ba0b0
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 0x4ba082
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4ba336
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 0x4ba336
fld qword [ebp - 0x8c]
fmul qword [0x55abc0]
call fcn.00527ae0
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 0x4ba306
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 0x4ba2f3
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 0x4ba252
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 0x4ba223
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa0]
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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 0x4ba438
mov al, byte [ebx + 0x32]
test al, al
jne 0x4ba438
mov al, byte [ebx + 0x31]
test al, al
jne 0x4ba438
mov eax, dword [ebx + 0x48]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x4ba438
mov ecx, dword [ebx + 0x44]
push ecx
lea ecx, [ebp - 0x104]
call fcn.004b1ab0
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.0049c8a0
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.0049e320
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.004b1b30
mov ecx, dword [ebp - 0x28]
call fcn.004964e0
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.004a5e60
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c