Function at 0x725f30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov edi, ecx
mov esi, edx
mov ecx, dword [ebp + 0x20]
push ebx
push 4
mov dword [esp + 0x28], esi
mov eax, dword [ecx + 8]
mov edx, eax
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x9c], ecx
push ecx
mov ecx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x50], eax
call fcn.00724a20
mov ecx, dword [ebp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x94]
mov dword [esp + 0x2c], eax
neg eax
sbb eax, eax
mov dword [ecx], 0
and eax, 4
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
cmp eax, 4
jl 0x725fa5
cmp edx, 4
jge 0x725fac
mov dword [ebp + 0x1c], 0
push edx
mov edx, eax
call fcn.0071ca40
add esp, 4
test eax, eax
je 0x7278ae
cmp dword [esp + 0x2c], 0
je 0x725fcb
call fcn.0072e4f0
cmp dword [ebp + 0x1c], 0
je 0x7261be
cmp dword [0x94f23c], 0
jne 0x726168
movsd xmm3, qword [0x8adf90]
xor eax, eax
movsd xmm4, qword [0x8ae020]
movsd xmm1, qword [0x8ae210]
movsd xmm2, qword [0x8ae030]
movsd xmm5, qword [0x8ae120]
movsd xmm6, qword [0x8ae1a0]
mov dword [esp + 0x34], eax
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0xb8], xmm4
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0xa0], xmm2
movsd qword [esp + 0xb0], xmm5
movsd qword [esp + 0x60], xmm6
nop dword [eax + eax]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm3
comisd xmm4, xmm0
jb 0x72606c
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
jmp 0x7260b4
addsd xmm0, xmm2
movaps xmm1, xmm6
mulsd xmm0, xmm5
call fcn.007eb580
movsd xmm1, qword [esp + 0x98]
movsd xmm2, qword [esp + 0xa0]
movsd xmm3, qword [esp + 0x70]
movsd xmm4, qword [esp + 0xb8]
movsd xmm5, qword [esp + 0xb0]
movsd xmm6, qword [esp + 0x60]
mov eax, dword [esp + 0x34]
cvtsd2ss xmm0, xmm0
movss dword [eax*4 + 0x94f2c8], xmm0
inc eax
mov dword [esp + 0x34], eax
cmp eax, 0x3ff
jle 0x726050
movsd xmm2, qword [0x8adfe8]
xor eax, eax
mov dword [esp + 0x34], eax
nop word [eax + eax]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x8adff0]
comisd xmm2, xmm0
jb 0x7260fc
mulsd xmm0, xmm1
jmp 0x72612f
movsd xmm1, qword [0x8ae098]
call fcn.007eb580
mulsd xmm0, qword [0x8ae150]
mov eax, dword [esp + 0x34]
movsd xmm1, qword [esp + 0x98]
movsd xmm2, qword [0x8adfe8]
subsd xmm0, qword [esp + 0xa0]
mulsd xmm0, qword [0x8ae420]
cvtsd2ss xmm0, xmm0
movss dword [eax*4 + 0x94f240], xmm0
inc eax
mov dword [esp + 0x34], eax
cmp eax, 0x20
jle 0x7260e0
movss xmm0, dword [0x94f2c0]
movss dword [0x94f2c4], xmm0
mov dword [0x94f23c], 1
push dword [ebp + 0x20]
mov edx, esi
push ebx
push ecx
push dword [ebp + 8]
mov ecx, edi
call fcn.00725550
add esp, 0x10
test eax, eax
je 0x7278ae
cmp dword [esp + 0x2c], 0
je 0x7278a2
mov eax, dword [ebp + 0x20]
push dword [eax + 0x28]
push dword [eax + 0x24]
mov eax, dword [esp + 0x48]
push dword [esp + 0x9c]
push eax
push ebx
push dword [esp + 0x58]
call dword [0x952d38]
add esp, 0x18
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x40]
inc eax
sar eax, 1
mov dword [esp + 0x84], eax
shl eax, 2
mov dword [esp + 0x80], eax
cdq
mov edi, eax
mov ecx, edx
shld ecx, edi, 1
mov dword [esp + 0x60], ecx
mov ecx, eax
or ecx, edx
je 0x726211
push edx
push eax
push 0
push 0x7fff0000
call fcn.00798a80
test edx, edx
jb 0x726209
ja 0x726202
cmp eax, 2
jb 0x726209
cmp dword [esp + 0x60], 0
je 0x726211
xor edi, edi
mov dword [esp + 0x30], edi
jmp 0x726229
mov eax, dword [esp + 0x80]
add eax, eax
push eax
call fcn.007a35a7
add esp, 4
mov dword [esp + 0x30], eax
mov edi, eax
mov ecx, dword [ebp + 0x20]
movss xmm1, dword [ebp + 0x18]
comiss xmm1, dword [0x8adeb0]
mov dword [esp + 0x48], 0
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x14], eax
jbe 0x726275
lea ecx, [esp + 0xc8]
call fcn.0072def0
lea eax, [esp + 0xc8]
mov dword [esp + 0x48], eax
call fcn.0072fff0
cmp dword [0x94efb4], 0
jne 0x72632b
xor esi, esi
nop dword [eax]
movsd xmm1, qword [0x8ae0f8]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x8adfb0]
call fcn.007eb580
mulsd xmm0, qword [0x8ae438]
addsd xmm0, qword [0x8ae0a0]
cvttsd2si eax, xmm0
mov word [esi*2 + 0x94efb8], ax
inc esi
cmp esi, 0xff
jle 0x726290
mov esi, dword [esp + 0x20]
xor ebx, ebx
nop dword [eax + eax]
movsd xmm1, qword [0x8ae160]
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x8adff8]
call fcn.007eb580
mulsd xmm0, qword [0x8ae3c0]
addsd xmm0, qword [0x8ae0a0]
cvttsd2si eax, xmm0
mov dword [ebx*4 + 0x94f1b8], eax
inc ebx
cmp ebx, 0x20
jle 0x7262e0
mov ebx, dword [ebp + 0x14]
mov dword [0x94efb4], 1
test edi, edi
je 0x7278ae
mov eax, dword [esp + 0x94]
mov edi, 0x200
sar eax, 1
mov dword [esp + 0x60], eax
test eax, eax
jle 0x726fff
mov edx, dword [esp + 0x40]
mov eax, edx
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0xc]
sar eax, 1
mov dword [esp + 0x78], eax
mov eax, edx
and eax, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x80], eax
mov ecx, 4
lea eax, [ebx + ebx]
mov dword [esp + 0x98], eax
mov eax, ebx
neg eax
add eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xc]
add eax, 4
sub ecx, ebx
mov dword [esp + 0xac], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], ecx
xor edi, edi
test edx, edx
jle 0x72640b
sub ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
nop word [eax + eax]
mov eax, dword [esp + 0x1c]
movzx edx, byte [esi]
movzx ecx, byte [ecx + esi]
push ebx
movzx eax, byte [eax + esi]
push eax
call fcn.00724ae0
mov ecx, dword [esp + 0x44]
lea esi, [esi + 4]
mov edx, dword [esp + 0x48]
add esp, 8
mov byte [edi + ecx], al
inc edi
mov ecx, dword [esp + 0x28]
cmp edi, edx
jl 0x7263d0
mov ebx, dword [ebp + 0x14]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edi, dword [ebp + 0x20]
mov eax, dword [esp + 0xc]
mov edi, dword [edi + 0x1c]
mov dword [esp + 0x38], edi
xor edi, edi
test edx, edx
jle 0x72647f
sub ecx, dword [esp + 0x20]
add esi, ebx
mov dword [esp + 0x24], ecx
mov ecx, eax
sub ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
nop word [eax + eax]
push dword [esp + 0x48]
movzx eax, byte [esi + ebx]
movzx edx, byte [esi]
movzx ecx, byte [esi + ecx]
push eax
call fcn.00724ae0
mov ecx, dword [esp + 0x40]
lea esi, [esi + 4]
add ecx, dword [esp + 0x44]
add esp, 8
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
mov byte [edi + ecx], al
inc edi
mov ecx, dword [esp + 0x1c]
cmp edi, edx
jl 0x726440
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + 0x1c]
jmp 0x726486
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x20]
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
lea esi, [esi + eax*2]
mov dword [esp + 0x3c], esi
mov esi, dword [ebp + 0x14]
je 0x726b8f
push dword [ecx + 0x28]
mov edi, dword [esp + 0x48]
push dword [esp + 0x18]
push 2
push edx
push esi
push edi
call dword [0x952d38]
mov ecx, dword [esp + 0x2c]
add esp, 0x18
neg eax
sbb eax, eax
inc eax
and eax, dword [esp + 0x2c]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
je 0x726b8f
mov eax, dword [esp + 0x30]
xor ebx, ebx
mov dword [esp + 0x54], eax
cmp dword [esp + 0x78], ebx
jle 0x72691c
mov eax, dword [esp + 0x20]
mov ecx, eax
mov edx, dword [esp + 0xc]
sub ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x8c], edi
sub dword [esp + 0x8c], edx
mov dword [esp + 0x90], ecx
sub dword [esp + 0x90], edx
mov edx, edi
sub edx, ecx
mov dword [esp + 0xb0], edx
mov edx, edi
mov edi, dword [esp + 0x78]
sub edx, eax
sub eax, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], edi
jmp 0x72654a
mov ecx, dword [esp + 0x18]
add ecx, ebx
add eax, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
add ecx, esi
add eax, edx
mov dword [esp + 0xa8], ecx
movzx edx, byte [eax + esi + 4]
mov esi, dword [esp + 0x8c]
movzx eax, byte [eax]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x24], eax
movzx edi, byte [ecx + edx]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x38], edi
add edi, eax
add edi, dword [esp + 0x50]
lea edx, [ebx + ecx]
movzx esi, byte [esi + edx]
add edi, esi
mov dword [esp + 0xc4], esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
cmp edi, 0x3fc
je 0x726769
test edi, edi
je 0x726769
mov ecx, dword [ebp + 0x14]
mov esi, dword [edi*4 + 0x86e840]
movzx eax, byte [ecx + edx - 4]
movzx edx, word [eax*2 + 0x94efb8]
imul edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x50]
add edx, eax
movzx eax, byte [ecx - 4]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x24]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0xc4]
add edx, eax
imul edx, esi
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0xb8]
sar eax, 7
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x1c]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0xa8]
imul edx, dword [esp + 0xc4]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x7c]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x38]
add edx, eax
mov eax, dword [ebp + 0x14]
movzx eax, byte [ecx + eax + 4]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x50]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x24]
add edx, eax
imul edx, esi
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x90]
sar eax, 7
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x5c]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [ebp + 0x14]
imul edx, dword [esp + 0xc4]
movzx eax, byte [ecx + eax + 4]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x50]
add edx, eax
mov eax, dword [esp + 0xa8]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x38]
add edx, eax
movzx eax, byte [ecx]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x24]
add edx, eax
imul edx, esi
shr edx, 0x11
mov eax, edx
sar eax, 9
jmp 0x72689f
add ecx, esi
movzx eax, byte [ecx + ebx]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx + ebx - 4]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
movzx eax, byte [ecx - 4]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
sar eax, 7
add ecx, esi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xac]
add eax, ecx
movzx eax, byte [eax + ebx]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx + ebx + 4]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
movzx eax, byte [ecx + ebx]
mov ecx, dword [esp + 0x7c]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x18]
sar eax, 7
add ecx, esi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xac]
add eax, ecx
movzx eax, byte [eax + ebx]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx + ebx]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
movzx eax, byte [ecx + ebx + 4]
mov ecx, dword [esp + 0x5c]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
movzx eax, byte [ecx]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, edx
shr eax, 9
and edx, 0x1ff
mov ecx, 0x200
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
mov edx, dword [esp + 0x30]
add eax, 0x40
mov word [edx + ebx + 6], di
add eax, ecx
mov ecx, dword [esp + 0x88]
sar eax, 7
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
add dword [esp + 0x54], 8
mov word [eax], cx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x34]
mov word [edx + ebx + 2], cx
add ebx, 8
sub dword [esp + 0x28], 1
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
mov word [ecx + eax], si
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x1c]
jne 0x726546
mov edi, dword [esp + 0x44]
cmp dword [esp + 0x80], 0
je 0x726ee7
lea eax, [ebx + edi]
movzx ecx, byte [eax + esi]
movzx eax, byte [eax]
mov dword [esp + 0x38], eax
add eax, ecx
add eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x70], eax
cmp eax, 0x3fc
je 0x726a80
test eax, eax
je 0x726a80
mov esi, dword [eax*4 + 0x86e840]
mov ecx, dword [esp + 0xc]
mov edi, dword [ebp + 0x14]
add ecx, ebx
movzx eax, byte [ecx + edi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, 0x200
imul edx, dword [esp + 0x24]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x38]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sub ecx, edx
sar eax, 9
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
sar eax, 7
add ecx, ebx
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + edi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, 0x200
imul edx, dword [esp + 0x24]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x38]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x18]
sar eax, 7
add ecx, ebx
mov dword [esp + 0x28], eax
movzx eax, byte [ecx + edi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, 0x200
imul edx, dword [esp + 0x24]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x38]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul edx, eax
add edx, 0x40
jmp 0x726b66
mov ecx, dword [esp + 0xc]
mov edi, 0x200
add ecx, ebx
movzx eax, byte [ecx + esi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
sar eax, 7
add ecx, ebx
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + esi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x18]
sar eax, 7
add ecx, ebx
mov dword [esp + 0x28], eax
movzx eax, byte [ecx + esi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul edx, eax
add ecx, 0x40
mov eax, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x1c]
sar edx, 7
mov word [eax], cx
mov ecx, dword [esp + 0x28]
mov word [eax + 2], cx
mov ecx, dword [esp + 0x70]
mov word [eax + 4], dx
mov word [eax + 6], cx
jmp 0x726ee7
mov edi, dword [esp + 0x78]
xor ecx, ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
test edi, edi
jle 0x726de3
mov edx, dword [esp + 0x58]
lea eax, [edx - 4]
add eax, esi
mov ecx, eax
sub eax, edx
mov dword [esp + 0xb0], eax
sub ecx, edx
mov eax, dword [esp + 0xc]
sub eax, edx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x28], eax
lea ecx, [ebx + esi]
mov eax, ecx
sub ebx, edx
sub eax, edx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xac]
sub eax, edx
add eax, ecx
sub ecx, edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x18]
lea ebx, [ecx + esi]
mov esi, dword [esp + 0x54]
mov eax, ebx
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xac]
sub eax, edx
add eax, ebx
sub ebx, edx
mov dword [esp + 0x24], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], eax
mov ebx, edx
mov eax, edi
mov edi, 0x200
mov dword [esp + 0x1c], eax
shl eax, 3
mov dword [esp + 0x50], eax
nop word [eax + eax]
mov eax, dword [esp + 0xb8]
lea ebx, [ebx + 8]
mov ecx, edi
movzx eax, byte [eax + ebx - 4]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax + ebx - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, dword [esp + 0x28]
movzx eax, byte [ebx + eax - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
movzx eax, byte [ebx - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, edi
sar eax, 7
mov word [esi], ax
mov eax, dword [esp + 0x88]
movzx eax, byte [eax + ebx - 8]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + ebx - 4]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, dword [esp + 0x7c]
movzx eax, byte [eax + ebx - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, dword [esp + 0xa8]
movzx eax, byte [ebx + eax - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, edi
sar eax, 7
mov word [esi + 2], ax
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ebx - 8]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebx - 4]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, dword [esp + 0x90]
movzx eax, byte [eax + ebx - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, dword [esp + 0x8c]
movzx eax, byte [ebx + eax - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
sar eax, 7
mov word [esi + 4], ax
add esi, 8
sub dword [esp + 0x1c], 1
jne 0x726c50
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x54], esi
mov esi, dword [ebp + 0x14]
jmp 0x726de8
mov edi, 0x200
cmp dword [esp + 0x80], 0
je 0x726ee7
add ecx, dword [esp + 0xc]
movzx eax, byte [ecx + esi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x54]
sar eax, 7
mov word [ecx], ax
mov ecx, dword [esp + 0x50]
add ecx, ebx
mov ebx, dword [esp + 0x54]
movzx eax, byte [ecx + esi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x18]
sar eax, 7
mov word [ebx + 2], ax
movzx eax, byte [ecx + esi]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
sar eax, 7
mov word [ebx + 4], ax
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x726f10
push dword [esp + 0x84]
push dword [esp + 0x50]
push dword [esp + 0x74]
push dword [esp + 0x3c]
call dword [0x952cc4]
add esp, 0x10
jmp 0x726f93
mov esi, dword [esp + 0x84]
test esi, esi
jle 0x726f93
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x4c]
add eax, 4
mov edx, dword [esp + 0x6c]
sub edx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x28], esi
jmp 0x726f44
mov ecx, dword [esp + 0x48]
movzx ebx, word [eax - 4]
movzx edi, word [eax - 2]
movzx esi, word [eax]
mov edx, edi
push ecx
push esi
mov ecx, ebx
call fcn.00724ba0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x78]
push dword [esp + 0x50]
push esi
mov byte [edx + ecx], al
mov edx, edi
mov ecx, ebx
call fcn.00724c70
mov ecx, dword [esp + 0x34]
add esp, 0x10
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x1c]
add eax, 8
mov dword [esp + 0x24], ecx
sub dword [esp + 0x28], 1
mov dword [esp + 0x1c], eax
jne 0x726f40
mov eax, dword [ebp + 0x20]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xa0]
add dword [esp + 0x34], ecx
mov eax, dword [eax + 0x20]
add dword [esp + 0x6c], eax
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
add ecx, eax
add dword [esp + 0xc], eax
add esi, eax
add dword [esp + 0x58], eax
lea edi, [edx + eax]
cmp dword [esp + 0x2c], 0
mov ebx, dword [ebp + 0x14]
cmove edi, edx
mov dword [esp + 0x18], ecx
sub dword [esp + 0x60], 1
mov edx, dword [esp + 0x40]
mov dword [esp + 0x20], esi
mov dword [esp + 0x44], edi
jne 0x7263a8
mov dword [esp + 0x44], edi
mov edi, 0x200
jmp 0x727006
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], ecx
test byte [esp + 0x94], 1
je 0x727896
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x60], 0
test ebx, ebx
jle 0x72707e
mov eax, ecx
mov dword [esp + 0xa0], esi
mov ecx, dword [esp + 0xc]
sub eax, esi
sub ecx, esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x70], ecx
push dword [esp + 0x48]
movzx eax, byte [eax + esi]
movzx edx, byte [esi]
movzx ecx, byte [ecx + esi]
push eax
call fcn.00724ae0
mov ecx, dword [esp + 0x68]
lea esi, [esi + 4]
mov edx, dword [esp + 0x44]
add esp, 8
mov byte [ecx + edx], al
inc ecx
mov eax, dword [esp + 0x98]
cmp ecx, ebx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x70]
jl 0x727040
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x7270a7
push 0
push dword [esp + 0x18]
push 1
push ebx
push 0
push dword [esp + 0x58]
call dword [0x952d38]
add esp, 0x18
neg eax
sbb eax, eax
inc eax
and eax, dword [esp + 0x2c]
mov ecx, ebx
sar ecx, 1
test eax, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x78], ecx
jne 0x727308
mov ebx, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
test ecx, ecx
jle 0x727232
mov eax, dword [esp + 0xc]
mov edx, esi
sub edx, eax
mov dword [esp + 0x70], edx
mov edx, esi
sub edx, eax
mov esi, ecx
mov dword [esp + 0x98], edx
mov edx, ebx
sub edx, eax
sub ebx, eax
lea eax, [ecx*8]
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xb0], edx
mov dword [esp + 0x14], eax
nop dword [eax]
movzx eax, byte [ebx + 4]
lea ebx, [ebx + 8]
mov ecx, edi
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ebx - 8]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x10]
sar eax, 7
mov word [ecx], ax
mov ecx, edi
mov eax, dword [esp + 0x98]
movzx eax, byte [eax + ebx - 8]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0x70]
movzx eax, byte [eax + ebx - 4]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x10]
sar eax, 7
mov word [ecx + 2], ax
mov ecx, edi
mov eax, dword [esp + 0xb8]
movzx eax, byte [eax + ebx - 8]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax + ebx - 4]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
mov edx, dword [esp + 0x10]
add eax, 0x40
add eax, ecx
sar eax, 7
mov word [edx + 4], ax
add edx, 8
mov dword [esp + 0x10], edx
sub esi, 1
jne 0x727110
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
test al, 1
je 0x7277f8
mov eax, dword [esp + 0xc]
mov ecx, edi
movzx eax, byte [edx + eax]
movzx edx, word [eax*2 + 0x94efb8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x10]
sar eax, 7
mov word [ecx], ax
mov ecx, edi
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + esi]
movzx edx, word [eax*2 + 0x94efb8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
mov edx, dword [esp + 0x10]
add eax, 0x40
add eax, ecx
sar eax, 7
mov word [edx + 2], ax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebx]
movzx ecx, word [eax*2 + 0x94efb8]
shl ecx, 2
mov eax, ecx
and ecx, 0x1ff
sar eax, 9
sub edi, ecx
imul edi, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, ecx
add eax, 0x40
add eax, edi
sar eax, 7
mov word [edx + 4], ax
jmp 0x7277f8
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], 0
test ecx, ecx
jle 0x72762f
mov ecx, dword [esp + 0xc]
lea edx, [esi + 4]
mov dword [esp + 0xb0], edx
sub eax, esi
mov dword [esp + 0x2c], edx
mov edx, ecx
sub edx, esi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x70], edx
sub eax, ecx
mov edx, dword [esp + 0x18]
sub edx, esi
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb8], edx
sub eax, ecx
mov edx, dword [esp + 0x44]
sub edx, esi
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], edx
xor esi, esi
mov edx, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp + 0x10], ecx
nop dword [eax]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
movzx ebx, byte [ebx + edx]
mov dword [esp + 0x14], ebx
movzx ebx, byte [ecx + eax]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
add eax, ebx
add eax, eax
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
cmp eax, 0x3fc
je 0x7274d3
test eax, eax
je 0x7274d3
mov esi, dword [eax*4 + 0x86e840]
mov ecx, edi
mov eax, dword [esp + 0x70]
movzx eax, byte [edx + eax]
movzx edx, word [eax*2 + 0x94efb8]
imul edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x34]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x2c]
sar eax, 7
mov dword [esp + 0x80], eax
movzx eax, byte [ecx - 4]
movzx edx, word [eax*2 + 0x94efb8]
movzx eax, byte [ecx]
mov ecx, edi
imul edx, dword [esp + 0x34]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x14]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0xb8]
sar eax, 7
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x60]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0x10]
imul edx, dword [esp + 0x14]
movzx eax, byte [ecx + eax]
movzx eax, word [eax*2 + 0x94efb8]
imul eax, dword [esp + 0x34]
add edx, eax
imul edx, esi
mov esi, dword [esp + 0x3c]
add edx, edx
shr edx, 0x11
jmp 0x72759c
movzx eax, byte [esi + ecx + 4]
mov ecx, edi
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, edi
sar eax, 7
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax + esi]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax - 4]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x60]
sar eax, 7
mov dword [esp + 0x1c], eax
movzx eax, byte [ebx + esi + 4]
movzx edx, word [eax*2 + 0x94efb8]
mov eax, dword [esp + 0x10]
movzx eax, byte [ecx + eax]
movzx eax, word [eax*2 + 0x94efb8]
add edx, eax
add edx, edx
mov eax, edx
mov ebx, dword [esp + 0x88]
sar eax, 9
and edx, 0x1ff
mov ecx, edi
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
mov edx, dword [esp + 0x2c]
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x80]
sar eax, 7
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
add dword [esp + 0x58], 8
mov word [eax], cx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov word [esi + eax + 2], cx
mov ecx, dword [esp + 0x28]
mov word [ebx + edx], cx
add edx, 8
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x18]
mov word [esi + eax + 6], cx
add esi, 8
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x3c], esi
sub dword [esp + 0x78], 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
jne 0x727380
jmp 0x727635
mov ebx, dword [esp + 0x18]
xor esi, esi
mov eax, dword [esp + 0x40]
test al, 1
je 0x7277f8
mov eax, dword [esp + 0x44]
movzx eax, byte [esi + eax]
mov dword [esp + 0x14], eax
shl eax, 2
cmp eax, 0x3fc
je 0x727724
test eax, eax
je 0x727724
mov esi, dword [eax*4 + 0x86e840]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xc]
movzx eax, byte [ecx + eax]
mov ecx, edi
movzx edx, word [eax*2 + 0x94efb8]
imul edx, esi
imul edx, dword [esp + 0x14]
shl edx, 2
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sub ecx, edx
sar eax, 9
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x3c]
sar eax, 7
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
movzx eax, byte [ecx + eax]
mov ecx, edi
movzx edx, word [eax*2 + 0x94efb8]
imul edx, esi
imul edx, dword [esp + 0x14]
shl edx, 2
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sub ecx, edx
sar eax, 9
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul edx, eax
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + ebx]
add edx, 0x40
add edx, ecx
movzx ecx, word [eax*2 + 0x94efb8]
imul ecx, esi
imul ecx, dword [esp + 0x14]
shl ecx, 2
shr ecx, 0x11
jmp 0x7277ac
mov eax, dword [esp + 0xc]
mov ecx, edi
movzx eax, byte [esi + eax]
movzx edx, word [eax*2 + 0x94efb8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, edi
sar eax, 7
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
movzx eax, byte [esi + eax]
movzx edx, word [eax*2 + 0x94efb8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x94f1b8]
mov eax, dword [eax*4 + 0x94f1bc]
imul edx, eax
movzx eax, byte [esi + ebx]
add ecx, 0x40
add edx, ecx
movzx ecx, word [eax*2 + 0x94efb8]
shl ecx, 2
mov eax, ecx
sar edx, 7
sar eax, 9
and ecx, 0x1ff
sub edi, ecx
imul edi, dword [eax*4 + 0x94f1b8]
mov esi, dword [eax*4 + 0x94f1bc]
mov eax, dword [esp + 0x58]
imul esi, ecx
mov ecx, dword [esp + 0x60]
mov word [eax + 2], dx
mov edx, dword [esp + 0x14]
add esi, 0x40
mov word [eax], cx
add esi, edi
sar esi, 7
lea ecx, [edx*4]
mov word [eax + 4], si
mov word [eax + 6], cx
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x72781e
push dword [esp + 0x84]
push dword [esp + 0x50]
push dword [esp + 0x74]
push dword [esp + 0x3c]
call dword [0x952cc4]
add esp, 0x10
jmp 0x727896
cmp dword [esp + 0x84], 0
jle 0x727896
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x6c]
add ecx, 4
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x6c], edx
nop
movzx edi, word [ecx - 2]
movzx esi, word [ecx]
mov edx, edi
movzx ebx, word [ecx - 4]
push eax
push esi
mov ecx, ebx
call fcn.00724ba0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x74]
push dword [esp + 0x50]
push esi
mov byte [ecx + edx], al
mov edx, edi
mov ecx, ebx
call fcn.00724c70
mov ecx, dword [esp + 0x5c]
add esp, 0x10
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x60]
add ecx, 8
sub dword [esp + 0x84], 1
mov dword [esp + 0x60], ecx
jne 0x727840
push dword [esp + 0x30]
call fcn.007a2dd1
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret