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

Disassembly:
jmp 0x75f4a0
sub esp, 0x84
mov eax, dword [0xb15f84]
mov ecx, dword [0xb15f88]
mov dword [esp + 0x14], eax
mov eax, dword [0xb15f8c]
push ebx
mov ebx, dword [esp + 0x98]
sub eax, 1
mov dword [esp + 0x1c], ecx
mov ecx, dword [0xb15f90]
push ebp
push esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x94]
sub ecx, 1
push edi
mov edi, dword [0xb160b8]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov ebp, dword [eax + 0xc]
mov esi, edi
mov dword [esp + 0x88], eax
shl esi, 0xa
shl edi, 0xb
lea edx, [ebx + ebx]
mov eax, 3
sub eax, edx
add esi, 0xc02d28
add edi, 0xc43128
cmp dword [esp + 0xac], 0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x38], ebx
mov dword [esp + 0x4c], eax
je 0x768299
mov eax, dword [esp + 0x30]
push 0
add eax, 1
push 0x882345
push eax
call fcn.0057eff1
add esp, 0xc
test eax, eax
je case.0x76bfd7.5
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 0x14]
mov ecx, dword [edx + 0x1c]
sub ecx, 0
je 0x76391b
sub ecx, 1
jne case.0x76399b.5
mov edx, dword [0xb160d4]
mov ecx, edx
and ecx, 0xffffff
cmp ecx, 0xffffff
je 0x75f5d6
movzx ecx, byte [esp + 0xaa]
movzx edi, byte [0xb160d6]
imul ecx, edi
sar ecx, 8
mov byte [esp + 0xaa], cl
movzx ecx, byte [esp + 0xa9]
movzx edi, dh
imul ecx, edi
sar ecx, 8
mov byte [esp + 0xa9], cl
movzx ecx, byte [esp + 0xa8]
movzx edx, dl
imul ecx, edx
sar ecx, 8
mov byte [esp + 0xa8], cl
mov ecx, dword [0xb160b4]
cmp ecx, 0xb
ja case.0x76399b.5
jmp dword [ecx*4 + 0x770260]
mov ecx, dword [0xb160b8]
cmp ecx, 0xff
jne 0x75fc08
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
mov edx, ebx
lea edi, [esi + edx]
mov ecx, esi
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x24]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
jne 0x75f69d
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x10], ecx
jl 0x75f66b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
cmp edi, edx
jle 0x75f675
mov edi, edx
mov edx, dword [esp + 0x44]
imul edx, ebp
sub edi, ecx
add edi, 1
add edx, dword [esp + 0x40]
mov byte [eax + ebp], 1
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0xa8]
mov dword [ecx], edx
add ecx, 4
sub edi, 1
jne 0x75f693
xor edx, edx
cmp esi, dword [esp + 0x24]
mov ecx, ebx
setl dl
lea edi, [ecx + ebp]
xor ecx, ecx
cmp esi, dword [esp + 0x2c]
mov dword [esp + 0x68], edi
setg cl
mov dword [esp + 0x48], edx
xor edx, edx
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
setl dl
mov dword [esp + 0x60], ecx
xor ecx, ecx
cmp dword [esp + 0x68], edi
mov edi, dword [esp + 0x68]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x75f72a
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x75f6f6
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x75f700
mov ecx, esi
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
add edi, dword [esp + 0x40]
lea edx, [edi + edx*4]
mov edi, dword [esp + 0xa8]
lea esp, [esp]
mov dword [edx], edi
add edx, 4
sub ecx, 1
jne 0x75f720
xor edx, edx
mov edi, ebp
sub edi, ebx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x50], edi
mov edi, dword [esp + 0x50]
setg cl
mov dword [esp + 0x10], esi
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x75f7b5
mov ecx, dword [esp + 0x24]
cmp esi, ecx
jge 0x75f76e
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x75f778
mov ecx, esi
mov edx, dword [esp + 0x10]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, edi
mov byte [edi + eax], 1
mov edi, dword [esp + 0x44]
imul ecx, edi
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*4]
lea esp, [esp]
mov edx, dword [esp + 0xa8]
mov dword [ecx], edx
add ecx, 4
sub dword [esp + 0x20], 1
jne 0x75f7a0
jmp 0x75f7b9
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jl 0x75f8a7
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x30]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
setl cl
xor edx, edx
cmp ebp, ebx
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x75f82a
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x75f7f9
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x75f803
mov ecx, esi
mov byte [eax + ebp], 1
imul ebp, edi
sub ecx, edx
add ecx, 1
add ebp, dword [esp + 0x40]
lea edx, [ebp + edx*4]
mov ebp, dword [esp + 0xa8]
mov edi, edi
mov dword [edx], ebp
add edx, 4
sub ecx, 1
jne 0x75f820
mov ebp, dword [esp + 0x50]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
setl cl
xor edx, edx
cmp ebp, ebx
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x75f88b
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x75f85a
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x75f864
mov ecx, esi
mov byte [eax + ebp], 1
imul ebp, edi
sub ecx, edx
add ecx, 1
add ebp, dword [esp + 0x40]
lea ebp, [ebp + edx*4]
mov edx, dword [esp + 0xa8]
nop
mov dword [ebp], edx
add ebp, 4
sub ecx, 1
jne 0x75f880
mov ebx, dword [esp + 0xa4]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa0]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea ecx, [edx + ecx*4]
add ecx, 6
cmp ebx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ecx
jl case.0x76399b.5
lea ecx, [ebx*4]
mov dword [esp + 0x8c], ecx
lea ecx, [ebx + esi]
mov dword [esp + 0x80], ecx
lea ecx, [ebx + ebp]
imul ecx, edi
mov dword [esp + 0x84], ecx
mov ecx, esi
sub ecx, ebx
mov dword [esp + 0x58], ecx
lea ecx, [ebp + 1]
imul ecx, edi
mov dword [esp + 0x5c], ecx
mov ecx, edi
neg ecx
mov dword [esp + 0x60], ecx
mov ecx, ebp
sub ecx, ebx
imul ecx, edi
mov dword [esp + 0x74], ecx
lea ecx, [ebp - 1]
imul ecx, edi
lea edx, [esi + 1]
sub ebp, esi
mov dword [esp + 0x34], edx
lea edx, [esi - 1]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x38], edx
mov dword [esp + 0x64], ecx
mov edi, edi
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x58]
add ecx, edx
xor edx, edx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x6c], ecx
setl dl
mov dword [esp + 0x10], edi
mov esi, ebp
mov dword [esp + 0x7c], edx
xor edx, edx
cmp edi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
setg dl
mov dword [esp + 0x70], edx
xor edx, edx
cmp ecx, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp dword [esp + 0x6c], edi
mov edi, dword [esp + 0x6c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x70]
or edx, dword [esp + 0x7c]
jne 0x75f9cb
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x58], ecx
jl 0x75f99c
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
cmp ebp, edx
jle 0x75f9a6
mov esi, edx
mov edx, dword [esp + 0x5c]
sub esi, ecx
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0xa8]
add esi, 1
add ecx, dword [esp + 0x40]
mov byte [edi + eax], 1
mov dword [ecx], edx
add ecx, 4
sub esi, 1
jne 0x75f9c1
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x6c], edi
mov edi, dword [esp + 0x6c]
setg cl
mov esi, ebp
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x70]
or edx, dword [esp + 0x7c]
jne 0x75fa4d
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x58], ecx
jl 0x75fa1e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
cmp ebp, edx
jle 0x75fa28
mov esi, edx
mov edx, dword [esp + 0x64]
sub esi, ecx
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0xa8]
add esi, 1
add ecx, dword [esp + 0x40]
mov byte [edi + eax], 1
mov dword [ecx], edx
add ecx, 4
sub esi, 1
jne 0x75fa43
mov esi, dword [esp + 0x4c]
test esi, esi
jl 0x75fbbd
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
add ebp, ecx
xor edx, edx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x6c], ebp
setl dl
xor ecx, ecx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x2c]
cmp edi, edx
setg cl
mov edx, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x70]
or ecx, dword [esp + 0x7c]
jne 0x75fafa
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x75fabf
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jle 0x75facb
mov esi, ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xa8]
sub esi, edi
lea ecx, [ecx + edi*4]
add esi, 1
add ecx, dword [esp + 0x40]
mov byte [eax + ebp], 1
lea esp, [esp]
mov dword [ecx], edx
add ecx, 4
sub esi, 1
jne 0x75faf0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
lea ebp, [ecx + edx]
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
setl dl
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x70]
or edx, dword [esp + 0x7c]
jne 0x75fb7a
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x75fb47
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jle 0x75fb53
mov esi, ecx
mov edx, dword [esp + 0x40]
sub esi, edi
lea ecx, [edx + edi*4]
mov edx, dword [esp + 0xa8]
add esi, 1
add ecx, dword [esp + 0x74]
mov byte [eax + ebp], 1
mov edi, edi
mov dword [ecx], edx
add ecx, 4
sub esi, 1
jne 0x75fb70
mov ecx, dword [esp + 0x60]
add dword [esp + 0x84], ecx
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
add dword [esp + 0x74], edx
add dword [esp + 0x58], 1
sub ebp, 1
sub ecx, 4
sub ebx, 1
mov dword [esp + 0x80], ebp
mov dword [esp + 0x8c], ecx
sub esi, ecx
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x5c], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x64], edi
mov edx, 1
add dword [esp + 0x34], edx
sub dword [esp + 0x38], edx
add ecx, edx
cmp ebx, ecx
lea edx, [esi + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x75f930
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
test ecx, ecx
je case.0x76399b.5
mov edi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
mov edx, ebx
lea esi, [edi + edx]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x24]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
jne 0x75fd16
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x75fc81
mov edx, ecx
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jle 0x75fc8b
mov esi, ecx
sub esi, edx
add esi, 1
mov ecx, esi
mov esi, dword [esp + 0x44]
imul esi, ebp
add esi, dword [esp + 0x40]
mov byte [eax + ebp], 1
lea esi, [esi + edx*4]
jmp 0x75fcb0
movzx ebp, byte [esi]
movzx edx, byte [esp + 0xa8]
sub edx, ebp
imul edx, dword [0xb160b8]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [esi], dl
movzx ebp, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, ebp
imul edx, dword [0xb160b8]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [esi + 1], dl
movzx ebp, byte [esi + 2]
movzx edx, byte [esp + 0xaa]
sub edx, ebp
imul edx, dword [0xb160b8]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ecx, 1
jne 0x75fcb0
mov edx, dword [esp + 0xa0]
mov ecx, ebx
lea ebp, [edx + ecx]
xor ecx, ecx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x68], ebp
setl cl
xor edx, edx
cmp edi, dword [esp + 0x2c]
mov esi, edi
setg dl
mov dword [esp + 0x48], ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x68]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x75fe09
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jl 0x75fd7c
mov ecx, esi
mov edx, dword [esp + 0x2c]
cmp edi, edx
jle 0x75fd86
mov esi, edx
mov edx, ebp
imul edx, dword [esp + 0x44]
sub esi, ecx
add esi, 1
add edx, dword [esp + 0x40]
mov dword [esp + 0x20], esi
mov byte [eax + ebp], 1
lea esi, [edx + ecx*4]
movzx ecx, byte [esi]
movzx edx, byte [esp + 0xa8]
sub edx, ecx
imul edx, dword [0xb160b8]
shl ecx, 8
add edx, ecx
sar edx, 8
mov byte [esi], dl
movzx ecx, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, ecx
imul edx, dword [0xb160b8]
shl ecx, 8
add edx, ecx
sar edx, 8
mov byte [esi + 1], dl
movzx ecx, byte [esi + 2]
movzx edx, byte [esp + 0xaa]
sub edx, ecx
imul edx, dword [0xb160b8]
shl ecx, 8
add edx, ecx
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub dword [esp + 0x20], 1
jne 0x75fda1
mov esi, dword [esp + 0xa0]
sub esi, ebx
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x30]
setl cl
xor edx, edx
cmp dword [esp + 0x50], esi
setg dl
or ecx, edx
mov edx, dword [esp + 0x50]
movzx esi, byte [edx + eax]
or ecx, esi
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x75ff00
mov esi, dword [esp + 0x24]
cmp edi, esi
jl 0x75fe50
mov esi, edi
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jg 0x75fe5a
mov ecx, edi
sub ecx, esi
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, edx
imul ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x40]
mov byte [edx + eax], 1
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa8]
mov dword [esp + 0x3c], ecx
movzx ecx, byte [esp + 0xa9]
mov dword [esp + 0x38], ecx
movzx ecx, byte [esp + 0xaa]
mov dword [esp + 0x34], ecx
lea esp, [esp]
movzx ebp, byte [esi]
mov ecx, dword [esp + 0x3c]
sub ecx, ebp
imul ecx, dword [0xb160b8]
shl ebp, 8
add ecx, ebp
sar ecx, 8
mov byte [esi], cl
movzx ebp, byte [esi + 1]
mov ecx, dword [esp + 0x38]
sub ecx, ebp
imul ecx, dword [0xb160b8]
shl ebp, 8
add ecx, ebp
sar ecx, 8
mov byte [esi + 1], cl
movzx ebp, byte [esi + 2]
mov ecx, dword [esp + 0x34]
sub ecx, ebp
imul ecx, dword [0xb160b8]
shl ebp, 8
add ecx, ebp
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub dword [esp + 0x20], 1
jne 0x75fea0
mov ebp, dword [esp + 0x68]
cmp dword [esp + 0x4c], 0
mov esi, dword [esp + 0x44]
jl 0x7600bd
movzx esi, byte [eax + ebp]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
setl cl
xor ebx, ebx
cmp ebp, dword [esp + 0x30]
setg bl
or ecx, ebx
or ecx, esi
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x75ffdf
mov esi, dword [esp + 0x24]
cmp edi, esi
jl 0x75ff41
mov esi, edi
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jg 0x75ff4b
mov ecx, edi
mov byte [eax + ebp], 1
imul ebp, dword [esp + 0x44]
sub ecx, esi
add ecx, 1
add ebp, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
lea ecx, [ebp + esi*4]
movzx esi, byte [esp + 0xa9]
movzx ebp, byte [esp + 0xa8]
mov dword [esp + 0x38], esi
movzx esi, byte [esp + 0xaa]
mov dword [esp + 0x34], esi
movzx esi, byte [ecx]
mov ebx, ebp
sub ebx, esi
imul ebx, dword [0xb160b8]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx], bl
movzx esi, byte [ecx + 1]
mov ebx, dword [esp + 0x38]
sub ebx, esi
imul ebx, dword [0xb160b8]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx + 1], bl
movzx esi, byte [ecx + 2]
mov ebx, dword [esp + 0x34]
sub ebx, esi
imul ebx, dword [0xb160b8]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub dword [esp + 0x20], 1
jne 0x75ff85
xor ecx, ecx
cmp edx, dword [esp + 0x28]
mov esi, edi
setl cl
xor ebx, ebx
cmp edx, dword [esp + 0x30]
mov ebp, edi
setg bl
or ecx, ebx
movzx ebx, byte [edx + eax]
or ecx, ebx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7600a0
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x760015
mov ebp, ecx
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jle 0x76001f
mov esi, ecx
mov byte [edx + eax], 1
imul edx, dword [esp + 0x44]
sub esi, ebp
add esi, 1
add edx, dword [esp + 0x40]
mov ebx, esi
lea ecx, [edx + ebp*4]
movzx ebp, byte [esp + 0xa8]
mov edi, edi
movzx esi, byte [ecx]
mov edx, ebp
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx], dl
movzx esi, byte [ecx + 1]
movzx edx, byte [esp + 0xa9]
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx + 1], dl
movzx esi, byte [ecx + 2]
movzx edx, byte [esp + 0xaa]
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx + 2], dl
add ecx, 4
sub ebx, 1
jne 0x760040
mov ebx, dword [esp + 0xa4]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea ecx, [edx + ecx*4]
mov dword [esp + 0x4c], ecx
add dword [esp + 0x4c], 6
cmp ebx, 1
mov dword [esp + 0x50], 1
jl case.0x76399b.5
lea ecx, [edi + 1]
mov dword [esp + 0x58], ecx
lea edx, [ebx*4]
mov dword [esp + 0x7c], edx
lea ecx, [edi - 1]
lea edx, [ebx + edi]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xa0]
lea edx, [ebx + ecx]
imul edx, esi
mov dword [esp + 0x6c], edx
lea edx, [ecx + 1]
imul edx, esi
mov dword [esp + 0x84], edx
mov edx, esi
neg edx
mov dword [esp + 0x60], edx
mov edx, ecx
sub edx, ebx
imul edx, esi
mov dword [esp + 0x80], edx
lea edx, [ecx - 1]
imul edx, esi
mov ebp, edi
sub ebp, ebx
sub ecx, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x48], ecx
jmp 0x760149
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x38]
mov edi, ebp
lea ebp, [edx + ecx]
xor ecx, ecx
mov edx, esi
cmp edx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
setl cl
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
setg cl
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
setl cl
xor edx, edx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x760243
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x34], ecx
jge 0x7601b6
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jle 0x7601c2
mov esi, ecx
mov ecx, dword [esp + 0x84]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx ecx, byte [esp + 0xa8]
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, byte [esp + 0xaa]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x7601e3
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
lea ebp, [edx + ecx]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
setl cl
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x30]
xor edx, edx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x760320
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x760294
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jle 0x7602a0
mov esi, ecx
mov ecx, dword [esp + 0x74]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx ecx, byte [esp + 0xa8]
mov edi, edi
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, byte [esp + 0xaa]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x7602c0
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x760536
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
lea ebp, [edx + ecx]
xor ecx, ecx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x5c], ebp
setl cl
xor edx, edx
mov dword [esp + 0x64], ecx
mov ecx, edi
cmp ecx, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x70], edx
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x760423
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x760399
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jle 0x7603a5
mov esi, ecx
mov edx, dword [esp + 0x6c]
movzx ecx, byte [esp + 0xa8]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [edx + edi*4]
add esi, dword [esp + 0x40]
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, byte [esp + 0xaa]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x7603c3
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
lea ebp, [ecx + edx]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
setl cl
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x30]
xor edx, edx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x760501
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x760474
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jle 0x760480
mov esi, ecx
mov ecx, dword [esp + 0x80]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx ecx, byte [esp + 0xa8]
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, byte [esp + 0xaa]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x7604a1
mov ecx, dword [esp + 0x60]
add dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x7c]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
mov esi, 1
sub dword [esp + 0x38], esi
add dword [esp + 0x34], esi
sub ecx, 4
sub ebx, esi
mov dword [esp + 0x7c], ecx
sub edx, ecx
jmp 0x76053b
mov esi, 1
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x84], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x58], esi
add dword [esp + 0x74], edi
sub dword [esp + 0x3c], esi
add ecx, esi
cmp ebx, ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x760141
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76399b.5
mov ecx, dword [esp + 0x9c]
mov edx, ebx
lea edi, [ecx + edx]
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], edi
mov edi, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + edi]
or ecx, edx
jne 0x7606d3
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x760604
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
cmp ecx, ebp
jle 0x760612
mov ecx, ebp
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, edi
add ecx, dword [esp + 0x40]
mov byte [eax + edi], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edi, edi
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov byte [esp + 0x1e], cl
mov ecx, dword [edi]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov edx, edi
or edi, dword [esp + 0x34]
and ecx, 0xfefeff
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
and edi, 0x10100
sub ecx, ebp
or ecx, edi
mov edi, dword [esp + 0x10]
or ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x760660
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
xor ecx, ecx
mov edx, ebx
add edi, edx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x68], edi
setl cl
xor edx, edx
cmp ebp, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x48], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp dword [esp + 0x68], edi
mov edi, dword [esp + 0x68]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7607fc
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x760736
mov edx, ebp
mov ecx, dword [esp + 0x2c]
cmp ebp, ecx
jg 0x760740
mov ecx, ebp
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
add edi, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esp + 0xa8]
lea edi, [edi + edx*4]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa9]
mov dword [esp + 0x3c], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xaa]
mov dword [esp + 0x18], edx
lea edx, [esi + ecx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
lea ebx, [ebx]
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x1c], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x1d], dl
movzx edx, byte [ecx]
mov ecx, dword [edi]
mov byte [esp + 0x1e], dl
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov edx, edi
or edi, dword [esp + 0x34]
and ecx, 0xfefeff
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
and edi, 0x10100
sub ecx, ebp
or ecx, edi
mov edi, dword [esp + 0x10]
or ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x760790
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
sub edi, ebx
xor edx, edx
cmp edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x9c]
setl dl
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x50], edi
setg cl
or edx, ecx
mov ecx, dword [esp + 0x50]
movzx edi, byte [ecx + eax]
or edx, edi
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x76091c
mov edi, dword [esp + 0x24]
cmp ebp, edi
jl 0x760851
mov edi, ebp
mov edx, dword [esp + 0x2c]
cmp ebp, edx
jg 0x76085b
mov edx, ebp
mov byte [ecx + eax], 1
imul ecx, dword [esp + 0x44]
sub edx, edi
add edx, 1
add ecx, dword [esp + 0x40]
mov dword [esp + 0x20], edx
movzx edx, byte [esp + 0xa8]
lea edi, [ecx + edi*4]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov byte [esp + 0x1e], cl
mov ecx, dword [edi]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
and ecx, 0xfefeff
mov edi, edx
or edx, dword [esp + 0x34]
and edi, 0xfefeff
add edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and edx, 0x10100
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x7608a5
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x9c]
mov edi, dword [esp + 0x4c]
test edi, edi
mov edx, dword [esp + 0x44]
jl 0x760b2f
mov edi, dword [esp + 0x68]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x14], ebp
setl dl
xor ebx, ebx
cmp edi, dword [esp + 0x30]
mov dword [esp + 0x10], ebp
setg bl
or edx, ebx
movzx ebx, byte [edi + eax]
or edx, ebx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x760a29
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x76096a
mov edx, ebp
mov ecx, dword [esp + 0x2c]
cmp ebp, ecx
jg 0x760976
mov ecx, dword [esp + 0x14]
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
add edi, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esp + 0xa8]
lea ebx, [edi + edx*4]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa9]
mov dword [esp + 0x3c], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xaa]
mov dword [esp + 0x18], edx
lea edx, [esi + ecx*4]
mov dword [esp + 0x14], edx
lea esp, [esp]
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x1c], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x1d], dl
movzx edx, byte [ecx]
mov ecx, dword [ebx]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and ecx, 0xfefeff
mov edi, edx
or edx, dword [ebx]
and edi, 0xfefeff
add edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and edx, 0x10100
or ecx, edx
or ecx, edi
mov dword [ebx], ecx
add ebx, 4
sub dword [esp + 0x20], 1
jne 0x7609c0
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x9c]
xor edx, edx
cmp ecx, dword [esp + 0x28]
mov edi, ebp
setl dl
xor ebx, ebx
cmp ecx, dword [esp + 0x30]
mov dword [esp + 0x10], ebp
setg bl
or edx, ebx
movzx ebx, byte [ecx + eax]
or edx, ebx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x760b16
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x760a61
mov edx, ebp
mov ebx, dword [esp + 0x2c]
cmp ebp, ebx
jle 0x760a6b
mov edi, ebx
mov byte [ecx + eax], 1
imul ecx, dword [esp + 0x44]
sub edi, edx
add edi, 1
add ecx, dword [esp + 0x40]
mov dword [esp + 0x20], edi
lea ebx, [ecx + edx*4]
movzx ecx, byte [esp + 0xa8]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa9]
mov dword [esp + 0x3c], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xaa]
mov dword [esp + 0x18], edx
lea edx, [esi + ecx*4]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x1c], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x1d], dl
movzx edx, byte [ecx]
mov ecx, dword [ebx]
mov byte [esp + 0x1e], dl
mov edi, dword [esp + 0x1c]
and ecx, 0xfefeff
mov edx, edi
or edi, dword [ebx]
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and edi, 0x10100
or ecx, edi
or ecx, edx
mov dword [ebx], ecx
add ebx, 4
sub dword [esp + 0x20], 1
jne 0x760ab1
mov ebp, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa4]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea edi, [edi + ecx*4]
add edi, 6
cmp ebx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], edi
jl case.0x76399b.5
lea ecx, [ebx*4]
mov dword [esp + 0x7c], ecx
lea ecx, [ebp + 1]
mov dword [esp + 0x58], ecx
lea ecx, [ebx + ebp]
mov dword [esp + 0x38], ecx
lea ecx, [ebp - 1]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xa0]
lea edi, [ebx + ecx]
imul edi, edx
mov dword [esp + 0x6c], edi
mov edi, ebp
sub edi, ebx
mov dword [esp + 0x68], edi
lea edi, [ecx + 1]
imul edi, edx
mov dword [esp + 0x84], edi
mov edi, edx
neg edi
mov dword [esp + 0x60], edi
mov edi, ecx
sub edi, ebx
imul edi, edx
mov dword [esp + 0x80], edi
lea edi, [ecx - 1]
imul edi, edx
sub ecx, ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x48], ecx
jmp 0x760bc4
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x68]
add edi, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x10], edx
setl cl
mov dword [esp + 0x5c], edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
setg cl
xor edx, edx
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
setl dl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x760cfc
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x68], edx
jl 0x760c36
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jg 0x760c44
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov byte [esp + 0x1e], cl
mov ecx, dword [edi]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov edx, edi
or edi, dword [esp + 0x34]
and ecx, 0xfefeff
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
and edi, 0x10100
sub ecx, ebp
or ecx, edi
mov edi, dword [esp + 0x10]
or ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x760c90
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x760e1c
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x68], edx
jl 0x760d59
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jg 0x760d67
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov byte [esp + 0x1e], cl
mov ecx, dword [edi]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov edx, edi
or edi, dword [esp + 0x34]
and ecx, 0xfefeff
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
and edi, 0x10100
sub ecx, ebp
or ecx, edi
mov edi, dword [esp + 0x10]
or ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x760db0
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x7610b3
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x54]
add ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
setl dl
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x70], edx
xor edx, edx
cmp ebp, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x64], edx
xor edx, edx
cmp ecx, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x760f5d
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x760e9a
mov edx, ebp
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jg 0x760ea8
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov byte [esp + 0x1e], cl
mov ecx, dword [edi]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov edx, edi
or edi, dword [esp + 0x34]
and ecx, 0xfefeff
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
and edi, 0x10100
sub ecx, ebp
or ecx, edi
mov edi, dword [esp + 0x10]
or ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x760ef1
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x761080
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x54], edx
jl 0x760fba
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jg 0x760fc8
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov byte [esp + 0x1e], cl
mov ecx, dword [edi]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov edx, edi
or edi, dword [esp + 0x34]
and ecx, 0xfefeff
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
and edi, 0x10100
sub ecx, ebp
or ecx, edi
mov edi, dword [esp + 0x10]
or ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x761014
mov edx, dword [esp + 0x60]
add dword [esp + 0x6c], edx
mov edx, dword [esp + 0x44]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
mov ecx, 1
sub dword [esp + 0x38], ecx
add dword [esp + 0x68], ecx
sub ebx, ecx
mov ecx, dword [esp + 0x7c]
sub ecx, 4
mov dword [esp + 0x7c], ecx
sub edx, ecx
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x84], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x58], 1
add dword [esp + 0x74], edi
sub dword [esp + 0x54], 1
add ecx, 1
cmp ebx, ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x760bc0
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76399b.5
mov ecx, dword [esp + 0x9c]
mov edx, ebx
lea edi, [ecx + edx]
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], edi
mov edi, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + edi]
or ecx, edx
jne 0x76122e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x76117f
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
cmp ecx, ebp
jle 0x76118d
mov ecx, ebp
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, edi
add ecx, dword [esp + 0x40]
mov byte [eax + edi], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x1e], cl
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
jne 0x7611d5
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
xor ecx, ecx
mov edx, ebx
add edi, edx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x68], edi
setl cl
xor edx, edx
cmp ebp, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x48], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp dword [esp + 0x68], edi
mov edi, dword [esp + 0x68]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x761333
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x761291
mov edx, ebp
mov ecx, dword [esp + 0x2c]
cmp ebp, ecx
jg 0x76129b
mov ecx, ebp
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
add edi, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esp + 0xa8]
lea edi, [edi + edx*4]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa9]
mov dword [esp + 0x3c], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xaa]
mov dword [esp + 0x18], edx
lea edx, [esi + ecx*4]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x1c], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x1d], dl
movzx edx, byte [ecx]
mov byte [esp + 0x1e], dl
mov edx, dword [edi]
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
jne 0x7612e1
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
xor edx, edx
sub edi, ebx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x50]
setl dl
xor ecx, ecx
cmp dword [esp + 0x50], edi
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x76143a
mov edi, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp edi, edx
jl 0x761388
mov edx, edi
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jg 0x761392
mov ecx, edi
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, ebp
imul ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x40]
mov byte [eax + ebp], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edi, edi
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov edi, dword [edi]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov byte [esp + 0x1e], cl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
or edi, 0x1010100
sub edi, edx
mov ecx, edi
and ecx, 0x1010100
mov edx, ecx
shr edx, 8
sub ecx, edx
and ecx, edi
mov edi, dword [esp + 0x10]
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x7613e0
cmp dword [esp + 0x4c], 0
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x9c]
jl 0x761646
mov edi, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x761542
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x761497
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x7614a3
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
movzx ecx, byte [esp + 0xa8]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x3c], ecx
movzx ecx, byte [esp + 0xa9]
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esp + 0xaa]
lea ecx, [esi + ecx*4]
lea edx, [edi + edx*4]
mov dword [esp + 0x14], ecx
lea esp, [esp]
mov ecx, dword [esp + 0x3c]
movzx ecx, byte [ecx]
mov edi, dword [edx]
mov byte [esp + 0x1c], cl
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx]
mov byte [esp + 0x1d], cl
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx]
mov byte [esp + 0x1e], cl
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edi, 0x1010100
sub edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and ecx, edi
mov dword [edx], ecx
add edx, 4
sub dword [esp + 0x20], 1
jne 0x7614f0
mov ecx, dword [esp + 0x9c]
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov edi, ecx
setl dl
xor ebx, ebx
cmp ebp, dword [esp + 0x30]
setg bl
or edx, ebx
movzx ebx, byte [eax + ebp]
or edx, ebx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x761622
mov edx, dword [esp + 0x24]
mov ebx, ecx
cmp ebx, edx
jge 0x76157f
mov ecx, edx
mov edx, dword [esp + 0x2c]
cmp ebx, edx
jle 0x761589
mov edi, edx
mov byte [eax + ebp], 1
imul ebp, dword [esp + 0x44]
sub edi, ecx
add edi, 1
add ebp, dword [esp + 0x40]
lea ebp, [ebp + ecx*4]
movzx ecx, byte [esp + 0xa8]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa9]
mov dword [esp + 0x3c], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xaa]
mov dword [esp + 0x18], edx
lea edx, [esi + ecx*4]
mov dword [esp + 0x14], edx
lea esp, [esp]
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x1c], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x1d], dl
movzx edx, byte [ecx]
mov byte [esp + 0x1e], dl
mov edx, dword [ebp]
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and ecx, edx
mov dword [ebp], ecx
add ebp, 4
sub edi, 1
jne 0x7615d0
mov ebx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
add ebx, 0xffffffff
mov edx, ebx
neg edx
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x4c], edx
add dword [esp + 0x4c], 6
cmp ebx, 1
mov dword [esp + 0x50], 1
jl case.0x76399b.5
lea edx, [ebx*4]
mov dword [esp + 0x7c], edx
lea edx, [ecx + 1]
mov dword [esp + 0x54], edx
lea edx, [ebx + ecx]
mov dword [esp + 0x38], edx
lea edx, [ecx - 1]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xa0]
lea ebp, [ebx + edx]
imul ebp, edi
mov dword [esp + 0x6c], ebp
mov ebp, ecx
sub ebp, ebx
mov dword [esp + 0x34], ebp
lea ebp, [edx + 1]
imul ebp, edi
mov dword [esp + 0x84], ebp
mov ebp, edi
neg ebp
mov dword [esp + 0x60], ebp
mov ebp, edx
sub ebp, ebx
imul ebp, edi
mov dword [esp + 0x80], ebp
lea ebp, [edx - 1]
imul ebp, edi
sub edx, ecx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x48], edx
jmp 0x7616d4
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
add edi, edx
xor edx, edx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
setl dl
mov dword [esp + 0x5c], edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x70], edx
xor edx, edx
cmp ecx, dword [esp + 0x2c]
setg dl
xor ecx, ecx
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
setl cl
mov dword [esp + 0x64], edx
xor edx, edx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x7617f2
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x34], edx
jl 0x761746
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jg 0x761754
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
lea esp, [esp]
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x1e], cl
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
jne 0x7617a0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x7618f4
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x34], edx
jl 0x76184f
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jg 0x76185d
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x1e], cl
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
jne 0x7618a2
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x761b55
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x58]
add ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
setl dl
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x64], edx
xor edx, edx
cmp ebp, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x70], edx
xor edx, edx
cmp ecx, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x761a17
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x761972
mov edx, ebp
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x761980
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x1e], cl
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
jne 0x7619c5
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x761b22
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x761a74
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x761a82
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
mov byte [edi + eax], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
add edi, dword [esp + 0x40]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
mov edx, dword [esp + 0x3c]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x1c], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x1d], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x1e], cl
mov ecx, dword [esp + 0x1c]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x20], 1
jne 0x761ad0
mov edx, dword [esp + 0x60]
add dword [esp + 0x6c], edx
mov edx, dword [esp + 0x44]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
mov ecx, 1
sub dword [esp + 0x38], ecx
add dword [esp + 0x34], ecx
sub ebx, ecx
mov ecx, dword [esp + 0x7c]
sub ecx, 4
mov dword [esp + 0x7c], ecx
sub edx, ecx
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x84], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x54], 1
add dword [esp + 0x74], edi
sub dword [esp + 0x58], 1
add ecx, 1
cmp ebx, ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x7616d0
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
mov edx, ebx
lea edi, [esi + edx]
mov ecx, esi
sub ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
setl dl
xor ecx, ecx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0x2c]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x30]
setg cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0xa0], ebp
setg cl
or edx, ecx
mov ecx, dword [esp + 0xa0]
movzx ebp, byte [eax + ecx]
or edx, ebp
jne 0x761c8c
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
cmp edx, ebp
jge 0x761c12
mov edx, ebp
mov ebp, dword [esp + 0x2c]
cmp edi, ebp
jle 0x761c1c
mov edi, ebp
sub edi, edx
add edi, 1
mov ebp, edi
mov edi, dword [esp + 0x44]
imul edi, ecx
add edi, dword [esp + 0x40]
mov byte [eax + ecx], 1
lea edi, [edi + edx*4]
jmp 0x761c40
movzx edx, byte [edi]
movzx ecx, byte [esp + 0xa8]
imul edx, ecx
movzx ecx, byte [esp + 0xa9]
sar edx, 8
mov byte [edi], dl
movzx edx, byte [edi + 1]
imul edx, ecx
movzx ecx, byte [esp + 0xaa]
sar edx, 8
mov byte [edi + 1], dl
movzx edx, byte [edi + 2]
imul edx, ecx
sar edx, 8
mov byte [edi + 2], dl
add edi, 4
sub ebp, 1
jne 0x761c40
mov ecx, dword [esp + 0xa0]
mov edx, ebx
lea ebp, [ecx + edx]
xor ecx, ecx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x68], ebp
setl cl
xor edx, edx
cmp esi, dword [esp + 0x2c]
mov edi, esi
setg dl
mov dword [esp + 0x48], ecx
mov dword [esp + 0x60], edx
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x68], ebp
setg cl
or edx, ecx
mov ecx, dword [esp + 0x68]
movzx ebp, byte [ecx + eax]
or edx, ebp
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x761d55
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x761ce7
mov edx, esi
mov ebp, dword [esp + 0x2c]
cmp esi, ebp
jle 0x761cf1
mov edi, ebp
mov byte [ecx + eax], 1
imul ecx, dword [esp + 0x44]
sub edi, edx
add edi, 1
add ecx, dword [esp + 0x40]
mov ebp, edi
lea edi, [ecx + edx*4]
jmp 0x761d10
movzx edx, byte [edi]
movzx ecx, byte [esp + 0xa8]
imul edx, ecx
movzx ecx, byte [esp + 0xa9]
sar edx, 8
mov byte [edi], dl
movzx edx, byte [edi + 1]
imul edx, ecx
movzx ecx, byte [esp + 0xaa]
sar edx, 8
mov byte [edi + 1], dl
movzx edx, byte [edi + 2]
imul edx, ecx
sar edx, 8
mov byte [edi + 2], dl
add edi, 4
sub ebp, 1
jne 0x761d10
mov edi, dword [esp + 0xa0]
xor ecx, ecx
mov ebp, edi
sub ebp, ebx
cmp ebp, dword [esp + 0x28]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x30]
setl cl
xor edx, edx
cmp dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x50]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x761e2c
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x761d9e
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x761da8
mov ecx, esi
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, ebp
imul ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x40]
mov byte [eax + ebp], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa8]
movzx ecx, byte [esp + 0xa9]
mov dword [esp + 0x3c], edx
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
jmp 0x761df0
movzx ecx, byte [edi]
imul ecx, dword [esp + 0x3c]
sar ecx, 8
mov byte [edi], cl
movzx edx, byte [edi + 1]
imul edx, dword [esp + 0x38]
sar edx, 8
mov byte [edi + 1], dl
movzx ecx, byte [edi + 2]
imul ecx, dword [esp + 0x34]
sar ecx, 8
mov byte [edi + 2], cl
add edi, 4
sub dword [esp + 0x20], 1
jne 0x761df0
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
mov edx, dword [esp + 0x44]
jl 0x761fbf
mov edi, dword [esp + 0x68]
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x761ef5
mov ebx, dword [esp + 0x24]
cmp esi, ebx
jl 0x761e72
mov ebx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x761e7c
mov ecx, esi
mov edx, dword [esp + 0x44]
mov byte [edi + eax], 1
imul edi, edx
sub ecx, ebx
add ecx, 1
add edi, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
lea ecx, [edi + ebx*4]
movzx edi, byte [esp + 0xa8]
mov dword [esp + 0x3c], edi
movzx edi, byte [esp + 0xa9]
mov dword [esp + 0x38], edi
movzx edi, byte [esp + 0xaa]
jmp 0x761ec0
movzx ebx, byte [ecx]
imul ebx, dword [esp + 0x3c]
sar ebx, 8
mov byte [ecx], bl
movzx ebx, byte [ecx + 1]
imul ebx, dword [esp + 0x38]
sar ebx, 8
mov byte [ecx + 1], bl
movzx ebx, byte [ecx + 2]
imul ebx, edi
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub dword [esp + 0x20], 1
jne 0x761ec0
jmp 0x761ef9
mov edx, dword [esp + 0x44]
movzx edi, byte [eax + ebp]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
setl cl
xor ebx, ebx
cmp ebp, dword [esp + 0x30]
setg bl
or ecx, ebx
or ecx, edi
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x761fa3
mov ebx, dword [esp + 0x24]
cmp esi, ebx
jl 0x761f2b
mov ebx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x761f35
mov ecx, esi
mov byte [eax + ebp], 1
imul ebp, edx
sub ecx, ebx
add ecx, 1
add ebp, dword [esp + 0x40]
mov edi, ecx
lea ecx, [ebp + ebx*4]
movzx ebx, byte [esp + 0xa8]
mov dword [esp + 0x3c], ebx
movzx ebx, byte [esp + 0xa9]
mov dword [esp + 0x38], ebx
movzx ebx, byte [esp + 0xaa]
mov dword [esp + 0x34], ebx
nop
movzx ebx, byte [ecx]
imul ebx, dword [esp + 0x3c]
sar ebx, 8
mov byte [ecx], bl
movzx ebx, byte [ecx + 1]
imul ebx, dword [esp + 0x38]
sar ebx, 8
mov byte [ecx + 1], bl
movzx ebx, byte [ecx + 2]
imul ebx, dword [esp + 0x34]
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub edi, 1
jne 0x761f70
mov ebx, dword [esp + 0xa4]
mov edi, dword [esp + 0x4c]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea ecx, [edi + ecx*4]
mov edi, dword [esp + 0xa0]
add ecx, 6
cmp ebx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ecx
jl case.0x76399b.5
lea ecx, [ebx*4]
mov dword [esp + 0x7c], ecx
lea ecx, [esi + 1]
mov dword [esp + 0x54], ecx
lea ecx, [esi - 1]
mov dword [esp + 0x34], ecx
lea ecx, [ebx + edi]
imul ecx, edx
mov dword [esp + 0x80], ecx
mov ecx, esi
sub ecx, ebx
mov dword [esp + 0x38], ecx
lea ecx, [edi + 1]
imul ecx, edx
mov dword [esp + 0x74], ecx
mov ecx, edx
neg ecx
mov dword [esp + 0x60], ecx
mov ecx, edi
sub ecx, ebx
imul ecx, edx
mov dword [esp + 0x84], ecx
lea ecx, [edi - 1]
imul ecx, edx
mov dword [esp + 0x5c], ecx
mov ecx, edi
lea ebp, [ebx + esi]
sub ecx, esi
mov dword [esp + 0x78], ebp
mov dword [esp + 0x48], ecx
jmp 0x762044
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
add edx, ecx
mov edi, dword [esp + 0x38]
xor ecx, ecx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x6c], edx
setl cl
xor edx, edx
mov esi, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
mov ecx, dword [esp + 0x6c]
setg dl
mov dword [esp + 0x64], edx
xor edx, edx
cmp ecx, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x762111
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x7620aa
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x78], ecx
jle 0x7620b6
mov esi, ecx
mov edx, dword [esp + 0x74]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [edx + edi*4]
add esi, dword [esp + 0x40]
movzx edi, byte [esp + 0xa8]
movzx ecx, byte [esi]
imul ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edx, byte [esi + 1]
movzx ecx, byte [esp + 0xa9]
imul edx, ecx
movzx ecx, byte [esp + 0xaa]
sar edx, 8
mov byte [esi + 1], dl
movzx edx, byte [esi + 2]
imul edx, ecx
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x7620d4
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
lea ebp, [edx + ecx]
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x38]
setl dl
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x6c], ebp
setg cl
or edx, ecx
mov ecx, dword [esp + 0x6c]
movzx ebp, byte [ecx + eax]
or edx, ebp
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x7621c9
mov edx, dword [esp + 0x24]
cmp edi, edx
jge 0x76215e
mov edi, edx
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x78]
cmp ebp, edx
jle 0x76216c
mov esi, edx
mov edx, dword [esp + 0x5c]
sub esi, edi
add esi, 1
mov byte [ecx + eax], 1
mov ecx, esi
lea esi, [edx + edi*4]
add esi, dword [esp + 0x40]
movzx edx, byte [esi]
movzx edi, byte [esp + 0xa8]
imul edx, edi
movzx edi, byte [esp + 0xa9]
sar edx, 8
mov byte [esi], dl
movzx edx, byte [esi + 1]
imul edx, edi
movzx edi, byte [esp + 0xaa]
sar edx, 8
mov byte [esi + 1], dl
movzx edx, byte [esi + 2]
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ecx, 1
jne 0x762182
jmp 0x7621cd
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x7623ab
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
add ebp, ecx
xor edx, edx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x6c], ebp
setl dl
xor ecx, ecx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x2c]
cmp edi, edx
setg cl
mov edx, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x7622ad
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x76223f
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jle 0x76224b
mov esi, ecx
mov ecx, dword [esp + 0x80]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx edi, byte [esp + 0xa8]
lea esp, [esp]
movzx edx, byte [esi]
movzx ecx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edx, byte [esi + 1]
imul edx, ecx
movzx ecx, byte [esp + 0xaa]
sar edx, 8
mov byte [esi + 1], dl
movzx edx, byte [esi + 2]
imul edx, ecx
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x762270
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
lea ebp, [edx + ecx]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
setl cl
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x30]
xor edx, edx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x76236d
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x7622fe
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jle 0x76230a
mov esi, ecx
mov ecx, dword [esp + 0x84]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx edi, byte [esp + 0xa8]
jmp 0x762330
movzx edx, byte [esi]
movzx ecx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edx, byte [esi + 1]
imul edx, ecx
movzx ecx, byte [esp + 0xaa]
sar edx, 8
mov byte [esi + 1], dl
movzx edx, byte [esi + 2]
imul edx, ecx
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x762330
mov ecx, dword [esp + 0x60]
add dword [esp + 0x80], ecx
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
add dword [esp + 0x84], edx
mov edx, dword [esp + 0x4c]
mov esi, 1
add dword [esp + 0x38], esi
sub ebp, esi
sub ecx, 4
sub ebx, esi
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ecx
sub edx, ecx
jmp 0x7623b0
mov esi, 1
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x74], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x54], esi
add dword [esp + 0x5c], edi
sub dword [esp + 0x34], esi
add ecx, esi
cmp ebx, ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x762040
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ebp, dword [esp + 0x9c]
mov edi, dword [esp + 0x28]
mov edx, ebx
lea esi, [edx + ebp]
mov ecx, ebp
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x24]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], edi
mov edi, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + edi]
or ecx, edx
jne 0x76251d
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
cmp ecx, edx
jge 0x762467
mov ecx, edx
mov edx, dword [esp + 0x2c]
cmp esi, edx
jle 0x762471
mov esi, edx
mov edx, dword [esp + 0x44]
imul edx, edi
sub esi, ecx
add esi, 1
add edx, dword [esp + 0x40]
mov dword [esp + 0x20], esi
mov byte [eax + edi], 1
lea esi, [edx + ecx*4]
lea esp, [esp]
movzx edi, byte [esi]
movzx ecx, byte [esp + 0xa8]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa9]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, byte [esp + 0xaa]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub dword [esp + 0x20], 1
jne 0x762490
mov ecx, dword [esp + 0xa0]
mov edx, ebx
lea esi, [ecx + edx]
xor edx, edx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x68], esi
setl dl
xor ecx, ecx
cmp ebp, dword [esp + 0x2c]
mov edi, ebp
setg cl
mov dword [esp + 0x48], edx
xor edx, edx
cmp esi, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
setl dl
mov dword [esp + 0x60], ecx
xor ecx, ecx
cmp dword [esp + 0x68], esi
mov esi, dword [esp + 0x68]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x762641
mov ecx, dword [esp + 0x24]
cmp ebp, ecx
jl 0x762583
mov ecx, edi
mov edx, dword [esp + 0x2c]
cmp ebp, edx
jle 0x76258d
mov edi, edx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
sub edi, ecx
add edi, 1
add esi, dword [esp + 0x40]
mov dword [esp + 0x20], edi
lea esi, [esi + ecx*4]
jmp 0x7625b0
movzx edi, byte [esi]
movzx ecx, byte [esp + 0xa8]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa9]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, byte [esp + 0xaa]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub dword [esp + 0x20], 1
jne 0x7625b0
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0xa0]
sub edi, ebx
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x50], edi
mov edi, dword [esp + 0x50]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x76274f
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x762688
mov edx, ebp
mov ecx, dword [esp + 0x2c]
cmp ebp, ecx
jg 0x762692
mov ecx, ebp
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
add edi, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esp + 0xa9]
lea esi, [edi + edx*4]
movzx edx, byte [esp + 0xa8]
mov dword [esp + 0x3c], edx
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
nop
movzx edi, byte [esi]
mov ecx, edi
imul ecx, dword [esp + 0x3c]
sar ecx, 8
movzx edx, cl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
mov ecx, edi
imul ecx, dword [esp + 0x38]
sar ecx, 8
movzx edx, cl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov ecx, edi
imul ecx, dword [esp + 0x34]
sar ecx, 8
movzx edx, cl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub dword [esp + 0x20], 1
jne 0x7626d0
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x68]
cmp dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x44]
jl 0x762965
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x762857
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x762797
mov edx, ebp
mov ecx, dword [esp + 0x2c]
cmp ebp, ecx
jg 0x7627a1
mov ecx, ebp
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
add esi, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa8]
mov dword [esp + 0x3c], edx
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x38], edx
movzx edx, byte [esp + 0xaa]
mov dword [esp + 0x34], edx
mov edi, edi
movzx esi, byte [ecx]
mov edx, esi
imul edx, dword [esp + 0x3c]
sar edx, 8
movzx edx, dl
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx], dl
movzx esi, byte [ecx + 1]
mov edx, esi
imul edx, dword [esp + 0x38]
sar edx, 8
movzx edx, dl
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx + 1], dl
movzx esi, byte [ecx + 2]
mov edx, esi
imul edx, dword [esp + 0x34]
sar edx, 8
movzx edx, dl
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx + 2], dl
add ecx, 4
sub dword [esp + 0x20], 1
jne 0x7627e0
xor edx, edx
cmp edi, dword [esp + 0x28]
mov esi, ebp
setl dl
xor ebx, ebx
cmp edi, dword [esp + 0x30]
mov ecx, ebp
setg bl
or edx, ebx
movzx ebx, byte [edi + eax]
or edx, ebx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x762941
mov edx, dword [esp + 0x24]
cmp ebp, edx
jge 0x76288d
mov ecx, edx
mov edx, dword [esp + 0x2c]
cmp ebp, edx
jle 0x762897
mov esi, edx
mov edx, dword [esp + 0x44]
mov byte [edi + eax], 1
imul edi, edx
sub esi, ecx
add esi, 1
add edi, dword [esp + 0x40]
mov dword [esp + 0x20], esi
lea ecx, [edi + ecx*4]
movzx esi, byte [ecx]
movzx edi, byte [esp + 0xa8]
mov ebx, esi
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, esi
imul ebx, dword [0xb160b8]
movzx edi, byte [esp + 0xa9]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx], bl
movzx esi, byte [ecx + 1]
mov ebx, esi
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, esi
imul ebx, dword [0xb160b8]
movzx edi, byte [esp + 0xaa]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx + 1], bl
movzx esi, byte [ecx + 2]
mov ebx, esi
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, esi
imul ebx, dword [0xb160b8]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub dword [esp + 0x20], 1
jne 0x7628b2
jmp 0x762945
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0x4c]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xa0]
add dword [esp + 0x4c], 6
cmp ebx, 1
mov dword [esp + 0x50], 1
jl case.0x76399b.5
lea esi, [ebx*4]
mov dword [esp + 0x7c], esi
lea esi, [ebp + 1]
mov dword [esp + 0x58], esi
lea esi, [ebx + ebp]
mov dword [esp + 0x54], esi
lea esi, [ebp - 1]
mov dword [esp + 0x34], esi
lea esi, [ebx + ecx]
imul esi, edx
mov dword [esp + 0x80], esi
mov esi, ebp
sub esi, ebx
mov dword [esp + 0x38], esi
lea esi, [ecx + 1]
imul esi, edx
mov dword [esp + 0x74], esi
mov esi, edx
neg esi
mov dword [esp + 0x60], esi
mov esi, ecx
sub esi, ebx
imul esi, edx
mov dword [esp + 0x84], esi
lea esi, [ecx - 1]
imul esi, edx
sub ecx, ebp
mov dword [esp + 0x5c], esi
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x38]
add ecx, edx
xor edx, edx
cmp esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
setl dl
mov dword [esp + 0x6c], ecx
xor ecx, ecx
mov dword [esp + 0x64], edx
mov edx, edi
cmp edx, dword [esp + 0x2c]
mov edx, dword [esp + 0x6c]
setg cl
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x762afd
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x762a50
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jle 0x762a5c
mov esi, ecx
mov ecx, dword [esp + 0x74]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx edi, byte [esi]
movzx ecx, byte [esp + 0xa8]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa9]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, byte [esp + 0xaa]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub ebp, 1
jne 0x762a72
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
lea ebp, [ecx + edx]
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x38]
setl dl
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x762bfb
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x762b4e
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jle 0x762b5a
mov esi, ecx
mov edx, dword [esp + 0x5c]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [edx + edi*4]
add esi, dword [esp + 0x40]
movzx edi, byte [esi]
movzx ecx, byte [esp + 0xa8]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa9]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, byte [esp + 0xaa]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub ebp, 1
jne 0x762b70
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x762e64
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
add ecx, edx
mov edi, dword [esp + 0x34]
xor edx, edx
cmp esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
setl dl
mov dword [esp + 0x6c], ecx
xor ecx, ecx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x2c]
cmp edi, edx
mov edx, dword [esp + 0x6c]
setg cl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x762d2b
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x762c77
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jle 0x762c83
mov esi, ecx
mov ecx, dword [esp + 0x80]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
lea esp, [esp]
movzx edi, byte [esi]
movzx ecx, byte [esp + 0xa8]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa9]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, byte [esp + 0xaa]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub ebp, 1
jne 0x762ca0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
lea ebp, [ecx + edx]
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x34]
setl dl
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x762e2c
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x762d7c
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jle 0x762d88
mov esi, ecx
mov edx, dword [esp + 0x84]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [edx + edi*4]
add esi, dword [esp + 0x40]
movzx edi, byte [esi]
movzx ecx, byte [esp + 0xa8]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa9]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, byte [esp + 0xaa]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, edi
imul ecx, dword [0xb160b8]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub ebp, 1
jne 0x762da1
mov ecx, dword [esp + 0x44]
add dword [esp + 0x84], ecx
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
mov esi, 1
sub dword [esp + 0x54], esi
add dword [esp + 0x38], esi
sub ecx, 4
sub ebx, esi
mov dword [esp + 0x7c], ecx
sub edx, ecx
jmp 0x762e69
mov esi, 1
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x74], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x58], esi
add dword [esp + 0x5c], edi
sub dword [esp + 0x34], esi
add ecx, esi
cmp ebx, ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x7629e0
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov edi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
mov edx, ebx
lea esi, [edi + edx]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x24]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
jne 0x762fcd
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x762f20
mov edx, ecx
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jle 0x762f2a
mov esi, ecx
sub esi, edx
add esi, 1
mov ecx, esi
mov esi, dword [esp + 0x44]
imul esi, ebp
add esi, dword [esp + 0x40]
mov byte [eax + ebp], 1
lea esi, [esi + edx*4]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
mov dword [esp + 0x78], edx
mov dl, byte [esp + 0xa9]
not dl
movzx edx, dl
mov dword [esp + 0x38], edx
mov dl, byte [esp + 0xaa]
not dl
movzx edx, dl
mov dword [esp + 0x34], edx
movzx ebp, byte [esi]
mov edx, dword [esp + 0x78]
sub edx, ebp
imul edx, dword [0xb160b8]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [esi], dl
movzx ebp, byte [esi + 1]
mov edx, dword [esp + 0x38]
sub edx, ebp
imul edx, dword [0xb160b8]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [esi + 1], dl
movzx ebp, byte [esi + 2]
mov edx, dword [esp + 0x34]
sub edx, ebp
imul edx, dword [0xb160b8]
shl ebp, 8
add edx, ebp
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ecx, 1
jne 0x762f73
mov edx, dword [esp + 0xa0]
mov ecx, ebx
lea ebp, [edx + ecx]
xor ecx, ecx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x68], ebp
setl cl
xor edx, edx
cmp edi, dword [esp + 0x2c]
mov esi, edi
setg dl
mov dword [esp + 0x48], ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x68]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7630ec
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jl 0x763033
mov ecx, esi
mov edx, dword [esp + 0x2c]
cmp edi, edx
jle 0x76303d
mov esi, edx
mov edx, ebp
imul edx, dword [esp + 0x44]
sub esi, ecx
add esi, 1
add edx, dword [esp + 0x40]
mov dword [esp + 0x20], esi
lea esi, [edx + ecx*4]
mov cl, byte [esp + 0xa8]
not cl
movzx edx, cl
mov cl, byte [esp + 0xa9]
not cl
mov dword [esp + 0x78], edx
movzx edx, cl
mov cl, byte [esp + 0xaa]
not cl
mov dword [esp + 0x38], edx
movzx edx, cl
mov byte [eax + ebp], 1
mov dword [esp + 0x34], edx
jmp 0x763090
movzx ecx, byte [esi]
mov edx, dword [esp + 0x78]
sub edx, ecx
imul edx, dword [0xb160b8]
shl ecx, 8
add edx, ecx
sar edx, 8
mov byte [esi], dl
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x38]
sub edx, ecx
imul edx, dword [0xb160b8]
shl ecx, 8
add edx, ecx
sar edx, 8
mov byte [esi + 1], dl
movzx ecx, byte [esi + 2]
mov edx, dword [esp + 0x34]
sub edx, ecx
imul edx, dword [0xb160b8]
shl ecx, 8
add edx, ecx
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub dword [esp + 0x20], 1
jne 0x763090
mov esi, dword [esp + 0xa0]
sub esi, ebx
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x30]
setl cl
xor edx, edx
cmp dword [esp + 0x50], esi
setg dl
or ecx, edx
mov edx, dword [esp + 0x50]
movzx esi, byte [edx + eax]
or ecx, esi
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7631f0
mov esi, dword [esp + 0x24]
cmp edi, esi
jl 0x763133
mov esi, edi
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jg 0x76313d
mov ecx, edi
sub ecx, esi
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, edx
imul ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x40]
mov byte [edx + eax], 1
lea esi, [ecx + esi*4]
mov cl, byte [esp + 0xa8]
not cl
movzx ecx, cl
mov dword [esp + 0x78], ecx
mov cl, byte [esp + 0xa9]
not cl
movzx ecx, cl
mov dword [esp + 0x38], ecx
mov cl, byte [esp + 0xaa]
not cl
movzx ecx, cl
mov dword [esp + 0x34], ecx
jmp 0x763190
movzx ebp, byte [esi]
mov ecx, dword [esp + 0x78]
sub ecx, ebp
imul ecx, dword [0xb160b8]
shl ebp, 8
add ecx, ebp
sar ecx, 8
mov byte [esi], cl
movzx ebp, byte [esi + 1]
mov ecx, dword [esp + 0x38]
sub ecx, ebp
imul ecx, dword [0xb160b8]
shl ebp, 8
add ecx, ebp
sar ecx, 8
mov byte [esi + 1], cl
movzx ebp, byte [esi + 2]
mov ecx, dword [esp + 0x34]
sub ecx, ebp
imul ecx, dword [0xb160b8]
shl ebp, 8
add ecx, ebp
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub dword [esp + 0x20], 1
jne 0x763190
mov ebp, dword [esp + 0x68]
cmp dword [esp + 0x4c], 0
mov esi, dword [esp + 0x44]
jl 0x7633d5
movzx esi, byte [eax + ebp]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
setl cl
xor ebx, ebx
cmp ebp, dword [esp + 0x30]
setg bl
or ecx, ebx
or ecx, esi
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7632db
mov esi, dword [esp + 0x24]
cmp edi, esi
jl 0x763231
mov esi, edi
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jg 0x76323b
mov ecx, edi
mov bl, byte [esp + 0xa8]
mov byte [eax + ebp], 1
imul ebp, dword [esp + 0x44]
sub ecx, esi
add ecx, 1
add ebp, dword [esp + 0x40]
not bl
mov dword [esp + 0x20], ecx
lea ecx, [ebp + esi*4]
movzx ebp, bl
mov bl, byte [esp + 0xa9]
not bl
movzx esi, bl
mov bl, byte [esp + 0xaa]
not bl
mov dword [esp + 0x38], esi
movzx esi, bl
mov dword [esp + 0x34], esi
movzx esi, byte [ecx]
mov ebx, ebp
sub ebx, esi
imul ebx, dword [0xb160b8]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx], bl
movzx esi, byte [ecx + 1]
mov ebx, dword [esp + 0x38]
sub ebx, esi
imul ebx, dword [0xb160b8]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx + 1], bl
movzx esi, byte [ecx + 2]
mov ebx, dword [esp + 0x34]
sub ebx, esi
imul ebx, dword [0xb160b8]
shl esi, 8
add ebx, esi
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub dword [esp + 0x20], 1
jne 0x763281
xor ecx, ecx
cmp edx, dword [esp + 0x28]
mov esi, edi
setl cl
xor ebx, ebx
cmp edx, dword [esp + 0x30]
mov ebp, edi
setg bl
or ecx, ebx
movzx ebx, byte [edx + eax]
or ecx, ebx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7633b8
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x763311
mov ebp, ecx
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jle 0x76331b
mov esi, ecx
mov byte [edx + eax], 1
imul edx, dword [esp + 0x44]
sub esi, ebp
add esi, 1
add edx, dword [esp + 0x40]
mov ebx, esi
lea ecx, [edx + ebp*4]
mov dl, byte [esp + 0xa8]
not dl
movzx ebp, dl
mov dl, byte [esp + 0xa9]
not dl
movzx edx, dl
mov dword [esp + 0x38], edx
mov dl, byte [esp + 0xaa]
not dl
movzx edx, dl
mov dword [esp + 0x34], edx
mov edi, edi
movzx esi, byte [ecx]
mov edx, ebp
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx], dl
movzx esi, byte [ecx + 1]
mov edx, dword [esp + 0x38]
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx + 1], dl
movzx esi, byte [ecx + 2]
mov edx, dword [esp + 0x34]
sub edx, esi
imul edx, dword [0xb160b8]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [ecx + 2], dl
add ecx, 4
sub ebx, 1
jne 0x763360
mov ebx, dword [esp + 0xa4]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea ecx, [edx + ecx*4]
mov dword [esp + 0x4c], ecx
add dword [esp + 0x4c], 6
cmp ebx, 1
mov dword [esp + 0x50], 1
jl case.0x76399b.5
lea ecx, [edi + 1]
mov dword [esp + 0x54], ecx
lea edx, [ebx*4]
mov dword [esp + 0x7c], edx
lea ecx, [edi - 1]
lea edx, [ebx + edi]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa0]
lea edx, [ebx + ecx]
imul edx, esi
mov dword [esp + 0x6c], edx
lea edx, [ecx + 1]
imul edx, esi
mov dword [esp + 0x84], edx
mov edx, esi
neg edx
mov dword [esp + 0x60], edx
mov edx, ecx
sub edx, ebx
imul edx, esi
mov dword [esp + 0x80], edx
lea edx, [ecx - 1]
imul edx, esi
mov ebp, edi
sub ebp, ebx
sub ecx, edi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x48], ecx
jmp 0x763468
mov ebp, dword [esp + 0x68]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x3c]
mov edi, ebp
lea ebp, [edx + ecx]
xor ecx, ecx
mov edx, esi
cmp edx, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
setl cl
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
setg cl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
setl cl
xor edx, edx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x76357e
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x68], ecx
jge 0x7634d5
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x3c], ecx
jle 0x7634e1
mov esi, ecx
mov dl, byte [esp + 0xa8]
mov ecx, dword [esp + 0x84]
sub esi, edi
not dl
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx ecx, dl
mov dl, byte [esp + 0xa9]
not dl
movzx edx, dl
mov dword [esp + 0x38], edx
mov dl, byte [esp + 0xaa]
not dl
movzx edx, dl
mov dword [esp + 0x34], edx
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
mov edx, dword [esp + 0x38]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov edx, dword [esp + 0x34]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x763526
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
lea ebp, [edx + ecx]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x68]
setl cl
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x30]
xor edx, edx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x763678
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x7635cf
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x3c], ecx
jle 0x7635db
mov esi, ecx
mov dl, byte [esp + 0xa8]
mov ecx, dword [esp + 0x74]
sub esi, edi
not dl
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx ecx, dl
mov dl, byte [esp + 0xa9]
not dl
movzx edx, dl
mov dword [esp + 0x38], edx
mov dl, byte [esp + 0xaa]
not dl
movzx edx, dl
mov dword [esp + 0x34], edx
lea ecx, [ecx]
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
mov edx, dword [esp + 0x38]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov edx, dword [esp + 0x34]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x763620
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x7638cd
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
lea ebp, [edx + ecx]
xor ecx, ecx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x5c], ebp
setl cl
xor edx, edx
mov dword [esp + 0x70], ecx
mov ecx, edi
cmp ecx, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x64], edx
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x763798
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x7636f1
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jle 0x7636fd
mov esi, ecx
mov edx, dword [esp + 0x6c]
mov cl, byte [esp + 0xa8]
sub esi, edi
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [edx + edi*4]
mov dl, byte [esp + 0xa9]
add esi, dword [esp + 0x40]
not dl
movzx edx, dl
mov dword [esp + 0x38], edx
mov dl, byte [esp + 0xaa]
not dl
movzx edx, dl
not cl
movzx ecx, cl
mov dword [esp + 0x34], edx
nop
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
mov edx, dword [esp + 0x38]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov edx, dword [esp + 0x34]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x763740
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x68]
lea ebp, [edx + ecx]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
setl cl
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x30]
xor edx, edx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x70]
jne 0x763898
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x7637e9
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jle 0x7637f5
mov esi, ecx
mov dl, byte [esp + 0xa8]
mov ecx, dword [esp + 0x80]
sub esi, edi
not dl
add esi, 1
mov byte [eax + ebp], 1
mov ebp, esi
lea esi, [ecx + edi*4]
add esi, dword [esp + 0x40]
movzx ecx, dl
mov dl, byte [esp + 0xa9]
not dl
movzx edx, dl
mov dword [esp + 0x38], edx
mov dl, byte [esp + 0xaa]
not dl
movzx edx, dl
mov dword [esp + 0x34], edx
lea ebx, [ebx]
movzx edi, byte [esi]
mov edx, ecx
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
mov edx, dword [esp + 0x38]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov edx, dword [esp + 0x34]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub ebp, 1
jne 0x763840
mov ecx, dword [esp + 0x60]
add dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x7c]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
mov esi, 1
sub dword [esp + 0x3c], esi
add dword [esp + 0x68], esi
sub ecx, 4
sub ebx, esi
mov dword [esp + 0x7c], ecx
sub edx, ecx
jmp 0x7638d2
mov esi, 1
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x84], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x54], esi
add dword [esp + 0x74], edi
sub dword [esp + 0x18], esi
add ecx, esi
cmp ebx, ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x763460
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [0xb160d4]
mov ebp, dword [esp + 0xa8]
mov edx, ecx
and edx, 0xffffff
cmp edx, 0xffffff
je 0x76398c
movzx edx, ch
sar ebp, 5
and ebp, 0x3f
imul ebp, edx
mov edx, dword [esp + 0xa8]
movzx ecx, cl
and edx, 0x1f
imul edx, ecx
mov ecx, dword [esp + 0xa8]
and ebp, 0xffffff07
sar edx, 5
or ebp, edx
movzx edx, byte [0xb160d6]
sar ecx, 8
and ecx, 0xfffffff8
imul ecx, edx
sar ebp, 3
and ecx, 0xfffff800
or ebp, ecx
mov dword [esp + 0xa8], ebp
mov ecx, dword [0xb160b4]
cmp ecx, 0xb
ja case.0x76399b.5
jmp dword [ecx*4 + 0x770290]
mov ecx, dword [0xb160b8]
cmp ecx, 0xff
jne 0x763fc9
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
mov edx, ebx
lea edi, [esi + edx]
mov ecx, esi
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x24]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], ebp
mov ebp, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
jne 0x763a5b
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x10], ecx
jl 0x763a21
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
cmp edi, edx
jle 0x763a2b
mov edi, edx
mov edx, dword [esp + 0x44]
imul edx, ebp
sub edi, ecx
add edi, 1
add edx, dword [esp + 0x40]
mov byte [eax + ebp], 1
lea ecx, [edx + ecx*2]
mov dx, word [esp + 0xa8]
lea ebx, [ebx]
mov word [ecx], dx
add ecx, 2
sub edi, 1
jne 0x763a50
xor edx, edx
cmp esi, dword [esp + 0x24]
mov ecx, ebx
setl dl
lea edi, [ecx + ebp]
xor ecx, ecx
cmp esi, dword [esp + 0x2c]
mov dword [esp + 0x68], edi
setg cl
mov dword [esp + 0x48], edx
xor edx, edx
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
setl dl
mov dword [esp + 0x60], ecx
xor ecx, ecx
cmp dword [esp + 0x68], edi
mov edi, dword [esp + 0x68]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x763aeb
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x763ab4
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x763abe
mov ecx, esi
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
add edi, dword [esp + 0x40]
lea edx, [edi + edx*2]
mov di, word [esp + 0xa8]
jmp 0x763ae0
mov word [edx], di
add edx, 2
sub ecx, 1
jne 0x763ae0
xor edx, edx
mov edi, ebp
sub edi, ebx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x50], edi
mov edi, dword [esp + 0x50]
setg cl
mov dword [esp + 0x10], esi
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x763b77
mov ecx, dword [esp + 0x24]
cmp esi, ecx
jge 0x763b33
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x763b3d
mov ecx, esi
mov edx, dword [esp + 0x10]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, edi
mov byte [edi + eax], 1
mov edi, dword [esp + 0x44]
imul ecx, edi
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*2]
mov edi, edi
mov dx, word [esp + 0xa8]
mov word [ecx], dx
add ecx, 2
sub dword [esp + 0x20], 1
jne 0x763b60
jmp 0x763b7b
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jl 0x763c6a
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x30]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
setl cl
xor edx, edx
cmp ebp, ebx
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x763bec
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x763bbb
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x763bc5
mov ecx, esi
mov byte [eax + ebp], 1
imul ebp, edi
sub ecx, edx
add ecx, 1
add ebp, dword [esp + 0x40]
lea edx, [ebp + edx*2]
mov bp, word [esp + 0xa8]
mov word [edx], bp
add edx, 2
sub ecx, 1
jne 0x763be1
mov ebp, dword [esp + 0x50]
xor ecx, ecx
cmp ebp, dword [esp + 0x28]
setl cl
xor edx, edx
cmp ebp, ebx
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x763c4e
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x763c1c
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x763c26
mov ecx, esi
mov byte [eax + ebp], 1
imul ebp, edi
sub ecx, edx
add ecx, 1
add ebp, dword [esp + 0x40]
lea ebp, [ebp + edx*2]
mov dx, word [esp + 0xa8]
mov word [ebp], dx
add ebp, 2
sub ecx, 1
jne 0x763c42
mov ebx, dword [esp + 0xa4]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0xa0]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea ecx, [edx + ecx*4]
add ecx, 6
cmp ebx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ecx
jl case.0x76399b.5
lea ecx, [ebx*4]
mov dword [esp + 0x8c], ecx
lea ecx, [ebx + esi]
mov dword [esp + 0x80], ecx
lea ecx, [ebx + ebp]
imul ecx, edi
mov dword [esp + 0x84], ecx
mov ecx, esi
sub ecx, ebx
mov dword [esp + 0x54], ecx
lea ecx, [ebp + 1]
imul ecx, edi
mov dword [esp + 0x5c], ecx
mov ecx, edi
neg ecx
mov dword [esp + 0x60], ecx
mov ecx, ebp
sub ecx, ebx
imul ecx, edi
mov dword [esp + 0x74], ecx
lea ecx, [ebp - 1]
imul ecx, edi
lea edx, [esi + 1]
sub ebp, esi
mov dword [esp + 0x58], edx
lea edx, [esi - 1]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x38], edx
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x54]
add ecx, edx
xor edx, edx
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x6c], ecx
setl dl
mov dword [esp + 0x10], edi
mov esi, ebp
mov dword [esp + 0x7c], edx
xor edx, edx
cmp edi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
setg dl
mov dword [esp + 0x70], edx
xor edx, edx
cmp ecx, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp dword [esp + 0x6c], edi
mov edi, dword [esp + 0x6c]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x70]
or edx, dword [esp + 0x7c]
jne 0x763d8e
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x54], ecx
jl 0x763d5d
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
cmp ebp, edx
jle 0x763d67
mov esi, edx
mov edx, dword [esp + 0x5c]
sub esi, ecx
lea ecx, [edx + ecx*2]
mov dx, word [esp + 0xa8]
add esi, 1
add ecx, dword [esp + 0x40]
mov byte [edi + eax], 1
mov word [ecx], dx
add ecx, 2
sub esi, 1
jne 0x763d83
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x6c], edi
mov edi, dword [esp + 0x6c]
setg cl
mov esi, ebp
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x70]
or edx, dword [esp + 0x7c]
jne 0x763e12
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x54], ecx
jl 0x763de1
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
cmp ebp, edx
jle 0x763deb
mov esi, edx
mov edx, dword [esp + 0x64]
sub esi, ecx
lea ecx, [edx + ecx*2]
mov dx, word [esp + 0xa8]
add esi, 1
add ecx, dword [esp + 0x40]
mov byte [edi + eax], 1
mov word [ecx], dx
add ecx, 2
sub esi, 1
jne 0x763e07
mov esi, dword [esp + 0x4c]
test esi, esi
jl 0x763f7e
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x38]
add ebp, ecx
xor edx, edx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x6c], ebp
setl dl
xor ecx, ecx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x2c]
cmp edi, edx
setg cl
mov edx, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg dl
or ecx, edx
movzx edx, byte [eax + ebp]
or ecx, edx
or ecx, dword [esp + 0x70]
or ecx, dword [esp + 0x7c]
jne 0x763ebb
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x763e84
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jle 0x763e90
mov esi, ecx
mov ecx, dword [esp + 0x84]
mov dx, word [esp + 0xa8]
sub esi, edi
lea ecx, [ecx + edi*2]
add esi, 1
add ecx, dword [esp + 0x40]
mov byte [eax + ebp], 1
nop
mov word [ecx], dx
add ecx, 2
sub esi, 1
jne 0x763eb0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
lea ebp, [ecx + edx]
xor edx, edx
cmp ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x38]
setl dl
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x6c]
setg cl
or edx, ecx
movzx ecx, byte [eax + ebp]
or edx, ecx
or edx, dword [esp + 0x70]
or edx, dword [esp + 0x7c]
jne 0x763f3b
mov ecx, dword [esp + 0x24]
cmp edi, ecx
jge 0x763f08
mov edi, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jle 0x763f14
mov esi, ecx
mov edx, dword [esp + 0x74]
sub esi, edi
lea ecx, [edx + edi*2]
mov dx, word [esp + 0xa8]
add esi, 1
add ecx, dword [esp + 0x40]
mov byte [eax + ebp], 1
mov word [ecx], dx
add ecx, 2
sub esi, 1
jne 0x763f30
mov ecx, dword [esp + 0x60]
add dword [esp + 0x84], ecx
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
add dword [esp + 0x74], edx
add dword [esp + 0x54], 1
sub ebp, 1
sub ecx, 4
sub ebx, 1
mov dword [esp + 0x80], ebp
mov dword [esp + 0x8c], ecx
sub esi, ecx
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x5c], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x64], edi
mov edx, 1
add dword [esp + 0x58], edx
sub dword [esp + 0x38], edx
add ecx, edx
cmp ebx, ecx
lea edx, [esi + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x763cf1
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
test ecx, ecx
je case.0x76399b.5
mov ecx, dword [esp + 0x9c]
mov esi, ebx
lea edx, [ecx + esi]
sub ecx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp dword [esp + 0xa0], esi
mov esi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], esi
mov esi, dword [esp + 0xa0]
setg dl
or ecx, edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [eax + esi]
or ecx, edx
jne 0x764106
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x76403d
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jle 0x76404b
mov ecx, ebx
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, esi
add ecx, dword [esp + 0x40]
mov byte [eax + esi], 1
lea ecx, [ecx + edx*2]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x764094
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x764090
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
add esi, edx
xor edx, edx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x68], esi
setl dl
mov dword [esp + 0x48], edx
xor edx, edx
cmp ecx, dword [esp + 0x2c]
setg dl
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x764223
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x76416d
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x764177
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x7641b8
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x7641b4
mov esi, dword [esp + 0xa0]
sub esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x76432f
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x764275
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x76427f
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x7642c4
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x7642c0
mov ebx, dword [esp + 0x4c]
test ebx, ebx
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x9c]
jl 0x764565
mov esi, dword [esp + 0x68]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x14], edx
setl cl
mov dword [esp + 0x10], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x764445
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x76438d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x764399
mov ecx, dword [esp + 0x14]
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x7643da
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x7643d6
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x76453f
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x764489
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x764493
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x7644d4
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x7644d0
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x9c]
add ecx, 0xffffffff
mov esi, ecx
neg esi
lea ebx, [ebx + esi*4]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x38], ecx
jmp 0x764569
mov ecx, dword [esp + 0x38]
add ebx, 6
cmp ecx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ebx
jl case.0x76399b.5
lea ebx, [ecx*4]
mov dword [esp + 0x70], ebx
lea ebx, [edx + 1]
mov dword [esp + 0x54], ebx
lea ebx, [ecx + edx]
mov dword [esp + 0x3c], ebx
lea ebx, [edx - 1]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
add ebx, ecx
imul ebx, esi
mov dword [esp + 0x6c], ebx
mov ebx, edx
sub ebx, ecx
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0xa0]
add ebx, 1
imul ebx, esi
mov dword [esp + 0x84], ebx
mov ebx, esi
neg ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
sub ebx, ecx
mov ecx, dword [esp + 0xa0]
imul ebx, esi
mov dword [esp + 0x80], ebx
lea ebx, [ecx - 1]
imul ebx, esi
sub ecx, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x48], ecx
jmp 0x764605
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x68]
add esi, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
setg dl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x5c], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x764723
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x764667
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x3c], ecx
jg 0x764675
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov byte [esi + eax], 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x7646b8
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x7646b4
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
lea esi, [ecx + edx]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x764835
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x68], edx
jl 0x764774
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x3c], ecx
jg 0x764782
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov byte [esi + eax], 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x7647c4
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
shr esi, 0xb
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
mov esi, 1
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], esi
mov dword [esp + 0x10], ecx
jne 0x7647c0
jmp 0x76483a
mov esi, 1
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x764aba
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
add esi, ebx
xor ebx, ebx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
setl bl
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
setg cl
xor edx, edx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x64], ebx
setl dl
mov dword [esp + 0x5c], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, ebx
jne 0x76496f
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x7648ae
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x7648bc
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov byte [esi + eax], 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x764904
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x764900
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
lea esi, [ecx + edx]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x764a85
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x7649c0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x7649ce
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov byte [esi + eax], 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov esi, ebp
sar esi, 0xb
mov edx, ebp
sar edx, 5
mov dword [esp + 0x34], esi
and edx, 0x3f
mov esi, ebp
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
jmp 0x764a14
mov edx, dword [esp + 0x1c]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
shr esi, 0xb
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x34]
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
mov esi, 1
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], esi
mov dword [esp + 0x10], ecx
jne 0x764a10
jmp 0x764a8a
mov esi, 1
mov ecx, dword [esp + 0x60]
add dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
sub dword [esp + 0x38], esi
sub dword [esp + 0x3c], esi
add dword [esp + 0x68], esi
sub ecx, 4
mov dword [esp + 0x70], ecx
sub edx, ecx
mov ecx, dword [esp + 0x50]
add dword [esp + 0x54], 1
sub dword [esp + 0x58], 1
add ecx, esi
mov esi, dword [esp + 0x44]
add dword [esp + 0x84], esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x74], esi
cmp dword [esp + 0x38], ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x764601
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76399b.5
mov ecx, dword [esp + 0x9c]
mov edi, ebx
lea edx, [ecx + edi]
sub ecx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], edi
mov edi, dword [esp + 0xa0]
setg dl
or ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [eax + edi]
or ecx, edx
jne 0x764c48
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x764b80
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jle 0x764b8e
mov ecx, ebx
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, edi
add ecx, dword [esp + 0x40]
mov byte [eax + edi], 1
lea edi, [ecx + edx*2]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x764bd4
mov edi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
add edi, edx
xor edx, edx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x68], edi
setl dl
mov dword [esp + 0x48], edx
xor edx, edx
cmp ecx, dword [esp + 0x2c]
setg dl
xor ecx, ecx
cmp edi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp edi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x764d6d
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x764caf
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x764cb9
mov ecx, ebx
sub ecx, edx
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
add ecx, 1
mov dword [esp + 0x20], ecx
lea edi, [edi + edx*2]
mov ecx, ebp
sar ecx, 0xb
lea edx, [esi + ecx*4]
mov ecx, ebp
sar ecx, 5
and ecx, 0x3f
mov dword [esp + 0x3c], edx
lea edx, [esi + ecx*4]
mov ecx, ebp
and ecx, 0x1f
mov dword [esp + 0x18], edx
lea edx, [esi + ecx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
lea ecx, [ecx]
mov ecx, dword [esp + 0x3c]
mov dx, word [ecx]
mov ecx, dword [esp + 0x18]
shl dx, 6
add dx, word [ecx]
mov ecx, dword [esp + 0x14]
shl dx, 5
add dx, word [ecx]
movzx ecx, word [edi]
movzx edi, cx
movzx edx, dx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x764d00
mov edi, dword [esp + 0xa0]
sub edi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x50], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x764e7d
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x764dbf
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x764dc9
mov ecx, ebx
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub ecx, edx
lea edi, [edi + edx*2]
add ecx, 1
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
lea ecx, [ecx]
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x764e10
mov ebx, dword [esp + 0x4c]
test ebx, ebx
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x9c]
jl 0x7650c3
mov edi, dword [esp + 0x68]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x764f9d
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x764edb
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x764ee7
mov ecx, dword [esp + 0x14]
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub ecx, edx
lea edi, [edi + edx*2]
add ecx, 1
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
jmp 0x764f30
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x764f30
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x76509d
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x764fe1
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x764feb
mov ecx, ebx
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub ecx, edx
lea edi, [edi + edx*2]
add ecx, 1
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
nop
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x765030
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x9c]
add ecx, 0xffffffff
mov edi, ecx
neg edi
lea ebx, [ebx + edi*4]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x38], ecx
jmp 0x7650c7
mov ecx, dword [esp + 0x38]
add ebx, 6
cmp ecx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ebx
jl case.0x76399b.5
lea ebx, [ecx*4]
mov dword [esp + 0x70], ebx
lea ebx, [edx + 1]
mov dword [esp + 0x54], ebx
lea ebx, [ecx + edx]
mov dword [esp + 0x34], ebx
lea ebx, [edx - 1]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
add ebx, ecx
imul ebx, edi
mov dword [esp + 0x6c], ebx
mov ebx, edx
sub ebx, ecx
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0xa0]
add ebx, 1
imul ebx, edi
mov dword [esp + 0x84], ebx
mov ebx, edi
neg ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
sub ebx, ecx
mov ecx, dword [esp + 0xa0]
imul ebx, edi
mov dword [esp + 0x80], ebx
lea ebx, [ecx - 1]
imul ebx, edi
sub ecx, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x48], ecx
jmp 0x765164
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x68]
add edi, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
setg dl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x5c], edx
xor edx, edx
cmp edi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x76528d
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x7651c6
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jg 0x7651d4
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x765220
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, dword [esp + 0x64]
jne 0x7653a3
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x68], edx
jl 0x7652de
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jg 0x7652ec
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
nop
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
mov ebx, 1
sub dword [esp + 0x20], ebx
mov dword [esp + 0x10], edi
jne 0x765330
jmp 0x7653a8
mov ebx, 1
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76562a
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
add edi, ebx
xor ebx, ebx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
setl bl
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
setg cl
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x64], ebx
setl dl
mov dword [esp + 0x5c], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, ebx
jne 0x7654dd
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x76541c
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x76542a
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
lea ecx, [ecx]
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jne 0x765470
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, dword [esp + 0x64]
jne 0x7655f5
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x76552e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x76553c
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, cx
movzx ecx, word [edi]
movzx edi, cx
mov ecx, edx
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx]
or edx, ebx
and edx, 0x820
or ecx, edx
or ecx, edi
mov edi, dword [esp + 0x10]
mov word [edi], cx
add edi, 2
mov ebx, 1
sub dword [esp + 0x20], ebx
mov dword [esp + 0x10], edi
jne 0x765582
jmp 0x7655fa
mov ebx, 1
mov ecx, dword [esp + 0x44]
add dword [esp + 0x80], ecx
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
add dword [esp + 0x6c], edx
mov edx, dword [esp + 0x4c]
sub dword [esp + 0x38], ebx
sub dword [esp + 0x34], ebx
add dword [esp + 0x68], ebx
sub ecx, 4
mov dword [esp + 0x70], ecx
sub edx, ecx
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x84], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x54], 1
add dword [esp + 0x74], edi
sub dword [esp + 0x58], 1
add ecx, ebx
cmp dword [esp + 0x38], ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x765160
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76399b.5
mov ecx, dword [esp + 0x9c]
mov edi, ebx
lea edx, [ecx + edi]
sub ecx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp dword [esp + 0xa0], edi
mov edi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], edi
mov edi, dword [esp + 0xa0]
setg dl
or ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [eax + edi]
or ecx, edx
jne 0x765796
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x7656f0
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jle 0x7656fe
mov ecx, ebx
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, edi
add ecx, dword [esp + 0x40]
mov byte [eax + edi], 1
lea edi, [ecx + edx*2]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
jne 0x765740
mov edi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
add edi, edx
xor edx, edx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x68], edi
setl dl
mov dword [esp + 0x48], edx
xor edx, edx
cmp ecx, dword [esp + 0x2c]
setg dl
xor ecx, ecx
cmp edi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp edi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7658a1
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x7657fd
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x765807
mov ecx, ebx
sub ecx, edx
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, ebp
sar ecx, 0xb
lea edi, [edi + edx*2]
lea edx, [esi + ecx*4]
mov ecx, ebp
sar ecx, 5
and ecx, 0x3f
mov dword [esp + 0x3c], edx
lea edx, [esi + ecx*4]
mov ecx, ebp
and ecx, 0x1f
mov dword [esp + 0x18], edx
lea edx, [esi + ecx*4]
mov dword [esp + 0x14], edx
jmp 0x765850
mov ecx, dword [esp + 0x3c]
mov dx, word [ecx]
mov ecx, dword [esp + 0x18]
shl dx, 6
add dx, word [ecx]
mov ecx, dword [esp + 0x14]
shl dx, 5
add dx, word [ecx]
add edi, 2
movzx ecx, dx
movzx edx, word [edi - 2]
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
sub dword [esp + 0x20], 1
mov word [edi - 2], cx
jne 0x765850
mov edi, dword [esp + 0xa0]
sub edi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x50], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x76598f
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x7658f3
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x7658fd
mov ecx, ebx
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub ecx, edx
lea edi, [edi + edx*2]
add ecx, 1
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
lea ecx, [ecx]
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
jne 0x765940
mov ebx, dword [esp + 0x4c]
test ebx, ebx
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x44]
jl 0x765b95
mov edi, dword [esp + 0x68]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edx
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x765a8f
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x7659ed
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x7659f9
mov ecx, dword [esp + 0x14]
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub ecx, edx
lea edi, [edi + edx*2]
add ecx, 1
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
lea esp, [esp]
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
jne 0x765a40
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x60]
or edx, dword [esp + 0x48]
jne 0x765b6f
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x765ad3
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x765add
mov ecx, ebx
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub ecx, edx
lea edi, [edi + edx*2]
add ecx, 1
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
lea ecx, [ecx]
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
jne 0x765b20
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x9c]
add ecx, 0xffffffff
mov edi, ecx
neg edi
lea ebx, [ebx + edi*4]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x38], ecx
jmp 0x765b99
mov ecx, dword [esp + 0x38]
add ebx, 6
cmp ecx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ebx
jl case.0x76399b.5
lea ebx, [ecx*4]
mov dword [esp + 0x70], ebx
lea ebx, [edx + 1]
mov dword [esp + 0x54], ebx
lea ebx, [ecx + edx]
mov dword [esp + 0x34], ebx
lea ebx, [edx - 1]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
add ebx, ecx
imul ebx, edi
mov dword [esp + 0x6c], ebx
mov ebx, edx
sub ebx, ecx
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0xa0]
add ebx, 1
imul ebx, edi
mov dword [esp + 0x84], ebx
mov ebx, edi
neg ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
sub ebx, ecx
mov ecx, dword [esp + 0xa0]
imul ebx, edi
mov dword [esp + 0x80], ebx
lea ebx, [ecx - 1]
imul ebx, edi
sub ecx, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x48], ecx
jmp 0x765c35
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x54]
add edi, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x68]
cmp ecx, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x5c], edx
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, dword [esp + 0x64]
jne 0x765d3f
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x68], edx
jl 0x765c9f
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jg 0x765cad
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
nop
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
jne 0x765cf0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, dword [esp + 0x64]
jne 0x765e35
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x68], edx
jl 0x765d90
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jg 0x765d9e
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
lea ecx, [ecx]
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
mov ebx, 1
add edi, 2
sub dword [esp + 0x20], ebx
jne 0x765de0
jmp 0x765e3a
mov ebx, 1
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76607a
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
add edi, ebx
xor ebx, ebx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
setl bl
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
setg cl
xor edx, edx
cmp edi, dword [esp + 0x28]
mov dword [esp + 0x64], ebx
setl dl
mov dword [esp + 0x5c], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, ebx
jne 0x765f4f
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x765eae
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x765ebc
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
jmp 0x765f00
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
add edi, 2
sub dword [esp + 0x20], 1
jne 0x765f00
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea edi, [edx + ecx]
xor edx, edx
cmp edi, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [edi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, dword [esp + 0x64]
jne 0x766045
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x765fa0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x765fae
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
mov byte [edi + eax], 1
lea edi, [ecx + edx*2]
add edi, dword [esp + 0x40]
mov edx, ebp
sar edx, 0xb
lea ecx, [esi + edx*4]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x3c], ecx
lea ecx, [esi + edx*4]
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x18], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x3c]
mov cx, word [edx]
mov edx, dword [esp + 0x18]
shl cx, 6
add cx, word [edx]
mov edx, dword [esp + 0x14]
shl cx, 5
add cx, word [edx]
movzx edx, word [edi]
movzx ecx, cx
and ecx, 0xf7def7df
or edx, 0x8210820
sub edx, ecx
mov ecx, edx
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edx
mov word [edi], cx
mov ebx, 1
add edi, 2
sub dword [esp + 0x20], ebx
jne 0x765ff0
jmp 0x76604a
mov ebx, 1
mov ecx, dword [esp + 0x44]
add dword [esp + 0x80], ecx
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
add dword [esp + 0x6c], edx
mov edx, dword [esp + 0x4c]
sub dword [esp + 0x38], ebx
sub dword [esp + 0x34], ebx
add dword [esp + 0x68], ebx
sub ecx, 4
mov dword [esp + 0x70], ecx
sub edx, ecx
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x84], edi
mov edi, dword [esp + 0x60]
add dword [esp + 0x54], 1
add dword [esp + 0x74], edi
sub dword [esp + 0x58], 1
add ecx, ebx
cmp dword [esp + 0x38], ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x765c31
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [esp + 0x9c]
mov edx, ebx
lea esi, [ecx + edx]
sub ecx, edx
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp dword [esp + 0xa0], esi
mov esi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], esi
mov esi, dword [esp + 0x30]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0xa0], esi
mov esi, dword [esp + 0xa0]
setg dl
or ecx, edx
movzx edx, byte [eax + esi]
or ecx, edx
jne 0x7661e0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x76613a
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
cmp ecx, edi
jle 0x766148
mov ecx, edi
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, esi
add ecx, dword [esp + 0x40]
mov byte [eax + esi], 1
lea ecx, [ecx + edx*2]
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov edi, ebp
and edx, 0x7e0
and edi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
jmp 0x76618a
mov esi, dword [esp + 0x38]
movzx ecx, word [ecx]
mov edi, ecx
and edi, 0xf800
imul edi, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
shr ecx, 5
or edi, esi
or edi, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766186
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x9c]
xor ecx, ecx
mov edx, ebx
add esi, edx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x68], esi
setl cl
xor edx, edx
cmp edi, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x48], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp dword [esp + 0x68], esi
mov esi, dword [esp + 0x68]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7662e3
mov edx, dword [esp + 0x24]
cmp edi, edx
jl 0x766243
mov edx, edi
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jg 0x76624d
mov ecx, edi
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov edi, ebp
and edx, 0x7e0
and edi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
jmp 0x766294
mov esi, dword [esp + 0x38]
movzx ecx, word [ecx]
mov edi, ecx
and edi, 0xf800
imul edi, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
shr ecx, 5
or edi, esi
or edi, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766290
mov esi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
sub esi, ebx
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x50]
setl cl
xor edx, edx
cmp dword [esp + 0x50], esi
mov esi, dword [esp + 0x9c]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7663de
mov edx, dword [esp + 0x24]
cmp esi, edx
jl 0x766338
mov edx, esi
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jg 0x766342
mov ecx, esi
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [edi + edx*2]
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov edi, ebp
and edx, 0x7e0
and edi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
jmp 0x766384
mov esi, dword [esp + 0x38]
movzx ecx, word [ecx]
mov edi, ecx
and edi, 0xf800
imul edi, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
shr ecx, 5
or edi, esi
or edi, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766380
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x9c]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
mov edx, dword [esp + 0x44]
jl 0x7665bb
xor ecx, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x68]
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7664d5
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x766435
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x766441
mov ecx, dword [esp + 0x14]
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
lea esi, [esi + edx*2]
mov dword [esp + 0x20], ecx
mov edx, ebp
mov ebx, ebp
and ebx, 0xf800
mov ecx, ebp
and edx, 0x7e0
and ecx, 0x1f
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], ecx
jmp 0x766484
mov ebx, dword [esp + 0x38]
movzx ecx, word [esi]
mov esi, ecx
and esi, 0xf800
imul esi, ebx
mov ebx, ecx
and ebx, 0x7e0
imul ebx, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr esi, 0x10
and esi, 0xf800
shr ebx, 0xb
and ebx, 0x7e0
or esi, ebx
shr ecx, 5
or esi, ecx
mov ecx, esi
mov esi, dword [esp + 0x10]
mov word [esi], cx
add esi, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], esi
jne 0x766480
xor ecx, ecx
cmp edi, dword [esp + 0x28]
mov esi, dword [esp + 0x9c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [edi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7665a2
mov ecx, dword [esp + 0x24]
cmp esi, ecx
jl 0x76650e
mov ecx, esi
mov edx, dword [esp + 0x2c]
cmp esi, edx
jle 0x766518
mov esi, edx
mov byte [edi + eax], 1
imul edi, dword [esp + 0x44]
add edi, dword [esp + 0x40]
sub esi, ecx
add esi, 1
mov dword [esp + 0x20], esi
lea edi, [edi + ecx*2]
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov ecx, ebp
and edx, 0x7e0
and ecx, 0x1f
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], ecx
jmp 0x766554
mov esi, dword [esp + 0x38]
movzx ecx, word [edi]
mov ebx, ecx
and ebx, 0xf800
imul ebx, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr ebx, 0x10
shr esi, 0xb
and ebx, 0xf800
and esi, 0x7e0
or ebx, esi
shr ecx, 5
or ebx, ecx
mov word [edi], bx
add edi, 2
sub dword [esp + 0x20], 1
jne 0x766550
mov esi, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa4]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
add ebx, 0xffffffff
mov ecx, ebx
neg ecx
lea ecx, [edi + ecx*4]
add ecx, 6
cmp ebx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ecx
jl case.0x76399b.5
lea ecx, [ebx*4]
mov dword [esp + 0x7c], ecx
lea ecx, [esi + 1]
mov dword [esp + 0x54], ecx
lea ecx, [ebx + esi]
mov dword [esp + 0x34], ecx
lea ecx, [esi - 1]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xa0]
lea edi, [ebx + ecx]
imul edi, edx
mov dword [esp + 0x6c], edi
mov edi, esi
sub edi, ebx
mov dword [esp + 0x3c], edi
lea edi, [ecx + 1]
imul edi, edx
mov dword [esp + 0x84], edi
mov edi, edx
neg edi
mov dword [esp + 0x60], edi
mov edi, ecx
sub edi, ebx
imul edi, edx
mov dword [esp + 0x80], edi
lea edi, [ecx - 1]
imul edi, edx
sub ecx, esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x48], ecx
jmp 0x766645
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
add esi, ecx
xor ecx, ecx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x10], edx
setl cl
mov dword [esp + 0x5c], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
setg cl
xor edx, edx
cmp esi, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
setl dl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x766756
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x3c], edx
jl 0x7666b7
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jg 0x7666c5
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov byte [esi + eax], 1
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov edi, ebp
and edx, 0x7e0
and edi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
jmp 0x766707
mov esi, dword [esp + 0x38]
movzx ecx, word [ecx]
mov edi, ecx
and edi, 0xf800
imul edi, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
shr ecx, 5
or edi, esi
or edi, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766703
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea esi, [edx + ecx]
xor edx, edx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x766853
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x3c], edx
jl 0x7667b3
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x34], ecx
jg 0x7667c1
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov byte [esi + eax], 1
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov edi, ebp
and edx, 0x7e0
and edi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
jmp 0x766804
mov esi, dword [esp + 0x38]
movzx ecx, word [ecx]
mov edi, ecx
and edi, 0xf800
imul edi, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
shr ecx, 5
or edi, esi
or edi, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766800
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x766aa6
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x58]
add ecx, edx
xor edx, edx
cmp esi, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
setl dl
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x10], edi
mov dword [esp + 0x70], edx
xor edx, edx
cmp edi, dword [esp + 0x2c]
setg dl
mov dword [esp + 0x64], edx
xor edx, edx
cmp ecx, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x766973
mov edx, dword [esp + 0x24]
cmp edi, edx
jl 0x7668d1
mov edx, edi
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x7668df
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov byte [esi + eax], 1
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov edi, ebp
and edx, 0x7e0
and edi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
jmp 0x766924
mov esi, dword [esp + 0x38]
movzx ecx, word [ecx]
mov edi, ecx
and edi, 0xf800
imul edi, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
shr ecx, 5
or edi, esi
or edi, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766920
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x48]
lea esi, [edx + ecx]
xor edx, edx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, dword [esp + 0x64]
or edx, dword [esp + 0x70]
jne 0x766a73
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x7669d0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x7669de
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov byte [esi + eax], 1
mov edx, ebp
mov esi, ebp
and esi, 0xf800
mov edi, ebp
and edx, 0x7e0
and edi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], edi
jmp 0x766a24
mov esi, dword [esp + 0x38]
movzx ecx, word [ecx]
mov edi, ecx
and edi, 0xf800
imul edi, esi
mov esi, ecx
and esi, 0x7e0
imul esi, edx
and ecx, 0x1f
imul ecx, dword [esp + 0x14]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
shr ecx, 5
or edi, esi
or edi, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766a20
mov edx, dword [esp + 0x60]
add dword [esp + 0x6c], edx
mov edx, dword [esp + 0x44]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
mov ecx, 1
sub dword [esp + 0x34], ecx
add dword [esp + 0x3c], ecx
sub ebx, ecx
mov ecx, dword [esp + 0x7c]
sub ecx, 4
mov dword [esp + 0x7c], ecx
sub edx, ecx
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
add dword [esp + 0x84], esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x54], 1
add dword [esp + 0x74], esi
sub dword [esp + 0x58], 1
add ecx, 1
cmp ebx, ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x766641
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [esp + 0x9c]
mov esi, ebx
lea edx, [ecx + esi]
sub ecx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp dword [esp + 0xa0], esi
mov esi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], esi
mov esi, dword [esp + 0xa0]
setg dl
or ecx, edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [eax + esi]
or ecx, edx
jne 0x766c46
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x766b5e
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jle 0x766b6c
mov ecx, ebx
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, esi
add ecx, dword [esp + 0x40]
mov byte [eax + esi], 1
lea ecx, [ecx + edx*2]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
lea esp, [esp]
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
and edx, 0x3f
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
mov ebx, ecx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766bb0
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
add esi, edx
xor edx, edx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x68], esi
setl dl
mov dword [esp + 0x48], edx
xor edx, edx
cmp ecx, dword [esp + 0x2c]
setg dl
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x766d81
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x766cad
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x766cb7
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
and edx, 0x3f
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
mov ebx, ecx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766cf2
mov esi, dword [esp + 0xa0]
sub esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x766ea7
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x766dd3
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x766ddd
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
and edx, 0x3f
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
mov ebx, ecx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766e18
mov ebx, dword [esp + 0x4c]
test ebx, ebx
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x44]
jl 0x76711d
mov esi, dword [esp + 0x68]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x14], edx
setl cl
mov dword [esp + 0x10], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x766fdf
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x766f05
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x766f11
mov ecx, dword [esp + 0x14]
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
lea esp, [esp]
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
and edx, 0x3f
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
mov ebx, ecx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x766f50
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x7670f7
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x767023
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x76702d
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
and edx, 0x3f
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
mov ebx, ecx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x767068
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x9c]
add ecx, 0xffffffff
mov esi, ecx
neg esi
lea ebx, [ebx + esi*4]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x38], ecx
jmp 0x767121
mov ecx, dword [esp + 0x38]
add ebx, 6
cmp ecx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ebx
jl case.0x76399b.5
lea ebx, [ecx*4]
mov dword [esp + 0x70], ebx
lea ebx, [edx + 1]
mov dword [esp + 0x54], ebx
lea ebx, [ecx + edx]
mov dword [esp + 0x68], ebx
lea ebx, [edx - 1]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0xa0]
add ebx, ecx
imul ebx, esi
mov dword [esp + 0x6c], ebx
mov ebx, edx
sub ebx, ecx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xa0]
add ebx, 1
imul ebx, esi
mov dword [esp + 0x84], ebx
mov ebx, esi
neg ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
sub ebx, ecx
mov ecx, dword [esp + 0xa0]
imul ebx, esi
mov dword [esp + 0x80], ebx
lea ebx, [ecx - 1]
imul ebx, esi
sub ecx, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x48], ecx
jmp 0x7671c4
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
add esi, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
setg dl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x5c], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x767300
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x767226
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x68], ecx
jg 0x767234
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov byte [esi + eax], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
and edx, 0x3f
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
mov ebx, ecx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x767271
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
lea esi, [ecx + edx]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x767435
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x58], edx
jl 0x767351
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x68], ecx
jg 0x76735f
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov byte [esi + eax], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
lea esp, [esp]
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
mov ebx, ecx
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov esi, 1
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], esi
mov dword [esp + 0x10], ecx
jne 0x7673a0
jmp 0x76743a
mov esi, 1
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x7676eb
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x78]
add esi, ebx
xor ebx, ebx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
setl bl
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
setg cl
xor edx, edx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x5c], ebx
setl dl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, ebx
or edx, dword [esp + 0x64]
jne 0x767585
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x78], edx
jl 0x7674ae
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x7674bc
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov byte [esi + eax], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
and edx, 0x3f
mov ebx, esi
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
mov ebx, ecx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x7674f6
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
lea esi, [ecx + edx]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x7676b6
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x78], edx
jl 0x7675d6
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x54], ecx
jg 0x7675e4
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
sar edx, 5
and edx, 0x3f
mov dword [esp + 0x1c], edx
mov edx, ebp
sar edx, 0xb
mov dword [esp + 0x34], edx
mov edx, ebp
and edx, 0x1f
mov byte [esi + eax], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
movzx ecx, word [ecx]
movzx esi, cx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
and esi, 0x1f
mov dword [esp + 0x18], esi
mov esi, edx
imul esi, dword [esp + 0x1c]
shr ebx, 0xb
mov dword [esp + 0x3c], ebx
sar esi, 6
sub esi, edx
mov edx, dword [esp + 0x3c]
mov ebx, ecx
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x34]
imul esi, edx
sar esi, 5
sub esi, edx
mov dx, cx
shr dx, 0xb
add dx, word [edi + esi*4]
shl bx, 5
shl dx, 0xb
or bx, dx
mov edx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
sar edx, 5
sub edx, dword [esp + 0x18]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov esi, 1
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], esi
mov dword [esp + 0x10], ecx
jne 0x767621
jmp 0x7676bb
mov esi, 1
mov ecx, dword [esp + 0x60]
add dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
sub dword [esp + 0x38], esi
sub dword [esp + 0x68], esi
add dword [esp + 0x58], esi
sub ecx, 4
mov dword [esp + 0x70], ecx
sub edx, ecx
mov ecx, dword [esp + 0x50]
add dword [esp + 0x54], 1
sub dword [esp + 0x78], 1
add ecx, esi
mov esi, dword [esp + 0x44]
add dword [esp + 0x84], esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x74], esi
cmp dword [esp + 0x38], ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x7671c0
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov ecx, dword [esp + 0x9c]
mov esi, ebx
lea edx, [ecx + esi]
sub ecx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp dword [esp + 0xa0], esi
mov esi, dword [esp + 0x2c]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x10], esi
mov esi, dword [esp + 0xa0]
setg dl
or ecx, edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [eax + esi]
or ecx, edx
jne 0x76786c
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jge 0x7677a4
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
cmp ecx, ebx
jle 0x7677b2
mov ecx, ebx
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
imul ecx, esi
add ecx, dword [esp + 0x40]
mov byte [eax + esi], 1
lea ecx, [ecx + edx*2]
mov edx, ebp
not edx
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x7677fa
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x7677f6
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
add esi, edx
xor edx, edx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x68], esi
setl dl
mov dword [esp + 0x48], edx
xor edx, edx
cmp ecx, dword [esp + 0x2c]
setg dl
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x60], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x76798f
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x7678d3
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x7678dd
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
not edx
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x767924
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x767920
mov esi, dword [esp + 0xa0]
sub esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x50], esi
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x767a9f
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x7679e1
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x7679eb
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
not edx
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x767a34
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x767a30
mov ebx, dword [esp + 0x4c]
test ebx, ebx
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x44]
jl 0x767ce5
mov esi, dword [esp + 0x68]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x14], edx
setl cl
mov dword [esp + 0x10], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x767bbf
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x767afd
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x767b09
mov ecx, dword [esp + 0x14]
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
not edx
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x767b54
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x767b50
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x9c]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x60]
or ecx, dword [esp + 0x48]
jne 0x767cbf
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x767c03
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jg 0x767c0d
mov ecx, ebx
mov byte [esi + eax], 1
imul esi, dword [esp + 0x44]
add esi, dword [esp + 0x40]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
lea ecx, [esi + edx*2]
mov edx, ebp
not edx
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x767c54
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x767c50
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x9c]
add ecx, 0xffffffff
mov esi, ecx
neg esi
lea ebx, [ebx + esi*4]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x38], ecx
jmp 0x767ce9
mov ecx, dword [esp + 0x38]
add ebx, 6
cmp ecx, 1
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], ebx
jl case.0x76399b.5
lea ebx, [ecx*4]
mov dword [esp + 0x70], ebx
lea ebx, [edx + 1]
mov dword [esp + 0x78], ebx
lea ebx, [ecx + edx]
mov dword [esp + 0x58], ebx
lea ebx, [edx - 1]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0xa0]
add ebx, ecx
imul ebx, esi
mov dword [esp + 0x6c], ebx
mov ebx, edx
sub ebx, ecx
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0xa0]
add ebx, 1
imul ebx, esi
mov dword [esp + 0x84], ebx
mov ebx, esi
neg ebx
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0xa0]
sub ebx, ecx
mov ecx, dword [esp + 0xa0]
imul ebx, esi
mov dword [esp + 0x80], ebx
lea ebx, [ecx - 1]
imul ebx, esi
sub ecx, edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x48], ecx
jmp 0x767d85
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x68]
add esi, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
setl cl
xor edx, edx
cmp ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
setg dl
mov dword [esp + 0x64], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
mov dword [esp + 0x5c], edx
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x767eaf
mov edx, dword [esp + 0x24]
cmp ebx, edx
jl 0x767de7
mov edx, ebx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jg 0x767df5
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
not edx
mov byte [esi + eax], 1
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x767e44
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x767e40
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
lea esi, [ecx + edx]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x767fc5
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x68], edx
jl 0x767f00
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x58], ecx
jg 0x767f0e
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
not edx
mov byte [esi + eax], 1
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x767f54
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
shr esi, 0xb
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
mov esi, 1
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], esi
mov dword [esp + 0x10], ecx
jne 0x767f50
jmp 0x767fca
mov esi, 1
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76824c
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
add esi, ebx
xor ebx, ebx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
setl bl
xor ecx, ecx
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
setg cl
xor edx, edx
cmp esi, dword [esp + 0x28]
mov dword [esp + 0x64], ebx
setl dl
mov dword [esp + 0x5c], ecx
xor ecx, ecx
cmp esi, dword [esp + 0x30]
setg cl
or edx, ecx
movzx ecx, byte [esi + eax]
or edx, ecx
or edx, dword [esp + 0x5c]
or edx, ebx
jne 0x7680ff
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x54], edx
jl 0x76803e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x78], ecx
jg 0x76804c
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
not edx
mov byte [esi + eax], 1
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x768094
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
shr esi, 0xb
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x10], ecx
jne 0x768090
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
lea esi, [ecx + edx]
xor ecx, ecx
cmp esi, dword [esp + 0x28]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x30]
setg dl
or ecx, edx
movzx edx, byte [esi + eax]
or ecx, edx
or ecx, dword [esp + 0x5c]
or ecx, dword [esp + 0x64]
jne 0x768217
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x54], edx
jl 0x768150
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x78], ecx
jg 0x76815e
mov ecx, dword [esp + 0x14]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x80]
lea ecx, [ecx + edx*2]
add ecx, dword [esp + 0x40]
mov edx, ebp
not edx
mov byte [esi + eax], 1
movzx esi, dx
mov edx, esi
shr edx, 5
mov ebx, esi
and edx, 0x3f
shr ebx, 0xb
and esi, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], esi
jmp 0x7681a6
mov edx, dword [esp + 0x34]
movzx ecx, word [ecx]
movzx esi, cx
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub edx, ebx
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0x18], esi
shr esi, 0xb
and ebx, 0x3f
add bx, word [edi + edx*4]
mov edx, dword [esp + 0x3c]
sub edx, esi
mov si, cx
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x18]
shl si, 0xb
shl bx, 5
or bx, si
mov esi, dword [esp + 0x14]
and edx, 0x1f
and ecx, 0x1f
sub esi, edx
add cx, word [edi + esi*4]
mov esi, 1
or bx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], bx
add ecx, 2
sub dword [esp + 0x20], esi
mov dword [esp + 0x10], ecx
jne 0x7681a2
jmp 0x76821c
mov esi, 1
mov ecx, dword [esp + 0x60]
add dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
sub dword [esp + 0x38], esi
sub dword [esp + 0x58], esi
add dword [esp + 0x68], esi
sub ecx, 4
mov dword [esp + 0x70], ecx
sub edx, ecx
mov ecx, dword [esp + 0x50]
add dword [esp + 0x78], 1
sub dword [esp + 0x54], 1
add ecx, esi
mov esi, dword [esp + 0x44]
add dword [esp + 0x84], esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x74], esi
cmp dword [esp + 0x38], ecx
lea edx, [edx + ecx*4 + 2]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
jge 0x767d81
push eax
call fcn.0057cf76
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x1c]
sub eax, 0
je 0x76bf4e
sub eax, 1
jne case.0x76bfd7.5
mov edx, dword [0xb160d4]
and edx, 0xffffff
cmp edx, 0xffffff
je 0x768331
movzx eax, byte [esp + 0xaa]
movzx edx, byte [0xb160d6]
movzx edi, byte [0xb160d5]
imul eax, edx
movzx edx, byte [esp + 0xa9]
mov dword [esp + 0x88], edx
imul edx, edi
movzx edi, byte [0xb160d4]
sar edx, 8
mov byte [esp + 0xa9], dl
movzx edx, byte [esp + 0xa8]
mov dword [esp + 0x88], edx
imul edx, edi
sar eax, 8
sar edx, 8
mov byte [esp + 0xaa], al
mov byte [esp + 0xa8], dl
jmp 0x768338
mov al, byte [esp + 0xaa]
mov edx, dword [0xb160b4]
cmp edx, 0xb
ja case.0x76bfd7.5
jmp dword [edx*4 + 0x7702c0]
mov edx, dword [0xb160b8]
cmp edx, 0xff
jne 0x768773
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov edx, eax
sub edx, ebx
sub edi, esi
mov dword [esp + 0x10], edx
sub edx, esi
cmp edx, edi
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x14], edi
ja 0x7683bb
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
sub edi, edx
sub esi, edx
cmp esi, edi
ja 0x7683b4
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xa8]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
mov dword [edx + esi*4], edi
mov esi, dword [esp + 0xa0]
mov edx, ebx
add edx, eax
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x7683fa
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
sub edi, edx
sub esi, edx
cmp esi, edi
ja 0x7683f3
mov edi, dword [esp + 0xa8]
mov esi, ebp
imul esi, dword [esp + 0xa0]
add esi, ecx
mov edx, ebx
add edx, eax
mov dword [esi + edx*4], edi
mov esi, dword [esp + 0xa0]
mov edx, ebx
add edx, esi
mov dword [esp + 0x18], edx
mov edx, eax
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x768444
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
ja 0x768439
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xa8]
imul edx, ebp
add edx, ecx
mov dword [edx + eax*4], esi
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0x44]
mov edi, esi
sub edi, ebx
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
ja 0x768480
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, edi
sub esi, edi
cmp edx, esi
ja 0x768479
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xa8]
imul edx, ebp
add edx, ecx
mov dword [edx + eax*4], esi
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x768496
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
mov edi, dword [esp + 0x28]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
lea edx, [eax*4 + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x8c], edx
lea edx, [ebx + esi]
imul edx, ebp
mov dword [esp + 0x38], edx
mov edx, ebx
sub edx, edi
add edx, esi
mov dword [esp + 0x58], edx
lea edx, [ebx + eax]
add edx, edx
add edx, edx
mov dword [esp + 0x54], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
mov dword [esp + 0x80], 4
add edx, eax
mov dword [esp + 0x78], edx
lea edx, [esi + 1]
imul edx, ebp
mov dword [esp + 0x1c], edx
mov edx, esi
sub edx, edi
lea edi, [edx + 1]
mov dword [esp + 0x18], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x20], edi
mov edi, esi
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x3c], edi
lea edi, [eax*4 - 4]
sub eax, ebx
sub edx, ebx
add eax, eax
add eax, eax
mov dword [esp + 0x50], edx
lea edx, [esi - 1]
mov dword [esp + 0x34], eax
imul edx, ebp
mov eax, dword [esp + 0x28]
sub eax, esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x40], edi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x50], eax
ja 0x7685a1
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x18], eax
ja 0x7685a1
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
add eax, edi
mov edi, dword [esp + 0xa8]
mov dword [eax + ecx], edi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x78], eax
ja 0x7685cd
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x18], eax
ja 0x7685cd
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
add eax, edi
mov edi, dword [esp + 0xa8]
mov dword [eax + ecx], edi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x50], eax
ja 0x7685f5
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x10], eax
ja 0x7685f5
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0xa8]
add eax, edx
mov dword [eax + ecx], edi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x78], eax
ja 0x76861d
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x10], eax
ja 0x76861d
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0xa8]
add eax, edx
mov dword [eax + ecx], edi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x20], eax
ja 0x768649
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x58], eax
ja 0x768649
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add eax, edi
mov edi, dword [esp + 0xa8]
mov dword [eax + ecx], edi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x8c], eax
ja 0x768678
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x58], eax
ja 0x768678
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x38]
add eax, edi
mov edi, dword [esp + 0xa8]
mov dword [eax + ecx], edi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x20], eax
ja 0x7686a4
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x48], eax
ja 0x7686a4
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add eax, edi
mov edi, dword [esp + 0xa8]
mov dword [eax + ecx], edi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x8c], eax
ja 0x7686d3
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x48], eax
ja 0x7686d3
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x3c]
add eax, edi
mov edi, dword [esp + 0xa8]
mov dword [eax + ecx], edi
test esi, esi
jl 0x768716
sub dword [esp + 0x54], 4
add dword [esp + 0x34], 4
add dword [esp + 0x3c], ebp
mov eax, 1
sub dword [esp + 0x78], eax
sub dword [esp + 0x58], eax
sub ebx, eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x38], eax
mov eax, 1
add dword [esp + 0x50], eax
add dword [esp + 0x48], eax
mov eax, dword [esp + 0x6c]
sub eax, 4
mov dword [esp + 0x6c], eax
sub esi, eax
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x18]
add dword [esp + 0x1c], ebp
sub dword [esp + 0x40], 4
add edx, dword [esp + 0x60]
sub dword [esp + 0x10], 1
sub dword [esp + 0x20], 1
add dword [esp + 0x8c], 1
add dword [esp + 0x7c], 4
add edi, 4
add eax, 1
mov dword [esp + 0x80], edi
lea esi, [esi + edi + 2]
mov edi, dword [esp + 0x68]
add edi, eax
cmp ebx, edi
mov dword [esp + 0x18], eax
jge 0x768575
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
test edx, edx
je case.0x76bfd7.5
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x24]
mov edi, esi
sub edi, ebx
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
cmp edi, edx
ja 0x768835
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76882a
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x14]
mov edi, ebx
add edi, esi
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
cmp edi, edx
ja 0x7688d8
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x7688d1
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
mov edx, ebx
add edi, edx
mov edx, esi
sub edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76898e
mov edx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x76898e
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
movzx edi, byte [edx + esi*4]
lea edx, [edx + esi*4]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], edx
ja 0x768a3e
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x768a3e
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
movzx edi, byte [edx + esi*4]
lea edx, [edx + esi*4]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x768a50
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
lea edx, [esi*4 + 4]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xa0]
mov edi, ebx
sub edi, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edi, edx
mov dword [esp + 0x78], edi
lea edi, [ebx + esi]
add edi, edi
add edi, edi
mov dword [esp + 0x8c], edi
mov edi, ebx
sub edi, dword [esp + 0x24]
add edi, esi
mov dword [esp + 0x7c], edi
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x18], edi
lea edi, [edx + 1]
mov dword [esp + 0x48], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x44]
sub edx, ebx
mov dword [esp + 0x38], edi
lea edi, [esi*4 - 4]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x1c], edi
sub esi, ebx
lea edi, [edx - 1]
imul edi, ebp
add esi, esi
add esi, esi
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x28]
sub esi, edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x68], esi
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x34], edx
ja 0x768bd6
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x48], edx
ja 0x768bd6
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x58]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x7c], edx
ja 0x768c63
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x48], edx
ja 0x768c63
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x8c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x34], edx
ja 0x768ced
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x40], edx
ja 0x768ced
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x44]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x7c], edx
ja 0x768d7a
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x40], edx
ja 0x768d7a
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x8c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x10], edx
ja 0x768e04
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x768e04
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x54]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], edx
ja 0x768e8e
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x768e8e
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x70]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x10], edx
ja 0x768f18
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x768f18
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], edx
ja 0x768fa2
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x768fa2
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x70]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
cmp dword [esp + 0x4c], 0
mov esi, 1
lea edi, [esi + 3]
jl 0x768fe8
mov edx, dword [esp + 0x60]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x6c]
sub dword [esp + 0x7c], esi
sub dword [esp + 0x8c], edi
sub dword [esp + 0x78], esi
add dword [esp + 0x58], edi
add dword [esp + 0x38], ebp
add dword [esp + 0x34], esi
add dword [esp + 0x3c], esi
sub edx, edi
sub ebx, esi
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x48]
sub dword [esp + 0x1c], edi
mov edi, dword [esp + 0x4c]
add dword [esp + 0x18], ebp
add dword [esp + 0x70], 4
add edx, esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x44], esi
mov esi, 1
sub dword [esp + 0x40], esi
sub dword [esp + 0x10], esi
add dword [esp + 0x20], esi
mov esi, dword [esp + 0x80]
add esi, 4
mov dword [esp + 0x80], esi
lea esi, [edi + esi + 2]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x68]
add esi, edx
cmp ebx, esi
mov dword [esp + 0x48], edx
jge 0x768b50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76bfd7.5
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x2c]
sub edi, dword [esp + 0x24]
sub edx, ebx
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
mov dword [esp + 0x14], edi
cmp edx, edi
ja 0x76913e
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, eax
sub edi, eax
cmp edi, edx
ja 0x769137
mov edx, dword [esp + 0x10]
mov eax, ebp
imul eax, dword [esp + 0xa0]
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
mov dword [esp + 0x10], edi
mov edi, dword [edi]
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
mov edi, dword [edx]
mov edx, dword [esp + 0x1c]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
jmp 0x76913e
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0x9c]
mov edi, ebx
add edx, edi
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x769219
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, eax
sub edi, eax
cmp edi, edx
ja 0x769212
mov edx, dword [esp + 0x10]
mov eax, ebp
imul eax, dword [esp + 0xa0]
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
mov dword [esp + 0x10], edi
mov edi, dword [edi]
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
mov edi, dword [edx]
mov edx, dword [esp + 0x1c]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
jmp 0x769219
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0xa0]
mov edi, ebx
add edx, edi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x7692fc
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, eax
sub edi, eax
cmp edx, edi
ja 0x7692f5
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul eax, ebp
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
mov dword [esp + 0x10], edi
mov edi, dword [edi]
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
mov edi, dword [edx]
mov edx, dword [esp + 0x1c]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
jmp 0x7692fc
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], edx
ja 0x7693d2
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, eax
sub edi, eax
cmp edx, edi
ja 0x7693cb
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul eax, ebp
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
mov dword [esp + 0x10], edi
mov edi, dword [edi]
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
mov edi, dword [edx]
mov edx, dword [esp + 0x1c]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
jmp 0x7693d2
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x7693e4
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
lea edx, [edx*4 + 4]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x54], edx
mov edx, ebx
sub edx, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edx, dword [esp + 0xa0]
mov dword [esp + 0x8c], edx
lea edx, [ebx + edi]
add edx, edx
add edx, edx
mov dword [esp + 0x7c], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
add edx, edi
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xa0]
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x48], edi
lea edi, [edx + 1]
mov dword [esp + 0x78], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x44]
sub edx, ebx
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x3c], edx
lea edi, [edi*4 - 4]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0xa0]
lea edx, [edi - 1]
imul edx, ebp
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x9c]
sub edx, ebx
add edx, edx
add edx, edx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x28]
sub edx, edi
mov dword [esp + 0x68], edx
nop
mov edx, dword [esp + 0x3c]
cmp edx, dword [esp + 0x14]
ja 0x7695ac
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x7695ac
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x48]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x70], edx
ja 0x769658
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x769658
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x7c]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x3c], edx
ja 0x769704
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x20], edx
ja 0x769704
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x44]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x70], edx
ja 0x7697b0
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x20], edx
ja 0x7697b0
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x7c]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x64], edx
ja 0x76985f
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x8c], edx
ja 0x76985f
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x54]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x5c], edx
ja 0x76990e
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x8c], edx
ja 0x76990e
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x74]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x64], edx
ja 0x7699ba
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x7699ba
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x5c], edx
ja 0x769a66
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x769a66
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x74]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
add edi, ecx
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [edi]
mov dword [esp + 0x34], edi
and edx, 0xfefeff
and edi, 0xfefeff
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
or edx, dword [esp + 0x34]
mov edi, dword [esp + 0x88]
and edx, 0x10100
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov dword [edx], edi
cmp dword [esp + 0x4c], 0
jl 0x769ab1
sub dword [esp + 0x7c], 4
add dword [esp + 0x58], 4
add dword [esp + 0x38], ebp
mov edx, 1
sub dword [esp + 0x70], edx
sub dword [esp + 0x8c], edx
sub ebx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x54], edx
mov edx, 1
add dword [esp + 0x3c], edx
add dword [esp + 0x50], edx
mov edx, dword [esp + 0x6c]
sub edx, 4
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x44], edx
mov edi, dword [esp + 0x4c]
add dword [esp + 0x78], 1
add dword [esp + 0x48], ebp
sub dword [esp + 0x40], 4
add dword [esp + 0x74], 4
mov edx, 1
sub dword [esp + 0x20], edx
sub dword [esp + 0x64], edx
add dword [esp + 0x5c], edx
mov edx, dword [esp + 0x80]
add edx, 4
mov dword [esp + 0x80], edx
lea edx, [edi + edx + 2]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
add edx, edi
cmp ebx, edx
jge 0x769500
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76bfd7.5
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x2c]
sub edi, dword [esp + 0x24]
sub edx, ebx
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
mov dword [esp + 0x14], edi
cmp edx, edi
ja 0x769bf3
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, eax
sub edi, eax
cmp edi, edx
ja 0x769bec
mov edx, dword [esp + 0x10]
mov eax, ebp
imul eax, dword [esp + 0xa0]
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
jmp 0x769bf3
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0x9c]
mov edi, ebx
add edx, edi
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x769cba
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, eax
sub edi, eax
cmp edi, edx
ja 0x769cb3
mov edx, dword [esp + 0x10]
mov eax, ebp
imul eax, dword [esp + 0xa0]
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
jmp 0x769cba
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0xa0]
mov edi, ebx
add edx, edi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x769d89
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, eax
sub edi, eax
cmp edx, edi
ja 0x769d82
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul eax, ebp
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
jmp 0x769d89
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], edx
ja 0x769e4b
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, eax
sub edi, eax
cmp edx, edi
ja 0x769e44
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul eax, ebp
add eax, ecx
lea edi, [eax + edx*4]
movzx eax, byte [esp + 0xa8]
movzx edx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa9]
mov byte [esp + 0x1c], dl
movzx edx, byte [esi + eax*4]
mov al, byte [esp + 0xaa]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
jmp 0x769e4b
mov al, byte [esp + 0xaa]
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x769e5d
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
lea edx, [edx*4 + 4]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x70], edx
mov edx, ebx
sub edx, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edx, dword [esp + 0xa0]
mov dword [esp + 0x64], edx
lea edx, [ebx + edi]
add edx, edx
add edx, edx
mov dword [esp + 0x5c], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
add edx, edi
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0xa0]
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x38], edi
lea edi, [edx + 1]
mov dword [esp + 0x78], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x44]
sub edx, ebx
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x54], edx
lea edi, [edi*4 - 4]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0xa0]
lea edx, [edi - 1]
imul edx, ebp
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x9c]
sub edx, ebx
add edx, edx
add edx, edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x28]
sub edx, edi
mov dword [esp + 0x68], edx
jmp 0x769f80
mov edx, dword [esp + 0x54]
cmp edx, dword [esp + 0x14]
ja 0x76a018
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76a018
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x38]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76a0b0
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76a0b0
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x5c]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x54], edx
ja 0x76a148
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76a148
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x3c]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76a1e0
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76a1e0
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x5c]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76a278
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76a278
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x70]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x40], edx
ja 0x76a310
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76a310
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x20]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76a3ab
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76a3ab
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x8c]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x40], edx
ja 0x76a446
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76a446
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x20]
add edi, edx
movzx edx, byte [esp + 0xa8]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0xa9]
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1d], dl
movzx edx, al
movzx edx, byte [esi + edx*4]
mov byte [esp + 0x1e], dl
mov edx, dword [esp + 0x1c]
and edx, 0xfefefeff
add edi, ecx
mov dword [esp + 0x88], edx
mov edx, dword [edi]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x88]
or edx, 0x1010100
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x1010100
mov edi, edx
shr edi, 8
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [edi], edx
cmp dword [esp + 0x4c], 0
jl 0x76a491
sub dword [esp + 0x5c], 4
add dword [esp + 0x7c], 4
add dword [esp + 0x8c], ebp
mov edx, 1
sub dword [esp + 0x74], edx
sub dword [esp + 0x64], edx
sub ebx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x70], edx
mov edx, 1
add dword [esp + 0x54], edx
add dword [esp + 0x58], edx
mov edx, dword [esp + 0x6c]
sub edx, 4
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x3c], edx
mov edi, dword [esp + 0x4c]
add dword [esp + 0x78], 1
add dword [esp + 0x38], ebp
sub dword [esp + 0x34], 4
add dword [esp + 0x20], 4
mov edx, 1
sub dword [esp + 0x50], edx
sub dword [esp + 0x48], edx
add dword [esp + 0x40], edx
mov edx, dword [esp + 0x80]
add edx, 4
mov dword [esp + 0x80], edx
lea edx, [edi + edx + 2]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
add edx, edi
cmp ebx, edx
jge 0x769f80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x24]
mov edi, esi
sub edi, ebx
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
cmp edi, edx
ja 0x76a58c
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76a581
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x14]
mov edi, ebx
add edi, esi
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
cmp edi, edx
ja 0x76a60a
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76a603
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
mov edx, ebx
add edi, edx
mov edx, esi
sub edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76a69a
mov edx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x76a69a
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
lea edi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
mov dword [esp + 0x10], edi
movzx edi, byte [edi]
imul edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
movzx edx, al
imul edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], edx
ja 0x76a724
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x76a724
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
lea edi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
mov dword [esp + 0x10], edi
movzx edi, byte [edi]
imul edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
movzx edx, al
imul edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76a736
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
lea edx, [esi*4 + 4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xa0]
mov edi, ebx
sub edi, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edi, edx
mov dword [esp + 0x64], edi
lea edi, [ebx + esi]
add edi, edi
add edi, edi
mov dword [esp + 0x5c], edi
mov edi, ebx
sub edi, dword [esp + 0x24]
add edi, esi
mov dword [esp + 0x74], edi
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x38], edi
lea edi, [edx + 1]
mov dword [esp + 0x58], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x44]
sub edx, ebx
mov dword [esp + 0x8c], edi
lea edi, [esi*4 - 4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x34], edi
sub esi, ebx
lea edi, [edx - 1]
imul edi, ebp
add esi, esi
add esi, esi
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x28]
sub esi, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], esi
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x78], edx
ja 0x76a88d
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76a88d
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x7c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76a8ea
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76a8ea
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x5c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x78], edx
ja 0x76a947
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76a947
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x3c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76a9a4
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76a9a4
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76aa01
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76aa01
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x70]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], edx
ja 0x76aa5e
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76aa5e
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x1c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76aac2
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76aac2
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x8c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], edx
ja 0x76ab26
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76ab26
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x1c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
add esi, ecx
imul edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
mov byte [esi + 2], dl
cmp dword [esp + 0x4c], 0
mov esi, 1
lea edi, [esi + 3]
jl 0x76ab6c
mov edx, dword [esp + 0x60]
add dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
sub dword [esp + 0x74], esi
sub dword [esp + 0x5c], edi
sub dword [esp + 0x64], esi
add dword [esp + 0x7c], edi
add dword [esp + 0x8c], ebp
add dword [esp + 0x78], esi
add dword [esp + 0x54], esi
sub edx, edi
sub ebx, esi
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
sub dword [esp + 0x34], edi
mov edi, dword [esp + 0x4c]
add dword [esp + 0x38], ebp
add dword [esp + 0x1c], 4
add edx, esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x3c], esi
mov esi, 1
sub dword [esp + 0x50], esi
sub dword [esp + 0x48], esi
add dword [esp + 0x18], esi
mov esi, dword [esp + 0x80]
add esi, 4
mov dword [esp + 0x80], esi
lea esi, [edi + esi + 2]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x68]
add esi, edx
cmp ebx, esi
mov dword [esp + 0x58], edx
jge 0x76a830
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x24]
mov edi, esi
sub edi, ebx
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
cmp edi, edx
ja 0x76aca7
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76ac9c
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x14]
mov edi, ebx
add edi, esi
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
cmp edi, edx
ja 0x76ad65
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76ad5e
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
movzx edx, byte [esp + 0xa8]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
mov edx, ebx
add edi, edx
mov edx, esi
sub edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76ae36
mov edx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x76ae36
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
movzx edi, byte [edx + esi*4]
lea edx, [edx + esi*4]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0xa8]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], edx
ja 0x76af01
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x76af01
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
movzx edi, byte [edx + esi*4]
lea edx, [edx + esi*4]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0xa8]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76af13
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
lea edx, [esi*4 + 4]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xa0]
mov edi, ebx
sub edi, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edi, edx
mov dword [esp + 0x64], edi
lea edi, [ebx + esi]
add edi, edi
add edi, edi
mov dword [esp + 0x5c], edi
mov edi, ebx
sub edi, dword [esp + 0x24]
add edi, esi
mov dword [esp + 0x74], edi
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x38], edi
lea edi, [edx + 1]
mov dword [esp + 0x58], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x44]
sub edx, ebx
mov dword [esp + 0x8c], edi
lea edi, [esi*4 - 4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x34], edi
sub esi, ebx
lea edi, [edx - 1]
imul edi, ebp
add esi, esi
add esi, esi
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x28]
sub esi, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], esi
lea ecx, [ecx]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x78], edx
ja 0x76b0b1
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76b0b1
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x7c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76b156
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76b156
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x5c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x78], edx
ja 0x76b1fb
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x48], edx
ja 0x76b1fb
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x3c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76b2a0
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x48], edx
ja 0x76b2a0
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], edx
ja 0x76b345
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76b345
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x70]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x1c], edx
ja 0x76b3ea
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76b3ea
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x40]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], edx
ja 0x76b492
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76b492
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x8c]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x1c], edx
ja 0x76b53a
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76b53a
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x40]
add esi, edx
movzx edi, byte [esi + ecx]
movzx edx, byte [esp + 0xa8]
imul edx, edi
add esi, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
movzx edx, byte [esp + 0xa9]
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
movzx edx, al
imul edx, edi
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
cmp dword [esp + 0x4c], 0
mov esi, 1
lea edi, [esi + 3]
jl 0x76b580
mov edx, dword [esp + 0x60]
add dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
sub dword [esp + 0x74], esi
sub dword [esp + 0x5c], edi
sub dword [esp + 0x64], esi
add dword [esp + 0x7c], edi
add dword [esp + 0x8c], ebp
add dword [esp + 0x78], esi
add dword [esp + 0x54], esi
sub edx, edi
sub ebx, esi
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
sub dword [esp + 0x34], edi
mov edi, dword [esp + 0x4c]
add dword [esp + 0x38], ebp
add dword [esp + 0x40], 4
add edx, esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x3c], esi
mov esi, 1
sub dword [esp + 0x48], esi
sub dword [esp + 0x18], esi
add dword [esp + 0x1c], esi
mov esi, dword [esp + 0x80]
add esi, 4
mov dword [esp + 0x80], esi
lea esi, [edi + esi + 2]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x68]
add esi, edx
cmp ebx, esi
mov dword [esp + 0x58], edx
jge 0x76b010
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x24]
mov edi, esi
sub edi, ebx
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
cmp edi, edx
ja 0x76b6ac
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76b6a1
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x14]
mov edi, ebx
add edi, esi
mov dword [esp + 0x10], edi
sub edi, dword [esp + 0x24]
cmp edi, edx
ja 0x76b75b
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76b754
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx edi, byte [edx + esi*4]
lea esi, [edx + esi*4]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
mov edx, ebx
add edi, edx
mov edx, esi
sub edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76b81d
mov edx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x76b81d
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
movzx edi, byte [edx + esi*4]
lea edx, [edx + esi*4]
mov dword [esp + 0x10], edx
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
mov dl, byte [esp + 0xa9]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], edx
ja 0x76b8d9
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
mov esi, dword [esp + 0x9c]
ja 0x76b8d9
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, ecx
movzx edi, byte [edx + esi*4]
lea edx, [edx + esi*4]
mov dword [esp + 0x10], edx
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi], dl
movzx edi, byte [edi + 1]
mov dl, byte [esp + 0xa9]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 1], dl
movzx edi, byte [edi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 8
mov byte [edi + 2], dl
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76b8eb
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
lea edx, [esi*4 + 4]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xa0]
mov edi, ebx
sub edi, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edi, edx
mov dword [esp + 0x64], edi
lea edi, [ebx + esi]
add edi, edi
add edi, edi
mov dword [esp + 0x5c], edi
mov edi, ebx
sub edi, dword [esp + 0x24]
add edi, esi
mov dword [esp + 0x74], edi
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x38], edi
lea edi, [edx + 1]
mov dword [esp + 0x58], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x44]
sub edx, ebx
mov dword [esp + 0x8c], edi
lea edi, [esi*4 - 4]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x34], edi
sub esi, ebx
lea edi, [edx - 1]
imul edi, ebp
add esi, esi
add esi, esi
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x28]
sub esi, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], esi
jmp 0x76b9f0
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x78], edx
ja 0x76ba82
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76ba82
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x7c]
add esi, edx
mov dl, byte [esp + 0xa8]
movzx edi, byte [esi + ecx]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76bb18
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76bb18
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x5c]
add esi, edx
movzx edi, byte [esi + ecx]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x78], edx
ja 0x76bbae
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x48], edx
ja 0x76bbae
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x3c]
add esi, edx
movzx edi, byte [esi + ecx]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76bc44
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x48], edx
ja 0x76bc44
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
add esi, edx
movzx edi, byte [esi + ecx]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], edx
ja 0x76bcda
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76bcda
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x70]
add esi, edx
movzx edi, byte [esi + ecx]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x1c], edx
ja 0x76bd70
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76bd70
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x40]
add esi, edx
movzx edi, byte [esi + ecx]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], edx
ja 0x76be09
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76be09
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x8c]
add esi, edx
movzx edi, byte [esi + ecx]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x1c], edx
ja 0x76bea2
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76bea2
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x40]
add esi, edx
movzx edi, byte [esi + ecx]
mov dl, byte [esp + 0xa8]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
add esi, ecx
mov dword [esp + 0x50], edi
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
mov dl, byte [esp + 0xa9]
movzx edi, byte [esi + 1]
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov dl, al
not dl
movzx edx, dl
sub edx, edi
imul edx, dword [0xb160b8]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
cmp dword [esp + 0x4c], 0
mov esi, 1
lea edi, [esi + 3]
jl 0x76bee8
mov edx, dword [esp + 0x60]
add dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
sub dword [esp + 0x74], esi
sub dword [esp + 0x5c], edi
sub dword [esp + 0x64], esi
add dword [esp + 0x7c], edi
add dword [esp + 0x8c], ebp
add dword [esp + 0x78], esi
add dword [esp + 0x54], esi
sub edx, edi
sub ebx, esi
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
sub dword [esp + 0x34], edi
mov edi, dword [esp + 0x4c]
add dword [esp + 0x38], ebp
add dword [esp + 0x40], 4
add edx, esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x3c], esi
mov esi, 1
sub dword [esp + 0x48], esi
sub dword [esp + 0x18], esi
add dword [esp + 0x1c], esi
mov esi, dword [esp + 0x80]
add esi, 4
mov dword [esp + 0x80], esi
lea esi, [edi + esi + 2]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x68]
add esi, edx
cmp ebx, esi
mov dword [esp + 0x58], edx
jge 0x76b9f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov edx, dword [0xb160d4]
mov eax, edx
and eax, 0xffffff
cmp eax, 0xffffff
je 0x76bfc1
mov ecx, dword [esp + 0xa8]
mov eax, ecx
sar eax, 5
and eax, 0x3f
movzx edx, dh
imul eax, edx
movzx edx, byte [0xb160d4]
and ecx, 0x1f
imul ecx, edx
movzx edx, byte [0xb160d6]
sar ecx, 5
and eax, 0xffffff07
or eax, ecx
mov ecx, dword [esp + 0xa8]
sar ecx, 8
and ecx, 0xfffffff8
imul ecx, edx
and ecx, 0xfffff800
sar eax, 3
or eax, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
jmp 0x76bfc8
mov eax, dword [esp + 0xa8]
mov edx, dword [0xb160b4]
cmp edx, 0xb
ja case.0x76bfd7.5
jmp dword [edx*4 + 0x7702f0]
mov edx, dword [0xb160b8]
cmp edx, 0xff
jne 0x76c411
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov edx, eax
sub edx, ebx
mov dword [esp + 0x10], edx
sub edi, esi
sub edx, esi
cmp edx, edi
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x14], edi
ja 0x76c04d
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
sub edi, esi
sub edx, esi
cmp edx, edi
ja 0x76c046
mov esi, dword [esp + 0x10]
mov di, word [esp + 0xa8]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
mov word [edx + esi*2], di
mov edx, dword [esp + 0xa0]
mov esi, ebx
add esi, eax
sub esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x14]
ja 0x76c08e
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
sub edi, esi
sub edx, esi
cmp edx, edi
ja 0x76c087
mov di, word [esp + 0xa8]
mov esi, ebp
imul esi, dword [esp + 0xa0]
add esi, ecx
mov edx, ebx
add edx, eax
mov word [esi + edx*2], di
mov edx, dword [esp + 0xa0]
mov esi, ebx
add esi, edx
mov dword [esp + 0x18], esi
mov esi, eax
sub esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x14]
mov dword [esp + 0x44], esi
ja 0x76c0da
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
ja 0x76c0cf
mov edx, dword [esp + 0x18]
mov si, word [esp + 0xa8]
imul edx, ebp
add edx, ecx
mov word [edx + eax*2], si
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x44]
mov edi, edx
sub edi, ebx
cmp esi, dword [esp + 0x14]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
ja 0x76c118
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, edi
sub esi, edi
cmp edx, esi
ja 0x76c111
mov edx, dword [esp + 0x18]
mov si, word [esp + 0xa8]
imul edx, ebp
add edx, ecx
mov word [edx + eax*2], si
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x4c]
test esi, esi
jl 0x76c12e
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea esi, [esi + edi*4]
mov edi, dword [esp + 0x28]
add esi, 6
cmp ebx, 1
mov dword [esp + 0x4c], esi
jl case.0x76bfd7.5
lea esi, [ebx*4]
mov dword [esp + 0x6c], esi
lea esi, [eax + eax + 2]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x44]
add esi, 1
mov dword [esp + 0x48], esi
lea esi, [ebx + edx]
imul esi, ebp
mov dword [esp + 0x70], esi
mov esi, ebx
sub esi, edi
add esi, edx
mov dword [esp + 0x64], esi
lea esi, [ebx + eax]
add esi, esi
mov dword [esp + 0x5c], esi
mov esi, ebx
sub esi, dword [esp + 0x24]
mov dword [esp + 0x80], 4
add esi, eax
mov dword [esp + 0x74], esi
lea esi, [edx + 1]
imul esi, ebp
mov dword [esp + 0x38], esi
mov esi, edx
sub esi, edi
lea edi, [esi + 1]
mov dword [esp + 0x58], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, esi
sub edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x50], edi
mov edi, edx
sub edi, ebx
imul edi, ebp
add esi, 0xffffffff
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x8c], edi
lea edi, [eax + eax - 2]
sub esi, ebx
sub eax, ebx
add eax, eax
mov dword [esp + 0x78], esi
lea esi, [edx - 1]
mov dword [esp + 0x7c], eax
imul esi, ebp
mov eax, dword [esp + 0x28]
sub eax, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x78], eax
ja 0x76c231
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x58], eax
ja 0x76c231
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x38]
add eax, edi
mov di, word [esp + 0xa8]
mov word [eax + ecx], di
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x74], eax
ja 0x76c25f
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x58], eax
ja 0x76c25f
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x38]
add eax, edi
mov di, word [esp + 0xa8]
mov word [eax + ecx], di
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x78], eax
ja 0x76c289
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x3c], eax
ja 0x76c289
mov eax, dword [esp + 0x7c]
mov di, word [esp + 0xa8]
add eax, esi
mov word [eax + ecx], di
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x74], eax
ja 0x76c2b3
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x3c], eax
ja 0x76c2b3
mov eax, dword [esp + 0x5c]
mov di, word [esp + 0xa8]
add eax, esi
mov word [eax + ecx], di
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x50], eax
ja 0x76c2e1
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x64], eax
ja 0x76c2e1
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x70]
add eax, edi
mov di, word [esp + 0xa8]
mov word [eax + ecx], di
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x48], eax
ja 0x76c30f
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x64], eax
ja 0x76c30f
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
add eax, edi
mov di, word [esp + 0xa8]
mov word [eax + ecx], di
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x50], eax
ja 0x76c340
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x54], eax
ja 0x76c340
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x34]
add eax, edi
mov di, word [esp + 0xa8]
mov word [eax + ecx], di
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x48], eax
ja 0x76c371
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
cmp dword [esp + 0x54], eax
ja 0x76c371
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x18]
add eax, edi
mov di, word [esp + 0xa8]
mov word [eax + ecx], di
test edx, edx
jl 0x76c3b7
sub dword [esp + 0x5c], 2
add dword [esp + 0x7c], 2
add dword [esp + 0x8c], ebp
mov eax, 1
sub dword [esp + 0x74], eax
sub dword [esp + 0x64], eax
sub ebx, eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x70], eax
mov eax, 1
add dword [esp + 0x78], eax
add dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
sub eax, 4
mov dword [esp + 0x6c], eax
sub edx, eax
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x58]
add dword [esp + 0x38], ebp
sub dword [esp + 0x34], 2
add esi, dword [esp + 0x60]
sub dword [esp + 0x3c], 1
sub dword [esp + 0x50], 1
add dword [esp + 0x48], 1
add dword [esp + 0x18], 2
add edi, 4
add eax, 1
mov dword [esp + 0x80], edi
lea edx, [edx + edi + 2]
mov edi, dword [esp + 0x68]
add edi, eax
cmp ebx, edi
mov dword [esp + 0x58], eax
jge 0x76c203
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
test edx, edx
je case.0x76bfd7.5
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x24]
sub edx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
sub edx, esi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
sub edx, esi
cmp edx, dword [esp + 0x14]
ja 0x76c4ef
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0xa0]
sub edx, ecx
sub esi, ecx
cmp esi, edx
ja 0x76c4eb
mov edx, dword [esp + 0x10]
mov ecx, ebp
imul ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0x40]
mov esi, eax
lea ecx, [ecx + edx*2]
mov dword [esp + 0x10], ecx
movzx ecx, word [ecx]
movzx edx, cx
mov dword [esp + 0x18], edx
sar esi, 5
shr edx, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr edx, 5
shr ecx, 0xb
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x9c]
mov esi, ebx
add edx, esi
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x76c5b7
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0xa0]
sub edx, ecx
sub esi, ecx
cmp esi, edx
ja 0x76c5b3
mov edx, dword [esp + 0x10]
mov ecx, ebp
imul ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0x40]
mov esi, eax
lea ecx, [ecx + edx*2]
mov dword [esp + 0x10], ecx
movzx ecx, word [ecx]
movzx edx, cx
mov dword [esp + 0x18], edx
sar esi, 5
shr edx, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr edx, 5
shr ecx, 0xb
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xa0]
mov esi, ebx
add edx, esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76c687
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, ecx
sub esi, ecx
cmp edx, esi
ja 0x76c683
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul ecx, ebp
add ecx, dword [esp + 0x40]
mov esi, eax
lea ecx, [ecx + edx*2]
mov dword [esp + 0x10], ecx
movzx ecx, word [ecx]
movzx edx, cx
mov dword [esp + 0x18], edx
sar esi, 5
shr edx, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr edx, 5
shr ecx, 0xb
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x14]
ja 0x76c74a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, ecx
sub esi, ecx
cmp edx, esi
ja 0x76c746
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul ecx, ebp
add ecx, dword [esp + 0x40]
mov esi, eax
lea ecx, [ecx + edx*2]
mov dword [esp + 0x10], ecx
movzx ecx, word [ecx]
movzx edx, cx
mov dword [esp + 0x18], edx
sar esi, 5
shr edx, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr edx, 5
shr ecx, 0xb
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76c75c
add ebx, 0xffffffff
mov esi, ebx
neg esi
lea edx, [edx + esi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
lea edx, [edx + edx + 2]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x70], edx
mov esi, dword [esp + 0xa0]
mov edx, ebx
sub edx, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edx, dword [esp + 0xa0]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x9c]
add edx, ebx
add edx, edx
mov dword [esp + 0x5c], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
add edx, dword [esp + 0x9c]
mov dword [esp + 0x74], edx
lea edx, [esi + 1]
imul edx, ebp
mov dword [esp + 0x38], edx
mov edx, esi
sub edx, dword [esp + 0x28]
mov dword [esp + 0x54], edx
lea esi, [edx + 1]
sub edx, ebx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x44]
add edx, 0xffffffff
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xa0]
sub edx, ebx
imul edx, ebp
mov dword [esp + 0x78], esi
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x9c]
mov esi, ebp
neg esi
mov dword [esp + 0x60], esi
lea esi, [edx + edx - 2]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x54]
add esi, 0xffffffff
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x44]
sub esi, ebx
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0xa0]
add esi, 0xffffffff
imul esi, ebp
sub edx, ebx
add edx, edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0xa0]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x68], edx
lea ebx, [ebx]
mov edx, dword [esp + 0x54]
cmp edx, dword [esp + 0x14]
ja 0x76c927
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76c927
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x7c]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76c9ce
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76c9ce
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x38]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x54], edx
ja 0x76ca75
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76ca75
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x7c]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x74], edx
ja 0x76cb1c
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76cb1c
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76cbc3
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76cbc3
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x34]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], edx
ja 0x76cc6d
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x64], edx
ja 0x76cc6d
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x70]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76cd17
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76cd17
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x34]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], edx
ja 0x76cdc4
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76cdc4
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov dword [esp + 0x18], edx
shr edx, 5
and edx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
sub esi, edx
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
shr ecx, 0xb
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
and ecx, 0x1f
mov esi, eax
and esi, 0x1f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x4c], 0
jl 0x76ce0f
sub dword [esp + 0x5c], 2
add dword [esp + 0x7c], 2
add dword [esp + 0x8c], ebp
mov edx, 1
sub dword [esp + 0x74], edx
sub dword [esp + 0x64], edx
sub ebx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x70], edx
mov edx, 1
add dword [esp + 0x54], edx
add dword [esp + 0x58], edx
mov edx, dword [esp + 0x6c]
sub edx, 4
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x3c], edx
mov esi, dword [esp + 0x4c]
add dword [esp + 0x78], 1
add dword [esp + 0x38], ebp
sub dword [esp + 0x34], 2
add dword [esp + 0x84], 2
mov edx, 1
sub dword [esp + 0x50], edx
sub dword [esp + 0x48], edx
add dword [esp + 0x20], edx
mov edx, dword [esp + 0x80]
add edx, 4
mov dword [esp + 0x80], edx
lea edx, [esi + edx + 2]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
add edx, esi
cmp ebx, edx
jge 0x76c880
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76bfd7.5
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x24]
sub edx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
sub edx, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
sub edx, edi
cmp edx, dword [esp + 0x14]
ja 0x76cf6a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, ecx
sub edi, ecx
cmp edi, edx
mov ecx, dword [esp + 0x40]
ja 0x76cf6a
mov edi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
movzx edi, word [edx]
mov edx, dword [esp + 0x38]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x9c]
mov edi, ebx
add edx, edi
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x76d041
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, ecx
sub edi, ecx
cmp edi, edx
mov ecx, dword [esp + 0x40]
ja 0x76d041
mov edi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
movzx edi, word [edx]
mov edx, dword [esp + 0x38]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0xa0]
mov edi, ebx
add edx, edi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76d120
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, ecx
sub edi, ecx
cmp edx, edi
mov ecx, dword [esp + 0x40]
ja 0x76d120
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x9c]
imul edx, ebp
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
movzx edi, word [edx]
mov edx, dword [esp + 0x38]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x14]
ja 0x76d1f2
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, ecx
sub edi, ecx
cmp edx, edi
mov ecx, dword [esp + 0x40]
ja 0x76d1f2
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x9c]
imul edx, ebp
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
movzx edi, word [edx]
mov edx, dword [esp + 0x38]
or edx, edi
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76d204
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
lea edx, [edx + edx + 2]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x64], edx
mov edx, ebx
sub edx, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edx, dword [esp + 0xa0]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x9c]
add edx, ebx
add edx, edx
mov dword [esp + 0x74], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
add edx, dword [esp + 0x9c]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0xa0]
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x58], edi
lea edi, [edx + 1]
mov dword [esp + 0x78], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x9c]
sub edx, ebx
mov dword [esp + 0x8c], edx
lea edi, [edi + edi - 2]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0xa0]
lea edx, [edi - 1]
imul edx, ebp
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x9c]
sub edx, ebx
add edx, edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x28]
sub edx, edi
mov dword [esp + 0x68], edx
lea esp, [esp]
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x14]
ja 0x76d3d6
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76d3d6
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x70]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76d48c
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76d48c
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x58]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x8c], edx
ja 0x76d542
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76d542
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x70]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76d5f8
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76d5f8
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x3c]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76d6ab
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76d6ab
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x34]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x40], edx
ja 0x76d75e
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76d75e
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x64]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76d811
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76d811
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x34]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x40], edx
ja 0x76d8c4
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76d8c4
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x7c]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x38], edi
and edx, 0xf7def7df
and edi, 0xf7def7df
add edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
and edx, 0x820
or edi, edx
or edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [edx], di
cmp dword [esp + 0x4c], 0
jl 0x76d912
sub dword [esp + 0x74], 2
add dword [esp + 0x70], 2
add dword [esp + 0x7c], ebp
mov edx, 1
sub dword [esp + 0x84], edx
sub dword [esp + 0x5c], edx
sub ebx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x64], edx
mov edx, 1
add dword [esp + 0x8c], edx
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x6c]
sub edx, 4
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x3c], edx
mov edi, dword [esp + 0x4c]
add dword [esp + 0x78], 1
add dword [esp + 0x58], ebp
sub dword [esp + 0x34], 2
add dword [esp + 0x20], 2
mov edx, 1
sub dword [esp + 0x50], edx
sub dword [esp + 0x48], edx
add dword [esp + 0x40], edx
mov edx, dword [esp + 0x80]
add edx, 4
mov dword [esp + 0x80], edx
lea edx, [edi + edx + 2]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
add edx, edi
cmp ebx, edx
jge 0x76d320
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
cmp dword [0xb160b8], 0
je case.0x76bfd7.5
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x24]
sub edx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
sub edx, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
sub edx, edi
cmp edx, dword [esp + 0x14]
ja 0x76da40
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, ecx
sub edi, ecx
cmp edi, edx
mov ecx, dword [esp + 0x40]
ja 0x76da40
mov edi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x9c]
mov edi, ebx
add edx, edi
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x76daed
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub edx, ecx
sub edi, ecx
cmp edi, edx
mov ecx, dword [esp + 0x40]
ja 0x76daed
mov edi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0xa0]
mov edi, ebx
add edx, edi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76dba2
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, ecx
sub edi, ecx
cmp edx, edi
mov ecx, dword [esp + 0x40]
ja 0x76dba2
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x9c]
imul edx, ebp
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x14]
ja 0x76dc4a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub edx, ecx
sub edi, ecx
cmp edx, edi
mov ecx, dword [esp + 0x40]
ja 0x76dc4a
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x9c]
imul edx, ebp
add edx, ecx
lea edx, [edx + edi*2]
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76dc5c
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea edx, [edx + edi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
lea edx, [edx + edx + 2]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x64], edx
mov edx, ebx
sub edx, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add edx, dword [esp + 0xa0]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x9c]
add edx, ebx
add edx, edx
mov dword [esp + 0x74], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
add edx, dword [esp + 0x9c]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0xa0]
lea edi, [edx + 1]
sub edx, dword [esp + 0x28]
imul edi, ebp
mov dword [esp + 0x58], edi
lea edi, [edx + 1]
mov dword [esp + 0x78], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add edx, 0xffffffff
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x9c]
sub edx, ebx
mov dword [esp + 0x8c], edx
lea edi, [edi + edi - 2]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0xa0]
lea edx, [edi - 1]
imul edx, ebp
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x9c]
sub edx, ebx
add edx, edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x28]
sub edx, edi
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x14]
ja 0x76de01
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76de01
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x70]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76de8e
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76de8e
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x58]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x8c], edx
ja 0x76df1b
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x76df1b
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x70]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76dfa8
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x76dfa8
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x34]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x50], edx
ja 0x76e032
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76e032
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x38]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76e0bc
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76e0bc
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x64]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x50], edx
ja 0x76e146
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76e146
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x38]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76e1d0
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76e1d0
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
add edx, edi
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
sar edx, 0xb
mov dx, word [esi + edx*4]
shl dx, 6
mov edi, eax
sar edi, 5
and edi, 0x3f
add dx, word [esi + edi*4]
mov edi, eax
shl dx, 5
and edi, 0x1f
add dx, word [esi + edi*4]
movzx edi, dx
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
and edi, 0xf7def7df
or edx, 0x8210820
sub edx, edi
mov dword [esp + 0x18], edx
and edx, 0x8210820
mov edi, edx
shr edi, 5
sub edx, edi
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [edi], dx
cmp dword [esp + 0x4c], 0
jl 0x76e21e
sub dword [esp + 0x74], 2
add dword [esp + 0x70], 2
add dword [esp + 0x7c], ebp
mov edx, 1
sub dword [esp + 0x84], edx
sub dword [esp + 0x5c], edx
sub ebx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x64], edx
mov edx, 1
add dword [esp + 0x8c], edx
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x6c]
sub edx, 4
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x34], edx
mov edi, dword [esp + 0x4c]
add dword [esp + 0x78], 1
add dword [esp + 0x58], ebp
sub dword [esp + 0x38], 2
add dword [esp + 0x1c], 2
mov edx, 1
sub dword [esp + 0x3c], edx
sub dword [esp + 0x50], edx
add dword [esp + 0x48], edx
mov edx, dword [esp + 0x80]
add edx, 4
mov dword [esp + 0x80], edx
lea edx, [edi + edx + 2]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
add edx, edi
cmp ebx, edx
jge 0x76dd74
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x2c]
sub edi, dword [esp + 0x24]
mov esi, edx
sub esi, ebx
mov dword [esp + 0x10], esi
sub esi, dword [esp + 0x24]
mov dword [esp + 0x14], edi
cmp esi, edi
ja 0x76e33e
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76e337
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
lea edx, [edx + esi*2]
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x9c]
mov esi, ebx
add esi, edx
mov dword [esp + 0x10], esi
sub esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x14]
ja 0x76e3e7
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xa0]
sub esi, edx
sub edi, edx
cmp edi, esi
ja 0x76e3e0
mov esi, dword [esp + 0x10]
mov edx, ebp
imul edx, dword [esp + 0xa0]
add edx, ecx
lea edx, [edx + esi*2]
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
mov esi, ebx
add edi, esi
mov esi, edx
sub esi, dword [esp + 0x24]
mov dword [esp + 0x18], edi
cmp esi, dword [esp + 0x14]
mov dword [esp + 0x44], esi
ja 0x76e498
mov edx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
ja 0x76e491
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x9c]
imul edx, ebp
add edx, ecx
lea edx, [edx + esi*2]
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
sub esi, ebx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x44]
cmp esi, dword [esp + 0x14]
ja 0x76e543
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
sub esi, edx
sub edi, edx
cmp esi, edi
ja 0x76e53c
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x9c]
imul edx, ebp
add edx, ecx
lea edx, [edx + esi*2]
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x4c]
test esi, esi
jl 0x76e555
add ebx, 0xffffffff
mov edi, ebx
neg edi
lea esi, [esi + edi*4]
add esi, 6
cmp ebx, 1
mov dword [esp + 0x4c], esi
jl case.0x76bfd7.5
mov edi, dword [esp + 0xa0]
lea esi, [ebx*4]
mov dword [esp + 0x6c], esi
lea esi, [edx + edx + 2]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x44]
add esi, 1
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0xa0]
add esi, ebx
imul esi, ebp
mov dword [esp + 0x64], esi
mov esi, ebx
sub esi, dword [esp + 0x28]
mov dword [esp + 0x80], 4
add esi, edi
mov dword [esp + 0x5c], esi
lea esi, [ebx + edx]
add esi, esi
mov dword [esp + 0x74], esi
mov esi, ebx
sub esi, dword [esp + 0x24]
add esi, edx
mov dword [esp + 0x84], esi
lea esi, [edi + 1]
imul esi, ebp
mov dword [esp + 0x58], esi
mov esi, edi
sub esi, dword [esp + 0x28]
lea edi, [esi + 1]
mov dword [esp + 0x54], edi
mov edi, ebp
neg edi
mov dword [esp + 0x60], edi
mov edi, esi
sub edi, ebx
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x44]
add edi, 0xffffffff
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0xa0]
sub edi, ebx
imul edi, ebp
add esi, 0xffffffff
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x44]
sub esi, ebx
mov dword [esp + 0x7c], edi
lea edi, [edx + edx - 2]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x38], edi
lea edi, [esi - 1]
imul edi, ebp
sub edx, ebx
add edx, edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x28]
sub edx, esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x68], edx
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x8c], edx
ja 0x76e6d9
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76e6d9
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76e762
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x54], edx
ja 0x76e762
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x58]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x8c], edx
ja 0x76e7eb
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x76e7eb
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x70]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76e874
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x76e874
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x34]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x50], edx
ja 0x76e8fa
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76e8fa
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x38]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76e980
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76e980
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x64]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x50], edx
ja 0x76ea06
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76ea06
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x38]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76ea8c
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76ea8c
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov esi, edx
and esi, 0x7e0
mov edi, eax
and edi, 0x7e0
imul esi, edi
mov dword [esp + 0x18], edx
and edx, 0xf800
mov edi, eax
and edi, 0xf800
imul edi, edx
mov edx, dword [esp + 0x18]
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x7e0
or esi, edi
and edx, 0x1f
mov edi, eax
and edi, 0x1f
imul edx, edi
shr edx, 5
or esi, edx
mov edx, dword [esp + 0x10]
mov word [edx], si
cmp dword [esp + 0x4c], 0
mov esi, 1
lea edi, [esi + 1]
jl 0x76ead6
mov edx, dword [esp + 0x60]
add dword [esp + 0x64], edx
mov edx, dword [esp + 0x6c]
sub dword [esp + 0x84], esi
sub dword [esp + 0x74], edi
sub dword [esp + 0x5c], esi
add dword [esp + 0x70], edi
add dword [esp + 0x7c], ebp
add dword [esp + 0x8c], esi
add dword [esp + 0x78], esi
sub edx, 4
sub ebx, esi
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x54]
sub dword [esp + 0x38], edi
mov edi, dword [esp + 0x4c]
add dword [esp + 0x58], ebp
add dword [esp + 0x1c], 2
add edx, esi
mov esi, dword [esp + 0x60]
add dword [esp + 0x34], esi
mov esi, 1
sub dword [esp + 0x3c], esi
sub dword [esp + 0x50], esi
add dword [esp + 0x48], esi
mov esi, dword [esp + 0x80]
add esi, 4
mov dword [esp + 0x80], esi
lea esi, [edi + esi + 2]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x68]
add esi, edx
cmp ebx, esi
mov dword [esp + 0x54], edx
jge 0x76e650
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x24]
sub edx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
sub edx, esi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
sub edx, esi
cmp edx, dword [esp + 0x14]
ja 0x76ec2b
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0xa0]
sub edx, ecx
sub esi, ecx
cmp esi, edx
ja 0x76ec27
mov edx, dword [esp + 0x10]
mov ecx, ebp
imul ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*2]
movzx edx, word [ecx]
mov dword [esp + 0x10], ecx
movzx esi, dx
mov ecx, esi
shr esi, 0xb
mov dword [esp + 0x3c], esi
movzx esi, dx
and esi, 0x1f
mov dword [esp + 0x18], esi
shr ecx, 5
and ecx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
imul esi, ecx
sar esi, 6
sub esi, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], edx
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
imul esi, ecx
sar esi, 5
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
mov esi, eax
and esi, 0x1f
imul esi, ecx
sar esi, 5
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x9c]
mov esi, ebx
add edx, esi
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x76ed0c
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0xa0]
sub edx, ecx
sub esi, ecx
cmp esi, edx
ja 0x76ed08
mov edx, dword [esp + 0x10]
mov ecx, ebp
imul ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*2]
movzx edx, word [ecx]
mov dword [esp + 0x10], ecx
movzx esi, dx
mov ecx, esi
shr esi, 0xb
mov dword [esp + 0x3c], esi
movzx esi, dx
and esi, 0x1f
mov dword [esp + 0x18], esi
shr ecx, 5
and ecx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
imul esi, ecx
sar esi, 6
sub esi, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], edx
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
imul esi, ecx
sar esi, 5
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
mov esi, eax
and esi, 0x1f
imul esi, ecx
sar esi, 5
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xa0]
mov esi, ebx
add edx, esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76edf5
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, ecx
sub esi, ecx
cmp edx, esi
ja 0x76edf1
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul ecx, ebp
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*2]
movzx edx, word [ecx]
mov dword [esp + 0x10], ecx
movzx esi, dx
mov ecx, esi
shr esi, 0xb
mov dword [esp + 0x3c], esi
movzx esi, dx
and esi, 0x1f
mov dword [esp + 0x18], esi
shr ecx, 5
and ecx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
imul esi, ecx
sar esi, 6
sub esi, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], edx
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
imul esi, ecx
sar esi, 5
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
mov esi, eax
and esi, 0x1f
imul esi, ecx
sar esi, 5
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x14]
ja 0x76eed1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, ecx
sub esi, ecx
cmp edx, esi
ja 0x76eecd
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul ecx, ebp
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*2]
movzx edx, word [ecx]
mov dword [esp + 0x10], ecx
movzx esi, dx
mov ecx, esi
shr esi, 0xb
mov dword [esp + 0x3c], esi
movzx esi, dx
and esi, 0x1f
mov dword [esp + 0x18], esi
shr ecx, 5
and ecx, 0x3f
mov esi, eax
sar esi, 5
and esi, 0x3f
imul esi, ecx
sar esi, 6
sub esi, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], edx
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, eax
sar esi, 0xb
imul esi, ecx
sar esi, 5
sub esi, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + esi*4]
shl dx, 5
shl cx, 0xb
or dx, cx
mov ecx, dword [esp + 0x18]
mov esi, eax
and esi, 0x1f
imul esi, ecx
sar esi, 5
sub esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + esi*4]
or dx, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], dx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76eee3
add ebx, 0xffffffff
mov esi, ebx
neg esi
lea edx, [edx + esi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x9c]
lea edx, [edx + edx + 2]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0xa0]
mov edx, ebx
sub edx, dword [esp + 0x28]
mov dword [esp + 0x90], 4
add edx, dword [esp + 0xa0]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x9c]
add edx, ebx
add edx, edx
mov dword [esp + 0x74], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
add edx, dword [esp + 0x9c]
mov dword [esp + 0x84], edx
lea edx, [esi + 1]
imul edx, ebp
mov dword [esp + 0x38], edx
mov edx, esi
sub edx, dword [esp + 0x28]
mov dword [esp + 0x54], edx
lea esi, [edx + 1]
sub edx, ebx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x44]
add edx, 0xffffffff
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xa0]
sub edx, ebx
imul edx, ebp
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x9c]
mov esi, ebp
neg esi
mov dword [esp + 0x60], esi
lea esi, [edx + edx - 2]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x54]
add esi, 0xffffffff
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x44]
sub esi, ebx
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xa0]
add esi, 0xffffffff
imul esi, ebp
sub edx, ebx
add edx, edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0xa0]
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x14]
ja 0x76f0c9
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76f0c9
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x70]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76f18e
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76f18e
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x8c], edx
ja 0x76f253
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76f253
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], edx
ja 0x76f318
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x50], edx
ja 0x76f318
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x54]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76f3da
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76f3da
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x34]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], edx
ja 0x76f49f
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x5c], edx
ja 0x76f49f
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x64]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x76f561
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76f561
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x34]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], edx
ja 0x76f626
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x58], edx
ja 0x76f626
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
add edx, esi
add edx, ecx
movzx ecx, word [edx]
mov dword [esp + 0x10], edx
movzx edx, cx
mov esi, edx
shr edx, 0xb
mov dword [esp + 0x3c], edx
movzx edx, cx
and edx, 0x1f
mov dword [esp + 0x18], edx
shr esi, 5
and esi, 0x3f
mov edx, eax
sar edx, 5
and edx, 0x3f
imul edx, esi
sar edx, 6
sub edx, esi
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
shr esi, 5
and esi, 0x3f
add si, word [edi + edx*4]
mov edx, eax
sar edx, 0xb
imul edx, ecx
sar edx, 5
sub edx, ecx
mov cx, word [esp + 0x1c]
shr cx, 0xb
add cx, word [edi + edx*4]
shl si, 5
shl cx, 0xb
or si, cx
mov ecx, dword [esp + 0x18]
mov edx, eax
and edx, 0x1f
imul edx, ecx
sar edx, 5
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x4c], 0
jl 0x76f674
sub dword [esp + 0x74], 2
add dword [esp + 0x70], 2
add dword [esp + 0x7c], ebp
mov edx, 1
sub dword [esp + 0x84], edx
sub dword [esp + 0x5c], edx
sub ebx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x64], edx
mov edx, 1
add dword [esp + 0x8c], edx
add dword [esp + 0x58], edx
mov edx, dword [esp + 0x6c]
sub edx, 4
sub dword [esp + 0x4c], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x54], edx
mov esi, dword [esp + 0x4c]
add dword [esp + 0x78], 1
add dword [esp + 0x38], ebp
sub dword [esp + 0x34], 2
add dword [esp + 0x80], 2
mov edx, 1
sub dword [esp + 0x50], edx
sub dword [esp + 0x48], edx
add dword [esp + 0x20], edx
mov edx, dword [esp + 0x90]
add edx, 4
mov dword [esp + 0x90], edx
lea edx, [esi + edx + 2]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
add edx, esi
cmp ebx, edx
jge 0x76f004
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x24]
sub edx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
sub edx, esi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
sub edx, esi
cmp edx, dword [esp + 0x14]
ja 0x76f7ca
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0xa0]
sub edx, ecx
sub esi, ecx
cmp esi, edx
ja 0x76f7c6
mov edx, dword [esp + 0x10]
mov ecx, ebp
imul ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0x40]
lea edx, [ecx + edx*2]
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov word [edx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x9c]
mov esi, ebx
add edx, esi
mov dword [esp + 0x10], edx
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
ja 0x76f8a9
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0xa0]
sub edx, ecx
sub esi, ecx
cmp esi, edx
ja 0x76f8a5
mov edx, dword [esp + 0x10]
mov ecx, ebp
imul ecx, dword [esp + 0xa0]
add ecx, dword [esp + 0x40]
lea edx, [ecx + edx*2]
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov word [edx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xa0]
mov esi, ebx
add edx, esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
ja 0x76f990
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, ecx
sub esi, ecx
cmp edx, esi
ja 0x76f98c
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul ecx, ebp
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x10], ecx
movzx ecx, word [ecx]
mov dword [esp + 0x1c], ecx
movzx ecx, cx
mov dword [esp + 0x18], ecx
shr ecx, 5
and ecx, 0x3f
mov edx, eax
not edx
movzx edx, dx
mov esi, edx
shr esi, 5
and esi, 0x3f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 5
and ecx, 0x3f
add cx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
shr esi, 0xb
mov dword [esp + 0x38], edx
shr edx, 0xb
sub edx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x38]
shl cx, 5
shl si, 0xb
or cx, si
mov word [esp + 0x20], cx
mov ecx, dword [esp + 0x18]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xa0]
sub edx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x14]
ja 0x76fa6a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
sub edx, ecx
sub esi, ecx
cmp edx, esi
ja 0x76fa66
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x9c]
imul ecx, ebp
add ecx, dword [esp + 0x40]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x10], ecx
movzx ecx, word [ecx]
mov dword [esp + 0x1c], ecx
movzx ecx, cx
mov dword [esp + 0x18], ecx
shr ecx, 5
and ecx, 0x3f
mov edx, eax
not edx
movzx edx, dx
mov esi, edx
shr esi, 5
and esi, 0x3f
sub esi, ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 5
and ecx, 0x3f
add cx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
shr esi, 0xb
mov dword [esp + 0x38], edx
shr edx, 0xb
sub edx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + edx*4]
mov edx, dword [esp + 0x38]
shl cx, 5
shl si, 0xb
or cx, si
mov word [esp + 0x20], cx
mov ecx, dword [esp + 0x18]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
or si, cx
mov ecx, dword [esp + 0x10]
mov word [ecx], si
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
test edx, edx
jl 0x76fa7c
add ebx, 0xffffffff
mov esi, ebx
neg esi
lea edx, [edx + esi*4]
add edx, 6
cmp ebx, 1
mov dword [esp + 0x4c], edx
jl case.0x76bfd7.5
lea edx, [ebx*4]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x9c]
lea edx, [edx + edx + 2]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xa0]
add edx, ebx
imul edx, ebp
mov dword [esp + 0x5c], edx
mov esi, dword [esp + 0xa0]
mov edx, ebx
sub edx, dword [esp + 0x28]
mov dword [esp + 0x88], 4
add edx, dword [esp + 0xa0]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x9c]
add edx, ebx
add edx, edx
mov dword [esp + 0x84], edx
mov edx, ebx
sub edx, dword [esp + 0x24]
add edx, dword [esp + 0x9c]
mov dword [esp + 0x80], edx
lea edx, [esi + 1]
imul edx, ebp
mov dword [esp + 0x58], edx
mov edx, esi
sub edx, dword [esp + 0x28]
mov dword [esp + 0x54], edx
lea esi, [edx + 1]
sub edx, ebx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x44]
add edx, 0xffffffff
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xa0]
sub edx, ebx
imul edx, ebp
mov dword [esp + 0x78], esi
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x9c]
mov esi, ebp
neg esi
mov dword [esp + 0x60], esi
lea esi, [edx + edx - 2]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x54]
add esi, 0xffffffff
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x44]
sub esi, ebx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0xa0]
add esi, 0xffffffff
imul esi, ebp
sub edx, ebx
add edx, edx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x28]
sub edx, dword [esp + 0xa0]
mov dword [esp + 0x54], esi
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x14]
ja 0x76fc5e
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76fc5e
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x64]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x80], edx
ja 0x76fd22
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x78], edx
ja 0x76fd22
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x58]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x7c], edx
ja 0x76fde0
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x76fde0
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x80], edx
ja 0x76fea4
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x3c], edx
ja 0x76fea4
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x54]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x50], edx
ja 0x76ff62
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x74], edx
ja 0x76ff62
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x34]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x770020
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x74], edx
ja 0x770020
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x5c]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x50], edx
ja 0x7700e1
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x8c], edx
ja 0x7700e1
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x34]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x48], edx
ja 0x7701a2
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x28]
cmp dword [esp + 0x8c], edx
ja 0x7701a2
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
movzx edx, word [edx]
mov dword [esp + 0x1c], edx
movzx edx, dx
mov dword [esp + 0x18], edx
shr edx, 5
mov ecx, eax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
and edx, 0x3f
and esi, 0x3f
sub esi, edx
mov edx, dword [esp + 0x1c]
shr edx, 5
and edx, 0x3f
add dx, word [edi + esi*4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
shr ecx, 0xb
shr esi, 0xb
sub ecx, esi
movzx esi, word [esp + 0x1c]
shr si, 0xb
add si, word [edi + ecx*4]
mov ecx, dword [esp + 0x18]
shl dx, 5
shl si, 0xb
or dx, si
mov word [esp + 0x20], dx
mov edx, dword [esp + 0x38]
movzx esi, word [esp + 0x20]
and ecx, 0x1f
and edx, 0x1f
sub edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0x1f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x10]
or si, cx
mov ecx, dword [esp + 0x40]
mov word [edx], si
cmp dword [esp + 0x4c], 0
jl 0x7701f9
sub dword [esp + 0x84], 2
add dword [esp + 0x64], 2
add dword [esp + 0x70], ebp
mov edx, 1
sub dword [esp + 0x80], edx
sub dword [esp + 0x74], edx
sub ebx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x5c], edx
mov edx, 1
add dword [esp + 0x7c], edx
add dword [esp + 0x8c], edx
mov edx, dword [esp + 0x90]
sub edx, 4
sub dword [esp + 0x4c], edx
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x54], edx
mov esi, dword [esp + 0x4c]
add dword [esp + 0x78], 1
add dword [esp + 0x58], ebp
sub dword [esp + 0x34], 2
add dword [esp + 0x6c], 2
mov edx, 1
sub dword [esp + 0x3c], edx
sub dword [esp + 0x50], edx
add dword [esp + 0x48], edx
mov edx, dword [esp + 0x88]
add edx, 4
mov dword [esp + 0x88], edx
lea edx, [esi + edx + 2]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x68]
add edx, esi
cmp ebx, edx
jge 0x76fba0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret