Function at 0x6c310510
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x17c
mov ebx, dword [esp + 0x190]
mov esi, dword [esp + 0x190]
mov dword [esp + 0x10c], 0
mov dword [esp + 0x100], 0x64
mov ebx, dword [ebx + 0x84]
mov esi, dword [esi + 0x1c]
mov dword [esp + 0x104], 0x64
mov dword [esp + 0x108], 0x64
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x190]
mov dword [esp + 0x60], esi
mov eax, dword [ebx]
mov ebp, dword [ebx + 0x14]
mov esi, dword [eax + 0x2ac]
test esi, esi
je 0x6c31065d
mov edi, dword [ebx + 0x20]
test edi, edi
je 0x6c31065d
mov ebx, dword [eax + 0x320]
test ebx, ebx
jne 0x6c31065d
mov edx, dword [eax + 0x2c8]
test edx, edx
je 0x6c3105b0
mov ecx, dword [edx + 0x1c]
test ecx, ecx
jne 0x6c31065d
mov edx, dword [eax + 0xc]
test byte [edx + 0x10], 0x80
jne 0x6c31065d
mov edx, dword [esp + 0xc8]
test edx, edx
je 0x6c31065d
mov esi, dword [esp + 0xc8]
mov esi, dword [esi + 0x474]
test esi, esi
jne 0x6c31065d
mov ebx, dword [esp + 0x190]
mov ecx, dword [eax + 0x148]
add ecx, dword [eax + 0x14c]
mov esi, dword [ebx + 0x10]
lea edx, [esi + esi*2]
mov dword [esp + 0x5c], edx
imul edx, ecx
cmp edi, edx
je 0x6c31065d
cmp esi, 0
jle 0x6c310668
lea edx, [ebp - 1]
imul edx, dword [ebx + 0x18]
add edx, dword [ebx + 0x28]
cmp byte [edx], 0x7f
jne 0x6c31066a
xor ebx, ebx
jmp 0x6c310626
cmp byte [edx + ebx], 0x7f
jne 0x6c31066a
add ebx, 1
cmp ebx, esi
jne 0x6c310620
cmp dword [eax + 0x30], 2
jne 0x6c31066a
test byte [eax + 0x7c], 0x10
je 0x6c31066a
add ecx, 1
imul ecx, dword [esp + 0x5c]
cmp edi, ecx
jne 0x6c31066a
mov dword [esp + 8], str.ignoring_last_missing_slice_n
mov dword [esp + 4], 0x30
mov dword [esp], eax
call sub.avutil_52.dll_av_log
add esp, 0x17c
pop ebx
pop esi
pop edi
pop ebp
ret
je 0x6c31062d
mov ebx, dword [esp + 0x190]
mov ecx, dword [ebx + 0x88]
test ecx, ecx
je 0x6c310f86
mov esi, dword [esp + 0xc8]
mov esi, dword [esi + 0x44]
cmp dword [ecx + 0x44], esi
jne 0x6c3106a1
mov ebx, dword [esp + 0xc8]
mov ebx, dword [ebx + 0x48]
cmp dword [ecx + 0x48], ebx
je 0x6c310fa3
mov dword [esp], eax
mov dword [esp + 8], str.Cannot_use_previous_picture_in_error_concealment_n
mov dword [esp + 4], 0x18
call sub.avutil_52.dll_av_log
mov ebx, dword [esp + 0x190]
mov edx, dword [ebx + 0x84]
mov eax, dword [ebx]
mov dword [ebx + 0x88], 0
mov esi, dword [esp + 0x190]
mov ecx, dword [esi + 0x8c]
test ecx, ecx
je 0x6c310728
mov edi, dword [edx + 0x44]
cmp dword [ecx + 0x44], edi
jne 0x6c3106f7
mov ebx, dword [edx + 0x48]
cmp dword [ecx + 0x48], ebx
je 0x6c310f92
mov dword [esp], eax
mov dword [esp + 8], str.Cannot_use_next_picture_in_error_concealment_n
mov dword [esp + 4], 0x18
call sub.avutil_52.dll_av_log
mov ebx, dword [esp + 0x190]
mov edx, dword [ebx + 0x84]
mov eax, dword [ebx]
mov dword [ebx + 0x8c], 0
mov ebx, dword [edx + 0x1f4]
test ebx, ebx
je 0x6c3108e7
test byte [eax + 0x2b1], 4
je 0x6c3107b1
mov esi, dword [esp + 0x190]
xor ebx, ebx
mov ecx, dword [esi + 0x14]
test ecx, ecx
jle 0x6c3107b1
mov edx, dword [esi + 0x10]
xor edi, edi
test edx, edx
jle 0x6c31078d
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x28]
imul edx, ebx
add ecx, edi
add edi, 1
movzx edx, byte [ecx + edx]
mov dword [esp], eax
mov dword [esp + 8], str._2X
mov dword [esp + 4], 0x30
mov dword [esp + 0xc], edx
call sub.avutil_52.dll_av_log
mov eax, dword [esi]
cmp dword [esi + 0x10], edi
jg 0x6c310758
mov dword [esp + 8], 0x6c576c26
add ebx, 1
mov dword [esp + 4], 0x30
mov dword [esp], eax
call sub.avutil_52.dll_av_log
cmp dword [esi + 0x14], ebx
jle 0x6c3107b1
mov eax, dword [esi]
jmp 0x6c31074f
mov ebx, dword [esp + 0x190]
mov esi, 1
mov ecx, dword [ebx + 0xc]
mov edx, ecx
sub edx, 1
js 0x6c310854
mov ecx, esi
mov edi, 1
shl edi, cl
mov ebx, 8
mov eax, edi
shl ebx, cl
mov dword [esp + 0x64], ebx
lea ebx, [edx*4]
mov dword [esp + 0x5c], edi
mov edi, edx
mov byte [esp + 0x60], al
xor eax, eax
jmp 0x6c310823
test dword [esp + 0x64], ebp
jne 0x6c310843
test eax, eax
jne 0x6c310843
movzx edx, byte [esp + 0x60]
or dl, byte [esp + 0x68]
mov byte [ecx], dl
test byte [esp + 0x68], 1
mov ecx, 0
cmovne eax, ecx
sub edi, 1
sub ebx, 4
cmp edi, 0xffffffff
je 0x6c31084a
mov ecx, dword [esp + 0x190]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x28]
add ecx, dword [edx + ebx]
movzx edx, byte [ecx]
movzx ebp, dl
test dword [esp + 0x5c], ebp
mov byte [esp + 0x68], dl
je 0x6c3107f6
mov eax, 1
jmp 0x6c31080b
mov ebx, dword [esp + 0x190]
mov ecx, dword [ebx + 0xc]
add esi, 1
cmp esi, 4
jne 0x6c3107c0
mov esi, dword [esp + 0x190]
mov ebp, dword [esi + 0x98]
test ebp, ebp
je 0x6c3109f3
mov ebx, ecx
sub ebx, 1
js 0x6c3109f3
lea esi, [ebx*4]
xor eax, eax
mov edi, dword [esp + 0x190]
jmp 0x6c3108bf
test dl, 0x62
mov eax, 1
jne 0x6c3108a5
mov eax, edx
or eax, 2
mov byte [ecx], al
xor eax, eax
and edx, 1
mov edx, 0
cmovne eax, edx
sub ebx, 1
sub esi, 4
cmp ebx, 0xffffffff
je 0x6c3109e9
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0x28]
add ecx, dword [edx + esi]
movzx edx, byte [ecx]
test dl, 0x10
jne 0x6c310892
test dl, 0x62
jne 0x6c3108e0
test eax, eax
je 0x6c31089c
jmp 0x6c3108a5
mov eax, 1
jmp 0x6c3108a5
mov dword [esp], eax
mov dword [esp + 8], str.Warning_MVs_not_available_n
mov dword [esp + 4], 0x10
call sub.avutil_52.dll_av_log
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x190]
add eax, eax
imul eax, ebp
mov ebx, dword [edi + 0x84]
lea esi, [eax*4 + 0x10]
mov eax, dword [edi + 0x18]
imul eax, dword [edi + 0x14]
shl eax, 2
mov dword [esp], eax
call sub.avutil_52.dll_av_buffer_allocz
mov dword [ebx + 0x20c], eax
mov ebx, dword [edi + 0x84]
mov dword [esp], esi
call sub.avutil_52.dll_av_buffer_allocz
mov dword [ebx + 0x1ec], eax
mov ebx, dword [edi + 0x84]
mov edx, dword [ebx + 0x20c]
test edx, edx
je 0x6c310e50
mov eax, dword [ebx + 0x1ec]
test eax, eax
je 0x6c310e50
mov eax, dword [eax + 4]
mov edx, dword [edx + 4]
add eax, 0x10
mov dword [ebx + 0x1f4], eax
mov eax, dword [edi + 0x18]
imul eax, dword [edi + 0x14]
mov dword [ebx + 0x214], edx
shl eax, 2
mov dword [esp], eax
call sub.avutil_52.dll_av_buffer_allocz
mov dword [ebx + 0x210], eax
mov ebx, dword [edi + 0x84]
mov dword [esp], esi
call sub.avutil_52.dll_av_buffer_allocz
mov dword [ebx + 0x1f0], eax
mov ebx, dword [edi + 0x84]
mov edx, dword [ebx + 0x210]
test edx, edx
je 0x6c310e50
mov eax, dword [ebx + 0x1f0]
test eax, eax
je 0x6c310e50
mov eax, dword [eax + 4]
mov edx, dword [edx + 4]
add eax, 0x10
mov dword [ebx + 0x1f8], eax
mov eax, dword [edi]
mov dword [ebx + 0x218], edx
jmp 0x6c310736
mov ebx, dword [esp + 0x190]
mov ecx, dword [ebx + 0xc]
mov esi, dword [esp + 0x190]
mov eax, dword [esi]
test byte [eax + 0x2b8], 8
je 0x6c310aab
mov ebx, dword [esi + 0x10]
lea edi, [ecx - 2]
mov eax, ebx
add eax, 0x63
cmp edi, eax
mov dword [esp + 0xb8], ebx
jle 0x6c310aab
lea ebp, [edi*4]
mov esi, 1
jmp 0x6c310a4e
test esi, esi
je 0x6c310a85
mov eax, dword [esp + 0xb8]
mov esi, 1
sub edi, 1
add eax, 0x63
sub ebp, 4
cmp eax, edi
jge 0x6c310aa1
mov eax, dword [esp + 0x190]
mov ecx, 1
mov ebx, dword [eax + 8]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x58], edx
add edx, dword [ebx + ebp]
mov ebx, dword [ebx + ebp + 4]
movzx eax, byte [edx]
test al, 1
cmovne esi, ecx
mov ecx, dword [esp + 0x58]
cmp byte [ecx + ebx], 0x7f
jne 0x6c310a31
cmp al, 0x7f
je 0x6c310a31
test al, 0x70
je 0x6c310a31
mov ebx, dword [esp + 0x190]
or eax, 0xe
xor esi, esi
mov byte [edx], al
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0xb8], ebx
mov eax, ebx
jmp 0x6c310a41
mov esi, dword [esp + 0x190]
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x190]
mov ebp, 0x98967f
mov edi, 1
mov ebx, ecx
sub ebx, 1
js 0x6c310b6a
mov eax, 1
mov ecx, edi
shl eax, cl
lea edx, [ebx*4]
mov dword [esp + 0x64], eax
mov byte [esp + 0x60], al
mov dword [esp + 0x5c], edx
mov dword [esp + 0x68], edi
jmp 0x6c310b16
mov eax, dword [esi + 0x98]
xor ebp, ebp
test eax, eax
jne 0x6c310b4d
movzx eax, byte [esp + 0x60]
or eax, edx
mov byte [ecx], al
and edx, 1
mov eax, 0x98967f
cmovne ebp, eax
sub ebx, 1
sub dword [esp + 0x5c], 4
cmp ebx, 0xffffffff
je 0x6c310b63
mov ecx, dword [esp + 0x5c]
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx]
mov ecx, dword [esi + 0x28]
add ecx, eax
movzx edx, byte [ecx]
movzx edi, dl
mov dword [esp + 0x70], edi
mov edi, dword [esi + 0x3c]
cmp byte [edi + eax], 1
mov eax, dword [esp + 0x64]
adc ebp, 0
test dword [esp + 0x70], eax
jne 0x6c310ae9
mov edi, dword [esi + 0x98]
test edi, edi
je 0x6c310b5c
mov edi, dword [esp + 0x68]
cmp dword [esp + edi*4 + 0xfc], ebp
jle 0x6c310afe
jmp 0x6c310af5
cmp ebp, 0x31
jg 0x6c310afe
jmp 0x6c310af5
mov edi, dword [esp + 0x68]
mov ecx, dword [esi + 0xc]
add edi, 1
cmp edi, 4
jne 0x6c310abc
test ecx, ecx
jle 0x6c310bbd
xor edx, edx
xor eax, eax
mov edi, dword [esp + 0x190]
jmp 0x6c310b97
mov edx, esi
and edx, 0xe
add eax, 1
cmp eax, ecx
jge 0x6c310edc
mov esi, dword [edi + 8]
mov ebx, dword [edi + 0x28]
add ebx, dword [esi + eax*4]
movzx esi, byte [ebx]
test esi, 1
jne 0x6c310b87
mov ecx, esi
and ecx, 0xe
or edx, ecx
mov ecx, esi
or ecx, edx
mov byte [ebx], cl
mov ecx, dword [edi + 0xc]
jmp 0x6c310b8c
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx + 0x98]
test eax, eax
jne 0x6c310eed
xor esi, esi
xor ebx, ebx
xor edi, edi
mov ebp, dword [esp + 0x190]
mov eax, dword [ebp + 0x84]
mov eax, dword [eax + 0x58]
mov dword [esp], eax
call sub.avutil_52.dll_av_get_picture_type_char
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.concealing__d_DC___d_AC___d_MV_errors_in__c_frame_n
mov dword [esp + 4], 0x20
movsx eax, al
mov dword [esp + 0x18], eax
mov eax, dword [ebp]
mov dword [esp], eax
call sub.avutil_52.dll_av_log
mov ecx, dword [ebp + 0x88]
test ecx, ecx
mov dword [esp + 0x70], ecx
je 0x6c310fc2
mov eax, dword [ecx]
mov ebx, dword [esp + 0x190]
test eax, eax
mov esi, dword [ebx + 0xc]
je 0x6c314233
test esi, esi
jle 0x6c310fbb
mov edi, ebx
mov ebx, dword [ebx + 0x28]
xor ecx, ecx
mov eax, dword [edi + 8]
lea edi, [eax + esi*4]
mov edx, dword [eax]
movzx edx, byte [ebx + edx]
and edx, 0xc
cmp dl, 0xc
setne dl
add eax, 4
movzx edx, dl
add ecx, edx
cmp eax, edi
jne 0x6c310c59
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx]
cmp dword [eax + 0x30], 0x1c
je 0x6c314225
cmp ecx, 4
jle 0x6c31429f
cmp ecx, 0x63
mov dword [esp + 0x64], 1
jle 0x6c310cb2
mov eax, ecx
mov ebx, 0x51eb851f
imul ebx
sar ecx, 0x1f
sar edx, 4
sub edx, ecx
mov dword [esp + 0x64], edx
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx + 0x14]
cmp eax, 1
jle 0x6c3142b3
mov esi, dword [ebx + 0x10]
mov ebp, dword [ebx + 0x84]
mov dword [esp + 0x60], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0xb8], esi
mov edi, dword [esp + 0xb8]
xor esi, esi
test edi, edi
jle 0x6c310e28
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], 0
shl ecx, 4
mov dword [esp + 0x78], ecx
jmp 0x6c310d2d
mov edx, dword [ebp + 0x200]
lea eax, [esi + 1]
sub esi, 1
test byte [edx + ecx*4], 7
cmovne esi, eax
add dword [esp + 0x5c], 1
cmp dword [esp + 0x5c], edi
jge 0x6c310e25
mov ecx, dword [esp + 0x60]
imul ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x28]
add ecx, dword [esp + 0x5c]
movzx eax, byte [eax + ecx]
and eax, 0xc
cmp al, 0xc
je 0x6c310d1e
add dword [esp + 0x6c], 1
mov eax, dword [esp + 0x6c]
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x64]
test edx, edx
jne 0x6c310d1e
cmp dword [ebp + 0x58], 1
jne 0x6c310d0b
mov eax, dword [ebp + 0x20]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x5c]
mov ecx, dword [ebp]
imul edx, eax
shl edi, 4
add edi, edx
mov edx, dword [esp + 0x70]
add ecx, edi
add edi, dword [edx]
mov edx, dword [ebx]
cmp dword [edx + 0x30], 0x1c
je 0x6c310db5
mov eax, dword [esp + 0x60]
mov dword [esp + 8], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
add eax, 0x1d8
mov dword [esp], eax
call fcn.6c508490
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x34]
mov edx, dword [ebx + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov dword [esp], 0
call dword [edx + 0x34]
mov edx, dword [ebx + 4]
add esi, eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 4], edi
mov dword [esp + 0x10], 0x10
mov dword [esp], 0
mov dword [esp + 0xc], eax
shl eax, 4
add eax, edi
mov dword [esp + 8], eax
call dword [edx + 0x34]
mov edi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x88]
add dword [esp + 0x5c], 1
mov ebp, dword [ebx + 0x84]
mov dword [esp + 0x70], ecx
sub esi, eax
cmp dword [esp + 0x5c], edi
jl 0x6c310d2d
mov eax, dword [ebx + 0x14]
add dword [esp + 0x60], 1
lea edx, [eax - 1]
cmp dword [esp + 0x60], edx
jl 0x6c310cee
mov ebx, dword [esp + 0x190]
xor eax, eax
test esi, esi
setg al
mov esi, dword [ebx + 0xc]
jmp 0x6c310fd7
add ebx, 0x20c
mov dword [esp], ebx
call sub.avutil_52.dll_av_buffer_unref
mov ebx, dword [esp + 0x190]
mov ebx, dword [ebx + 0x84]
mov eax, ebx
add eax, 0x1ec
mov dword [esp], eax
call sub.avutil_52.dll_av_buffer_unref
mov esi, dword [esp + 0x190]
mov eax, dword [esi + 0x84]
mov dword [eax + 0x214], 0
mov dword [eax + 0x1f4], 0
add eax, 0x210
mov dword [esp], eax
call sub.avutil_52.dll_av_buffer_unref
mov edi, dword [esi + 0x84]
mov eax, edi
add eax, 0x1f0
mov dword [esp], eax
call sub.avutil_52.dll_av_buffer_unref
mov eax, dword [esi + 0x84]
mov dword [eax + 0x218], 0
mov dword [eax + 0x1f8], 0
jmp 0x6c31065d
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x6c310f43
test ecx, ecx
jle 0x6c310bd2
mov ebx, dword [esp + 0x190]
xor esi, esi
xor edi, edi
mov eax, dword [ebx + 8]
mov ebp, dword [ebx + 0x28]
xor ebx, ebx
lea ecx, [eax + ecx*4]
mov dword [esp + 0x5c], ecx
mov edx, dword [eax]
movzx edx, byte [ebp + edx]
mov ecx, edx
and ecx, 4
cmp cl, 1
mov ecx, edx
sbb edi, 0xffffffff
and ecx, 2
cmp cl, 1
sbb esi, 0xffffffff
and edx, 8
cmp dl, 1
sbb ebx, 0xffffffff
add eax, 4
cmp eax, dword [esp + 0x5c]
jne 0x6c310f0f
jmp 0x6c310bd8
test ecx, ecx
jle 0x6c310bd2
mov esi, dword [esp + 0x190]
xor ebx, ebx
xor edx, edx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x28]
add eax, dword [ecx + ebx]
movzx ecx, byte [eax]
test cl, 0xe
movzx edi, cl
je 0x6c310f70
or ecx, 0xe
movzx edi, cl
mov ecx, edi
add edx, 1
mov byte [eax], cl
mov ecx, dword [esi + 0xc]
add ebx, 4
cmp ecx, edx
jg 0x6c310f56
jmp 0x6c310eed
mov edx, dword [esp + 0xc8]
jmp 0x6c3106d2
mov esi, dword [edx + 0x50]
cmp dword [ecx + 0x50], esi
jne 0x6c3106f7
jmp 0x6c310728
mov edx, dword [esp + 0xc8]
mov esi, dword [edx + 0x50]
cmp dword [ecx + 0x50], esi
jne 0x6c3106a1
jmp 0x6c3106d2
xor ecx, ecx
jmp 0x6c310c74
mov ebx, dword [esp + 0x190]
mov eax, 1
mov esi, dword [ebp + 0xc]
mov ebp, dword [ebx + 0x84]
test esi, esi
jle 0x6c31101e
mov ebx, dword [esp + 0x190]
xor ecx, ecx
test eax, eax
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0x28]
jne 0x6c3111e0
mov edx, dword [edi + ecx*4]
movzx eax, byte [ebx + edx]
and eax, 0xc
cmp al, 0xc
jne 0x6c311017
mov eax, dword [ebp + 0x200]
mov dword [eax + edx*4], 0x3008
mov eax, dword [esp + 0x190]
mov esi, dword [eax + 0xc]
add ecx, 1
cmp ecx, esi
jl 0x6c310ff2
mov eax, dword [esp + 0x70]
test eax, eax
je 0x6c314243
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
test eax, eax
je 0x6c314243
mov ebx, dword [esp + 0x190]
mov ebx, dword [ebx + 0x14]
test ebx, ebx
mov dword [esp + 0xb4], ebx
jle 0x6c312b36
mov esi, dword [esp + 0x190]
xor edi, edi
mov ebx, dword [esp + 0x190]
mov dword [esp + 0x5c], edi
mov esi, dword [esi + 0x10]
add ebx, 0x44
mov dword [esp + 0x6c], ebx
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0xb8]
test edi, edi
jle 0x6c31121b
mov edi, dword [esp + 0x5c]
add edi, edi
mov dword [esp + 0x64], edi
xor edi, edi
jmp 0x6c3111ac
cmp dword [eax], 1
sbb edx, edx
and edx, 1
cmp dword [eax], 1
sbb eax, eax
not eax
add eax, 2
mov ebx, dword [esi + 0x28]
test byte [esp + 0x60], 7
movzx ecx, byte [ebx + ecx]
jne 0x6c3111a0
test cl, 8
jne 0x6c3111a0
and ecx, 2
je 0x6c3111a0
test byte [esp + 0x60], 0x40
je 0x6c311433
mov ecx, dword [esi + 0x1c]
imul ecx, dword [esp + 0x64]
mov edx, dword [ebp + edx*4 + 0x1f4]
lea ecx, [ecx + edi*2]
lea ebx, [edx + ecx*4]
movsx ebp, word [ebx]
movsx ebx, word [ebx + 2]
mov dword [esi + 0x44], ebp
lea ebp, [ecx + 1]
mov dword [esi + 0x48], ebx
lea ebx, [edx + ebp*4]
mov dword [esp + 0x60], ebp
movsx ebp, word [ebx]
add ecx, dword [esi + 0x1c]
movsx ebx, word [ebx + 2]
lea ecx, [edx + ecx*4]
mov dword [esi + 0x4c], ebp
mov dword [esi + 0x50], ebx
movsx ebx, word [ecx]
movsx ecx, word [ecx + 2]
mov dword [esi + 0x54], ebx
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x1c]
add ecx, dword [esp + 0x60]
lea edx, [edx + ecx*4]
movsx ecx, word [edx]
movsx edx, word [edx + 2]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], edx
mov edx, 1
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [esi + 0xa4]
mov dword [esp], eax
call dword [esi + 0xa0]
mov ebx, dword [esi + 0x10]
mov ebp, dword [esi + 0x84]
mov dword [esp + 0xb8], ebx
lea esi, [esi]
add edi, 1
cmp dword [esp + 0xb8], edi
jle 0x6c311211
mov ecx, dword [esp + 0x5c]
imul ecx, dword [esi + 0x18]
mov eax, dword [ebp + 0x200]
add ecx, edi
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x88]
test eax, eax
jne 0x6c3110a0
mov edx, 1
mov eax, 2
jmp 0x6c3110b2
mov edx, dword [edi + ecx*4]
movzx eax, byte [ebx + edx]
and eax, 0xc
cmp al, 0xc
jne 0x6c311205
mov eax, dword [ebp + 0x200]
mov dword [eax + edx*4], 1
mov edx, dword [esp + 0x190]
mov esi, dword [edx + 0xc]
add ecx, 1
cmp ecx, esi
jl 0x6c3111e0
jmp 0x6c31101e
mov ebx, dword [esi + 0x14]
mov dword [esp + 0xb4], ebx
add dword [esp + 0x5c], 1
mov ebx, dword [esp + 0xb4]
cmp dword [esp + 0x5c], ebx
jl 0x6c31107d
cmp dword [ebp + 0x58], 3
jne 0x6c312b4d
mov ebx, dword [esp + 0xb4]
test ebx, ebx
jle 0x6c3120e5
mov ebx, dword [esp + 0x190]
xor edi, edi
mov esi, dword [esp + 0x190]
mov ebp, edi
mov ebx, dword [ebx + 0x1c]
add esi, 0x44
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x190]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0xb8]
test ebx, ebx
jle 0x6c311465
lea ecx, [ebp + ebp]
xor edi, edi
mov dword [esp + 0x70], ecx
jmp 0x6c3113a1
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
movzx ecx, word [esi + 0x92]
cmp dword [eax + 0x30], 0x1c
mov dword [esp + 0x60], ecx
je 0x6c312ac5
add edx, 0x1d8
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
call fcn.6c508490
mov eax, dword [esi + 0x8c]
mov edx, dword [esp + 0xbc]
imul edx, dword [esp + 0x70]
mov eax, dword [eax + 0x1f4]
lea edx, [edx + edi*2]
lea ecx, [eax + edx*4]
movsx eax, word [ecx]
movsx ecx, word [ecx + 2]
mov dword [esp + 0x64], eax
imul eax, dword [esp + 0x60]
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x5c]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x60]
imul eax, ecx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
sub edx, dword [esp + 0x5c]
mov dword [esp + 0x60], edx
mov dword [esi + 0x48], eax
mov eax, dword [esp + 0x64]
imul eax, edx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x5c]
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x60]
imul eax, ecx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x5c]
mov dword [esi + 0x68], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov eax, dword [esi + 0xa4]
mov dword [esp], eax
call dword [esi + 0xa0]
mov eax, dword [esi + 0x1c]
mov ebx, dword [esi + 0x10]
mov dword [esp + 0xbc], eax
add edi, 1
cmp edi, ebx
jge 0x6c31145b
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x28]
imul eax, ebp
add eax, edi
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0x84]
mov edx, dword [edx + 0x200]
test byte [edx + eax*4], 7
jne 0x6c311396
test cl, 8
je 0x6c311396
and ecx, 2
je 0x6c311396
mov edx, dword [esi + 0x88]
test edx, edx
je 0x6c3120d7
cmp dword [edx], 1
sbb eax, eax
add eax, 1
cmp dword [edx], 1
sbb ebx, ebx
add ebx, 3
mov edx, dword [esi + 0x8c]
test edx, edx
je 0x6c3120d0
mov ecx, dword [edx]
test ecx, ecx
je 0x6c3120d0
movzx eax, word [esi + 0x90]
test ax, ax
jne 0x6c311292
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
jmp 0x6c311346
mov ecx, dword [esp + 0x64]
imul ecx, dword [esi + 0x1c]
mov edx, dword [ebp + edx*4 + 0x1f4]
lea ecx, [ecx + edi*2]
movsx ebx, word [edx + ecx*4]
movsx edx, word [edx + ecx*4 + 2]
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], edx
xor edx, edx
jmp 0x6c311149
mov edx, dword [esi + 0x14]
mov dword [esp + 0xb4], edx
add ebp, 1
cmp ebp, dword [esp + 0xb4]
jl 0x6c31127b
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0xb4]
test ebx, ebx
jle 0x6c312b20
mov ebx, dword [esp + 0x190]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0xd8], 0
mov ebx, dword [ebx + 0x30]
add esi, esi
mov dword [esp + 0xe4], esi
mov dword [esp + 0xd4], ebx
mov edx, dword [esp + 0xb8]
test edx, edx
jle 0x6c3120ae
mov esi, dword [esp + 0x190]
mov eax, dword [esp + 0xd8]
mov ebx, dword [esp + 0x190]
mov edx, dword [esp + 0xd8]
mov esi, dword [esi + 0x84]
shl eax, 3
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xd8]
imul eax, dword [ebx + 0x18]
add edx, edx
mov edi, dword [esi + 0x200]
imul edx, dword [esp + 0xbc]
shl ebp, 4
add eax, eax
mov dword [esp + 0xd0], esi
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], 0
mov dword [esp + 0xec], edx
mov esi, dword [esp + 0xc4]
mov edi, dword [esp + 0xe0]
test byte [edi + esi*2], 7
je 0x6c311570
mov ebx, dword [esp + 0x190]
mov ecx, dword [ebx + 0x98]
test ecx, ecx
jne 0x6c31208a
mov ebp, dword [esp + 0xc8]
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xd0]
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x88], 0
mov ebp, dword [ecx + 4]
imul eax, esi
mov dword [esp + 0xa8], edi
lea ebx, [eax + edx*8]
mov eax, edx
mov edx, dword [esp + 0xdc]
shl eax, 2
add ebx, dword [ecx]
imul edx, edi
add edx, eax
add edx, ebp
mov ebp, dword [esp + 0xc8]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xdc]
mov ebp, dword [ebp + 0x28]
imul edx, ebp
mov dword [esp + 0xa4], ebp
add edx, eax
mov eax, dword [ecx + 8]
add edx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xd4]
add eax, dword [esp + 0xec]
lea eax, [edx + eax*2]
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x88]
and ecx, 1
mov eax, ecx
shl eax, 3
sar edi, 1
mov dword [esp + 0xac], ecx
lea ecx, [eax + 2]
mov edx, edi
mov dword [esp + 0x70], ecx
lea ecx, [eax + 5]
shl edx, 3
mov dword [esp + 0x68], ecx
mov ecx, esi
mov dword [esp + 0xb0], edi
lea edi, [eax + 3]
lea ebp, [eax + 1]
mov dword [esp + 0x6c], edi
imul ecx, edx
lea edi, [eax + 6]
mov dword [esp + 0x64], ebp
lea ebp, [eax + 4]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x64]
add ecx, ebx
mov dword [esp + 0x78], ebp
lea ebp, [eax + 7]
mov dword [esp + 0x74], ebp
movzx ebp, byte [ecx + edi]
movzx edi, byte [ecx + eax]
add edi, ebp
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x80], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x6c]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x78]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x68]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x7c]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x74]
add edi, dword [esp + 0x80]
movzx ecx, byte [ecx + ebp]
add ecx, edi
mov dword [esp + 0x80], ecx
lea ecx, [edx + 1]
imul ecx, esi
lea edi, [ebx + eax]
mov dword [esp + 0x8c], edi
movzx ebp, byte [edi + ecx]
add ebp, dword [esp + 0x80]
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x64]
add ebp, ebx
movzx edi, byte [ebp + ecx]
add edi, dword [esp + 0x84]
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x70]
add ebp, ebx
add edi, ebx
mov dword [esp + 0x90], edi
movzx edi, byte [edi + ecx]
add edi, dword [esp + 0x84]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x94], edi
movzx edi, byte [ebp + ecx]
add edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x78]
add ebp, ebx
mov dword [esp + 0xa0], ebp
add edi, ebx
mov dword [esp + 0x9c], edi
movzx edi, byte [edi + ecx]
add edi, dword [esp + 0x94]
mov dword [esp + 0x94], edi
movzx edi, byte [ebp + ecx]
add edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x7c]
add ebp, ebx
add edi, ebx
mov dword [esp + 0x94], edi
movzx edi, byte [edi + ecx]
add edi, dword [esp + 0x98]
mov dword [esp + 0x98], ebp
movzx ecx, byte [ebp + ecx]
add ecx, edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x30], ecx
lea ecx, [edx + 2]
imul ecx, esi
movzx ebp, byte [edi + ecx]
add ebp, dword [esp + 0x30]
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x80]
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x90]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x84]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x9c]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0xa0]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x94]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x98]
add edi, dword [esp + 0x30]
movzx ecx, byte [ebp + ecx]
add edi, ecx
lea ecx, [edx + 3]
imul ecx, esi
add ecx, ebx
movzx ebp, byte [ecx + eax]
add ebp, edi
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x64]
movzx edi, byte [ecx + ebp]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov ebp, dword [esp + 0x70]
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x6c]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x78]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x68]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x7c]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x74]
movzx ebp, byte [ecx + edi]
lea ecx, [edx + 4]
imul ecx, esi
add ebp, dword [esp + 0x30]
add ecx, ebx
movzx edi, byte [ecx + eax]
add edi, ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x70]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x6c]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov ebp, dword [esp + 0x78]
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x68]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
mov ebp, dword [esp + 0x7c]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ecx + ebp]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x74]
movzx ebp, byte [ecx + edi]
lea ecx, [edx + 5]
add ebp, dword [esp + 0x30]
imul ecx, esi
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x8c]
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x80]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x90]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x84]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x9c]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov ebp, dword [esp + 0xa0]
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x94]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
movzx edi, byte [ebp + ecx]
add edi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x98]
movzx ebp, byte [edi + ecx]
lea ecx, [edx + 6]
add ebp, dword [esp + 0x30]
add edx, 7
imul ecx, esi
imul edx, esi
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x8c]
add edx, ebx
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x80]
add edi, dword [esp + 0x30]
mov dword [esp + 0x8c], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x90]
add edi, dword [esp + 0x8c]
mov dword [esp + 0x80], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x84]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x9c]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0xa0]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
movzx edi, byte [ebp + ecx]
add edi, dword [esp + 0x80]
mov dword [esp + 0x80], edi
mov ebp, dword [esp + 0x94]
movzx eax, byte [edx + eax]
add dword [esp + 0x88], 1
movzx edi, byte [ebp + ecx]
mov ebp, dword [esp + 0x98]
add edi, dword [esp + 0x80]
movzx ecx, byte [ebp + ecx]
mov ebp, dword [esp + 0x70]
add ecx, edi
mov edi, dword [esp + 0x64]
add eax, ecx
movzx ecx, byte [edx + edi]
mov edi, dword [esp + 0x6c]
add eax, ecx
movzx ecx, byte [edx + ebp]
mov ebp, dword [esp + 0x78]
add eax, ecx
movzx ecx, byte [edx + edi]
mov edi, dword [esp + 0x68]
add eax, ecx
movzx ecx, byte [edx + ebp]
mov ebp, dword [esp + 0x7c]
add eax, ecx
movzx ecx, byte [edx + edi]
mov edi, dword [esp + 0x74]
add eax, ecx
movzx ecx, byte [edx + ebp]
movzx edx, byte [edx + edi]
mov ebp, dword [esp + 0xcc]
add eax, ecx
mov ecx, dword [esp + 0xbc]
imul ecx, dword [esp + 0xb0]
lea eax, [eax + edx + 4]
add ecx, dword [esp + 0xac]
sar eax, 3
cmp dword [esp + 0x88], 4
mov word [ebp + ecx*2], ax
jne 0x6c31160b
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0xa8]
movzx ebx, byte [eax]
movzx eax, byte [eax + 1]
movzx esi, byte [edx]
mov ebp, dword [esp + 0xa4]
add ebx, eax
movzx eax, byte [edx + 1]
add esi, eax
movzx eax, byte [ecx + 2]
add ebx, eax
movzx eax, byte [edx + 2]
add esi, eax
movzx eax, byte [ecx + 3]
add ebx, eax
movzx eax, byte [edx + 3]
add esi, eax
movzx eax, byte [ecx + 4]
add ebx, eax
movzx eax, byte [edx + 4]
add esi, eax
movzx eax, byte [ecx + 5]
add ebx, eax
movzx eax, byte [edx + 5]
add esi, eax
movzx eax, byte [ecx + 6]
add ebx, eax
movzx eax, byte [edx + 6]
add esi, eax
movzx eax, byte [ecx + 7]
add ebx, eax
movzx eax, byte [edx + 7]
add esi, eax
movzx eax, byte [ecx + edi]
add ebx, eax
movzx eax, byte [edx + ebp]
add esi, eax
movzx eax, byte [ecx + edi + 1]
add ebx, eax
movzx eax, byte [edx + ebp + 1]
add esi, eax
movzx eax, byte [ecx + edi + 2]
add ebx, eax
movzx eax, byte [edx + ebp + 2]
add esi, eax
movzx eax, byte [ecx + edi + 3]
add ebx, eax
movzx eax, byte [edx + ebp + 3]
add esi, eax
movzx eax, byte [ecx + edi + 4]
add ebx, eax
movzx eax, byte [edx + ebp + 4]
add esi, eax
movzx eax, byte [ecx + edi + 5]
add ebx, eax
movzx eax, byte [edx + ebp + 5]
add esi, eax
movzx eax, byte [ecx + edi + 6]
add ebx, eax
movzx eax, byte [edx + ebp + 6]
add esi, eax
movzx eax, byte [ecx + edi + 7]
add ebx, eax
movzx eax, byte [edx + ebp + 7]
mov edx, edi
add edx, edx
add esi, eax
movzx eax, byte [ecx + edi*2]
mov edi, dword [esp + 0x60]
add ebx, eax
mov eax, ebp
movzx ecx, byte [edi + ebp*2]
add eax, eax
mov ebp, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebp + edx + 1]
add ebx, ecx
movzx ecx, byte [edi + eax + 1]
add esi, ecx
movzx ecx, byte [ebp + edx + 2]
add ebx, ecx
movzx ecx, byte [edi + eax + 2]
add esi, ecx
movzx ecx, byte [ebp + edx + 3]
add ebx, ecx
movzx ecx, byte [edi + eax + 3]
add esi, ecx
movzx ecx, byte [ebp + edx + 4]
add ebx, ecx
movzx ecx, byte [edi + eax + 4]
add esi, ecx
movzx ecx, byte [ebp + edx + 5]
add ebx, ecx
movzx ecx, byte [edi + eax + 5]
add esi, ecx
movzx ecx, byte [ebp + edx + 6]
add ebx, ecx
movzx ecx, byte [edi + eax + 6]
add esi, ecx
movzx ecx, byte [ebp + edx + 7]
add ecx, ebx
movzx ebx, byte [edi + eax + 7]
mov edi, dword [esp + 0xa8]
add ebx, esi
mov esi, dword [esp + 0x5c]
add edi, edx
movzx edx, byte [ebp + edi]
mov ebp, dword [esp + 0xa4]
add edx, ecx
mov ecx, dword [esp + 0x60]
add ebp, eax
movzx eax, byte [ecx + ebp]
add ebx, eax
movzx eax, byte [esi + edi + 1]
movzx esi, byte [ecx + ebp + 1]
mov ecx, dword [esp + 0x5c]
add edx, eax
add esi, ebx
movzx eax, byte [ecx + edi + 2]
lea ebx, [edx + eax]
mov edx, dword [esp + 0x60]
movzx eax, byte [edx + ebp + 2]
add esi, eax
movzx eax, byte [ecx + edi + 3]
add ebx, eax
movzx eax, byte [edx + ebp + 3]
add esi, eax
movzx eax, byte [ecx + edi + 4]
add ebx, eax
movzx eax, byte [edx + ebp + 4]
add esi, eax
movzx eax, byte [ecx + edi + 5]
add ebx, eax
movzx eax, byte [edx + ebp + 5]
add esi, eax
movzx eax, byte [ecx + edi + 6]
add ebx, eax
movzx eax, byte [edx + ebp + 6]
add esi, eax
movzx eax, byte [ecx + edi + 7]
add ebx, eax
movzx eax, byte [edx + ebp + 7]
add eax, esi
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
movzx eax, byte [ecx + esi*4]
shl edx, 2
mov esi, dword [esp + 0x60]
add eax, ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa4]
movzx ecx, byte [esi + ebx*4]
mov esi, dword [esp + 0x64]
shl eax, 2
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 1]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x68]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 1]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 2]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 2]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 3]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 3]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 4]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 4]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 5]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
mov ebx, dword [esp + 0x60]
movzx ecx, byte [ebx + eax + 5]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 6]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 6]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 7]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x64]
add edx, dword [esp + 0xa8]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 7]
add eax, dword [esp + 0xa4]
add ecx, esi
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x5c]
movzx esi, byte [ecx + edx]
add esi, dword [esp + 0x64]
mov dword [esp + 0x64], esi
movzx esi, byte [ebx + eax]
add esi, dword [esp + 0x68]
mov dword [esp + 0x68], esi
movzx esi, byte [ecx + edx + 1]
add esi, dword [esp + 0x64]
movzx ecx, byte [ecx + edx + 2]
mov dword [esp + 0x64], esi
movzx esi, byte [ebx + eax + 1]
add ecx, dword [esp + 0x64]
add esi, dword [esp + 0x68]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 2]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 3]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
mov ebx, dword [esp + 0x60]
movzx ecx, byte [ebx + eax + 3]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 4]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 4]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 5]
mov ebx, dword [esp + 0x60]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
movzx ecx, byte [ebx + eax + 5]
mov ebx, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebx + edx + 6]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x60]
movzx ebx, byte [ecx + eax + 6]
mov ecx, dword [esp + 0x64]
add ebx, esi
mov esi, dword [esp + 0x5c]
movzx edx, byte [esi + edx + 7]
add ecx, edx
mov edx, dword [esp + 0x60]
movzx esi, byte [edx + eax + 7]
lea edx, [edi + edi]
mov eax, dword [esp + 0x5c]
add esi, ebx
movzx ebx, byte [eax + edi*2]
lea eax, [ebp + ebp]
mov edi, dword [esp + 0x60]
add ebx, ecx
movzx ecx, byte [edi + ebp*2]
mov ebp, dword [esp + 0x5c]
add esi, ecx
movzx ecx, byte [ebp + edx + 1]
add ebx, ecx
movzx ecx, byte [edi + eax + 1]
add esi, ecx
movzx ecx, byte [ebp + edx + 2]
add ebx, ecx
movzx ecx, byte [edi + eax + 2]
add esi, ecx
movzx ecx, byte [ebp + edx + 3]
add ebx, ecx
movzx ecx, byte [edi + eax + 3]
add esi, ecx
movzx ecx, byte [ebp + edx + 4]
add ebx, ecx
movzx ecx, byte [edi + eax + 4]
add esi, ecx
movzx ecx, byte [ebp + edx + 5]
add ebx, ecx
movzx ecx, byte [edi + eax + 5]
add esi, ecx
movzx ecx, byte [ebp + edx + 6]
movzx edx, byte [ebp + edx + 7]
add ecx, ebx
movzx ebx, byte [edi + eax + 6]
movzx eax, byte [edi + eax + 7]
add edx, ecx
add ebx, esi
add ebx, eax
mov eax, dword [esp + 0xa8]
shl eax, 3
sub eax, dword [esp + 0xa8]
movzx ecx, byte [ebp + eax]
add edx, ecx
mov ecx, dword [esp + 0xa4]
shl ecx, 3
sub ecx, dword [esp + 0xa4]
movzx esi, byte [edi + ecx]
add esi, ebx
movzx ebx, byte [ebp + eax + 1]
add ebx, edx
movzx edx, byte [edi + ecx + 1]
add esi, edx
movzx edx, byte [ebp + eax + 2]
add ebx, edx
movzx edx, byte [edi + ecx + 2]
add esi, edx
movzx edx, byte [ebp + eax + 3]
add ebx, edx
movzx edx, byte [edi + ecx + 3]
add esi, edx
movzx edx, byte [ebp + eax + 4]
add ebx, edx
movzx edx, byte [edi + ecx + 4]
add esi, edx
movzx edx, byte [ebp + eax + 5]
add ebx, edx
movzx edx, byte [edi + ecx + 5]
add esi, edx
movzx edx, byte [ebp + eax + 6]
movzx eax, byte [ebp + eax + 7]
mov ebp, dword [esp + 0xc4]
add edx, ebx
movzx ebx, byte [edi + ecx + 6]
movzx ecx, byte [edi + ecx + 7]
lea eax, [edx + eax + 4]
mov edi, dword [esp + 0x190]
sar eax, 3
add ebx, esi
mov esi, dword [edi + 0x34]
mov word [esi + ebp], ax
mov edx, dword [edi + 0x38]
lea eax, [ebx + ecx + 4]
sar eax, 3
mov word [edx + ebp], ax
add dword [esp + 0xc0], 2
mov eax, dword [esp + 0xe4]
add dword [esp + 0xc4], 2
cmp dword [esp + 0xc0], eax
jne 0x6c311547
add dword [esp + 0xd8], 1
mov ebx, dword [esp + 0xb4]
cmp dword [esp + 0xd8], ebx
jne 0x6c3114b7
jmp 0x6c312107
mov ebx, eax
jmp 0x6c311402
xor eax, eax
mov ebx, 2
nop
jmp 0x6c3113ea
mov ebx, dword [esp + 0x190]
mov esi, dword [esp + 0x190]
mov ebx, dword [ebx + 0x1c]
mov esi, dword [esi + 0x30]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xd4]
add eax, eax
mov dword [esp], eax
mov eax, dword [esp + 0x190]
add ecx, ecx
mov dword [esp + 4], esi
mov dword [esp + 8], 1
call fcn.6c5645f8
mov ebx, dword [esp + 0x190]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x34]
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x18]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov eax, ebx
call fcn.6c5645f8
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x38]
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x18]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov eax, ebx
call fcn.6c5645f8
mov edi, dword [ebx + 0x14]
mov esi, dword [ebx + 0x1c]
mov ebp, dword [ebx + 0x10]
mov edx, dword [ebx + 0x30]
lea ecx, [edi + edi - 1]
cmp ecx, 1
mov dword [esp + 0x60], esi
lea eax, [ebp + ebp]
mov dword [esp + 0x64], edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x5c], ecx
jle 0x6c312245
mov ebx, esi
mov edi, edx
add ebx, ebx
sub eax, 1
lea esi, [ebp*4 - 4]
add edi, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], esi
mov dword [esp + 0x74], ebp
cmp dword [esp + 0x70], 1
movsx esi, word [edi]
jle 0x6c31222c
mov ebp, dword [esp + 0x7c]
mov edx, edi
movsx ecx, word [edi + 2]
add ebp, edi
lea esi, [esi]
mov ebx, ecx
lea eax, [ecx*8]
movsx ecx, word [edx + 4]
sub eax, esi
mov esi, ebx
sub eax, ecx
imul eax, eax, 0x2aab
add eax, 0x8000
sar eax, 0x10
mov word [edx + 2], ax
add edx, 2
cmp edx, ebp
jne 0x6c312200
add dword [esp + 0x78], 1
mov ebp, dword [esp + 0x5c]
add edi, dword [esp + 0x68]
cmp dword [esp + 0x78], ebp
jne 0x6c3121e4
mov ebp, dword [esp + 0x74]
jmp 0x6c31224c
sub eax, 1
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 1
jle 0x6c3122cf
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x60]
add edi, 2
mov dword [esp + 0x6c], eax
add edx, edx
mov dword [esp + 0x70], edx
cmp dword [esp + 0x5c], 1
movsx esi, word [edi]
jle 0x6c3122c6
mov edx, dword [esp + 0x70]
mov ecx, 1
mov dword [esp + 0x68], edi
add edx, edi
mov edi, dword [esp + 0x60]
movsx ebx, word [edx]
add ecx, 1
lea eax, [ebx*8]
sub eax, esi
movsx esi, word [edx + edi*2]
sub eax, esi
mov esi, ebx
imul eax, eax, 0x2aab
add eax, 0x8000
sar eax, 0x10
mov word [edx], ax
add edx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x5c]
jne 0x6c312290
mov edi, dword [esp + 0x68]
add edi, 2
cmp edi, dword [esp + 0x6c]
jne 0x6c312273
mov eax, dword [esp + 0x64]
mov dword [esp + 0x74], 0
test eax, eax
jle 0x6c312939
test ebp, ebp
jle 0x6c312926
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x5c], 0
shl eax, 4
shl edx, 3
add ecx, ecx
mov dword [esp + 0xa0], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x9c], ecx
jmp 0x6c31232f
add dword [esp + 0x5c], 1
cmp dword [esp + 0x5c], ebp
jge 0x6c312918
mov ebx, dword [esp + 0x190]
mov eax, dword [esp + 0x74]
imul eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x28]
mov esi, dword [ebx + 0x84]
add eax, dword [esp + 0x5c]
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0x200]
test byte [edx + eax*4], 0x78
jne 0x6c312320
and ecx, 2
je 0x6c312320
mov ebp, dword [esp + 0xc8]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esi + 4]
imul edx, dword [ebp + 0x20]
mov ebx, dword [esi + 8]
shl eax, 4
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x88], 0
add eax, edx
mov edx, dword [esi]
add edi, edi
mov dword [esp + 0x90], edi
add eax, edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x5c]
imul edx, dword [ebp + 0x24]
shl eax, 3
add edx, eax
add edx, ecx
mov ecx, edi
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x84]
imul edx, dword [ebp + 0x28]
add edx, eax
add edx, ebx
mov ebx, dword [esi + 0x20]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0x190]
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x88]
sar edx, 1
add eax, edx
imul eax, dword [ebp + 0x1c]
and edi, 1
add ecx, edi
add eax, ecx
mov ecx, dword [ebp + 0x30]
mov ebp, dword [esp + 0x60]
movsx eax, word [ecx + eax*2]
mov ecx, 0x7f8
cmp eax, 0x7f8
cmovg eax, ecx
shl edx, 3
shl edi, 3
mov ecx, edx
test eax, eax
mov dword [esp + 0x98], edi
mov edi, 0
cmovs eax, edi
mov edi, dword [esp + 0x98]
imul ecx, ebx
add ebp, dword [esp + 0x98]
sar eax, 3
mov byte [ebp + ecx], al
mov ebx, dword [esi + 0x20]
mov dword [esp + 0xa4], ebp
mov ebp, dword [esp + 0x60]
imul ebx, edx
lea ecx, [ebp + edi + 1]
lea edi, [ebp + edi + 2]
mov dword [esp + 0x64], edi
mov byte [ecx + ebx], al
mov ebx, dword [esi + 0x20]
imul ebx, edx
mov byte [edi + ebx], al
mov ebx, dword [esi + 0x20]
mov edi, dword [esp + 0x98]
imul ebx, edx
lea edi, [ebp + edi + 3]
mov dword [esp + 0x70], edi
mov byte [edi + ebx], al
mov ebx, dword [esi + 0x20]
mov edi, dword [esp + 0x98]
imul ebx, edx
lea edi, [ebp + edi + 4]
mov dword [esp + 0x6c], edi
mov byte [edi + ebx], al
mov ebx, dword [esi + 0x20]
mov edi, dword [esp + 0x98]
imul ebx, edx
lea edi, [ebp + edi + 5]
mov dword [esp + 0x78], edi
mov byte [edi + ebx], al
mov ebx, dword [esi + 0x20]
mov edi, dword [esp + 0x98]
imul ebx, edx
lea edi, [ebp + edi + 6]
mov dword [esp + 0x68], edi
mov byte [edi + ebx], al
mov ebx, dword [esi + 0x20]
mov edi, dword [esp + 0x98]
imul ebx, edx
lea edi, [ebp + edi + 7]
mov dword [esp + 0x7c], edi
mov byte [edi + ebx], al
mov ebp, dword [esi + 0x20]
lea edi, [edx + 1]
mov ebx, dword [esp + 0xa4]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x64]
imul ebp, edi
mov byte [ecx + ebp], al
mov ebp, dword [esi + 0x20]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x70]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x78]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x68]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esp + 0x7c]
imul edi, dword [esi + 0x20]
mov ebx, dword [esp + 0xa4]
mov byte [ebp + edi], al
mov ebp, dword [esi + 0x20]
lea edi, [edx + 2]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x64]
imul ebp, edi
mov byte [ecx + ebp], al
mov ebp, dword [esi + 0x20]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x70]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x78]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x68]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esp + 0x7c]
imul edi, dword [esi + 0x20]
mov ebx, dword [esp + 0xa4]
mov byte [ebp + edi], al
mov ebp, dword [esi + 0x20]
lea edi, [edx + 3]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x64]
imul ebp, edi
mov byte [ecx + ebp], al
mov ebp, dword [esi + 0x20]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x70]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x78]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x68]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esp + 0x7c]
imul edi, dword [esi + 0x20]
mov ebx, dword [esp + 0xa4]
mov byte [ebp + edi], al
mov ebp, dword [esi + 0x20]
lea edi, [edx + 4]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x64]
imul ebp, edi
mov byte [ecx + ebp], al
mov ebp, dword [esi + 0x20]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x70]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x78]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x68]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esp + 0x7c]
imul edi, dword [esi + 0x20]
mov ebx, dword [esp + 0xa4]
mov byte [ebp + edi], al
mov ebp, dword [esi + 0x20]
lea edi, [edx + 5]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x64]
imul ebp, edi
mov byte [ecx + ebp], al
mov ebp, dword [esi + 0x20]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x70]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x78]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x68]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esp + 0x7c]
imul edi, dword [esi + 0x20]
mov ebx, dword [esp + 0xa4]
mov byte [ebp + edi], al
mov ebp, dword [esi + 0x20]
lea edi, [edx + 6]
add edx, 7
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x64]
imul ebp, edi
mov byte [ecx + ebp], al
mov ebp, dword [esi + 0x20]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x70]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x78]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esi + 0x20]
mov ebx, dword [esp + 0x68]
imul ebp, edi
mov byte [ebx + ebp], al
mov ebp, dword [esp + 0x7c]
imul edi, dword [esi + 0x20]
mov ebx, dword [esp + 0xa4]
mov byte [ebp + edi], al
mov edi, dword [esi + 0x20]
mov ebp, dword [esp + 0x70]
imul edi, edx
mov byte [ebx + edi], al
mov ebx, dword [esi + 0x20]
mov edi, dword [esp + 0x64]
imul ebx, edx
mov byte [ecx + ebx], al
mov ecx, dword [esi + 0x20]
mov ebx, dword [esp + 0x6c]
imul ecx, edx
mov byte [edi + ecx], al
mov ecx, dword [esi + 0x20]
mov edi, dword [esp + 0x78]
imul ecx, edx
mov byte [ebp + ecx], al
mov ecx, dword [esi + 0x20]
mov ebp, dword [esp + 0x68]
imul ecx, edx
mov byte [ebx + ecx], al
mov ecx, dword [esi + 0x20]
imul ecx, edx
mov byte [edi + ecx], al
mov ecx, dword [esi + 0x20]
imul ecx, edx
mov byte [ebp + ecx], al
mov ecx, dword [esp + 0x7c]
imul edx, dword [esi + 0x20]
add dword [esp + 0x88], 1
cmp dword [esp + 0x88], 4
mov byte [ecx + edx], al
je 0x6c3127ef
mov ebx, dword [esi + 0x20]
mov ecx, dword [esp + 0x90]
jmp 0x6c3123d9
mov ebx, dword [esp + 0x190]
mov edi, 0x7f8
mov ebp, 0
mov eax, dword [esp + 0x74]
imul eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x34]
add eax, dword [esp + 0x5c]
mov ecx, dword [ebx + 0x38]
mov ebx, dword [esi + 0x24]
movsx edx, word [edx + eax*2]
movsx eax, word [ecx + eax*2]
cmp edx, 0x7f8
cmovg edx, edi
cmp eax, 0x7f8
cmovg eax, edi
test edx, edx
mov edi, dword [esp + 0x8c]
cmovs edx, ebp
mov ecx, edx
shr ecx, 3
test eax, eax
cmovs eax, ebp
mov ebp, dword [esp + 0x80]
mov edx, eax
xor eax, eax
shr edx, 3
jmp 0x6c312857
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
mov byte [ebp + ebx], dl
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx + 1], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
mov byte [ebp + ebx + 1], dl
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx + 2], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
mov byte [ebp + ebx + 2], dl
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx + 3], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
mov byte [ebp + ebx + 3], dl
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx + 4], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
mov byte [ebp + ebx + 4], dl
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx + 5], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
mov byte [ebp + ebx + 5], dl
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx + 6], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
mov byte [ebp + ebx + 6], dl
mov ebx, dword [esi + 0x24]
imul ebx, eax
mov byte [edi + ebx + 7], cl
mov ebx, dword [esi + 0x28]
imul ebx, eax
add eax, 1
cmp eax, 8
mov byte [ebp + ebx + 7], dl
jne 0x6c312854
mov ebx, dword [esp + 0x190]
add dword [esp + 0x5c], 1
mov ebp, dword [ebx + 0x10]
cmp dword [esp + 0x5c], ebp
jl 0x6c31232f
mov esi, dword [esp + 0x190]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x64], esi
add dword [esp + 0x74], 1
mov edi, dword [esp + 0x64]
cmp dword [esp + 0x74], edi
jl 0x6c3122e3
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx]
test byte [eax + 0x2ac], 2
je 0x6c312a57
mov esi, dword [esp + 0xc8]
lea ecx, [ebp + ebp]
mov eax, dword [ebx + 0x84]
mov dword [esp + 8], 1
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x64]
add edx, edx
mov dword [esp], edx
mov edx, dword [eax]
mov eax, ebx
call fcn.6c564c1d
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax + 4]
mov dword [esp + 8], 0
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov eax, ebx
call fcn.6c564c1d
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 8], 0
mov eax, dword [esi + 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov eax, ebx
call fcn.6c564c1d
mov eax, dword [ebx + 0x84]
mov edi, dword [ebx + 0x10]
mov dword [esp + 8], 1
mov edx, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 4], edx
mov ebp, dword [ebx + 0x14]
add ecx, ecx
mov edx, ebp
add edx, edx
mov dword [esp], edx
mov edx, dword [eax]
mov eax, ebx
call fcn.6c564ee1
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax + 4]
mov dword [esp + 8], 0
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov eax, ebx
call fcn.6c564ee1
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 8], 0
mov eax, dword [esi + 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov eax, ebx
call fcn.6c564ee1
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x6c312a9b
xor edx, edx
xor eax, eax
mov ecx, ebx
mov ebx, dword [ecx + 8]
mov edi, dword [ecx + 0x84]
mov esi, dword [ecx + 0x28]
mov ebx, dword [ebx + edx]
cmp dword [edi + 0x58], 3
movzx esi, byte [esi + ebx]
je 0x6c312a89
and esi, 0xe
je 0x6c312a89
mov esi, dword [ecx + 0x3c]
mov byte [esi + ebx], 0
mov esi, dword [ecx + 0x40]
add eax, 1
add edx, 4
mov byte [esi + ebx], 1
cmp dword [ecx + 0xc], eax
jg 0x6c312a64
mov esi, dword [esp + 0x190]
mov dword [esi + 0x84], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], 0
jmp 0x6c31065d
mov dword [esp + 0x14], 0x48e
mov dword [esp + 0x10], str.libavcodec_error_resilience.c
mov dword [esp + 0xc], str.s__avctx__codec_id___AV_CODEC_ID_H264
mov dword [esp + 8], 0x6c576b3d
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.avutil_52.dll_av_log
call sub.msvcrt.dll_abort
mov ebx, dword [esp + 0x190]
mov esi, dword [esp + 0x190]
mov ebx, dword [ebx + 0x1c]
mov esi, dword [esi + 0x10]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xb8], esi
mov ebx, dword [esp + 0x190]
mov ebx, dword [ebx + 0x30]
mov dword [esp + 0xd4], ebx
jmp 0x6c312107
cmp dword [ebp + 0x58], 3
je 0x6c312afe
mov esi, dword [esp + 0x190]
mov esi, dword [esi + 0x10]
mov dword [esp + 0xb8], esi
mov ebx, dword [esp + 0x190]
lea ecx, [esp + 0xfc]
mov esi, dword [esp + 0x190]
lea edx, [esp + 0xf8]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x190]
mov ebx, dword [ebx + 0x2c]
mov esi, dword [esi + 0x18]
mov dword [esp + 0x90], edi
mov dword [esp + 0x70], ebx
mov dword [esp + 0x9c], esi
xor esi, esi
call fcn.6c564baf
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x6c312c85
xor ebp, ebp
mov dword [esp + 0x68], esi
jmp 0x6c312c39
cmp eax, 3
mov byte [esi + ecx], dl
je 0x6c312c7a
mov edi, dword [ebx + 0x88]
mov eax, dword [edi]
test eax, eax
je 0x6c312c31
mov esi, dword [edi + 0x1f4]
test esi, esi
je 0x6c312c31
mov edx, ecx
mov eax, ecx
sar edx, 0x1f
idiv dword [ebx + 0x18]
imul eax, dword [esp + 0xfc]
add eax, edx
mov edx, dword [ebx + 0x84]
imul eax, dword [esp + 0xf8]
shl eax, 2
mov dword [esp + 0x64], eax
add eax, dword [edx + 0x1f4]
mov edx, dword [esp + 0x64]
add edx, esi
movzx esi, word [edx]
mov word [eax], si
movzx edx, word [edx + 2]
mov word [eax + 2], dx
mov eax, dword [edi + 0x214]
mov edi, dword [ebx + 0x84]
movzx edx, byte [eax + ecx*4]
mov eax, dword [edi + 0x214]
mov byte [eax + ecx*4], dl
add ebp, 1
cmp ebp, dword [ebx + 0xc]
jge 0x6c312c81
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0x28]
mov esi, dword [esp + 0x70]
mov ecx, dword [eax + ebp*4]
mov eax, dword [ebx + 0x84]
mov eax, dword [eax + 0x200]
mov eax, dword [eax + ecx*4]
and eax, 7
cmp eax, 1
sbb edx, edx
not edx
and edx, 3
cmp eax, 1
sbb eax, eax
not eax
and eax, 3
test byte [edi + ecx], 8
jne 0x6c312bb3
mov byte [esi + ecx], 3
add dword [esp + 0x68], 1
jmp 0x6c312c31
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx]
test byte [eax + 0x2ac], 1
jne 0x6c312dc8
mov esi, dword [esp + 0x190]
mov esi, dword [esi + 0x14]
test esi, esi
mov dword [esp + 0xb4], esi
jle 0x6c312afe
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x190]
mov ebx, dword [esp + 0x190]
mov esi, dword [esi + 0x10]
add edi, 0x44
mov dword [esp + 0xb8], esi
xor esi, esi
mov eax, dword [esp + 0xb8]
xor ebp, ebp
test eax, eax
jg 0x6c312d78
jmp 0x6c312da2
cmp dword [eax], 1
sbb eax, eax
not eax
add eax, 2
mov ecx, dword [ebx + 0x84]
mov ecx, dword [ecx + 0x200]
test byte [ecx + edx*4], 7
jne 0x6c312d6c
mov ecx, dword [ebx + 0x28]
test byte [ecx + edx], 8
je 0x6c312d6c
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x48], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0xa4]
mov dword [esp], eax
call dword [ebx + 0xa0]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xb8], eax
add ebp, 1
cmp ebp, dword [esp + 0xb8]
jge 0x6c312d98
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x88]
imul edx, esi
add edx, ebp
test eax, eax
jne 0x6c312cf0
mov eax, 2
jmp 0x6c312cfa
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0xb4], ebp
add esi, 1
cmp esi, dword [esp + 0xb4]
jl 0x6c312cd8
mov ebx, dword [esp + 0x190]
mov ebx, dword [ebx + 0x1c]
mov dword [esp + 0xbc], ebx
jmp 0x6c31147c
mov eax, dword [esp + 0xb8]
shr eax, 0x1f
add eax, dword [esp + 0xb8]
sar eax, 1
cmp eax, esi
jge 0x6c312c9b
mov esi, dword [esp + 0x190]
lea ebx, [esp + 0x130]
mov dword [esp + 0x6c], 1
mov dword [esp + 0xac], 0
mov dword [esp + 0xc0], 1
add esi, 0x44
mov dword [esp + 0xb8], esi
cmp dword [esp + 0xac], 1
jg 0x6c314175
cmp dword [esp + 0xac], 9
jg 0x6c314184
mov esi, dword [esp + 0x190]
mov eax, dword [esi + 0x14]
test eax, eax
jle 0x6c3141bd
mov edx, dword [esi + 0x10]
mov dword [esp + 0x88], 1
mov dword [esp + 0x78], 0
mov dword [esp + 0xc0], 0
mov ebp, edx
lea esi, [esi]
test ebp, ebp
jle 0x6c31412d
mov esi, dword [esp + 0x78]
xor esi, dword [esp + 0xac]
mov dword [esp + 0x60], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0xc4], esi
mov esi, dword [esp + 0x88]
mov dword [esp + 0xcc], esi
mov esi, dword [esp + 0x78]
shl esi, 4
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0x70]
add esi, dword [esp + 0x9c]
mov dword [esp + 0xa8], esi
mov edi, dword [esp + 0x190]
mov ecx, 0x10
xor eax, eax
mov esi, dword [edi + 0x18]
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [esp + eax + 0x110], 0
add eax, 4
cmp eax, 0x20
jb 0x6c312edd
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x5c]
xor eax, dword [esp + 0xc4]
mov dword [esp + 0x7c], edx
test al, 1
jne 0x6c312fd0
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
imul eax, esi
add eax, dword [esp + 0x5c]
add edi, eax
cmp byte [edi], 3
mov dword [esp + 0x64], eax
mov dword [esp + 0x8c], edi
je 0x6c312fd0
mov edi, dword [esp + 0x5c]
xor eax, eax
test edi, edi
jle 0x6c312f62
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
cmp byte [eax + edi - 1], 3
sete al
movzx eax, al
mov edx, dword [esp + 0x60]
cmp dword [esp + 0x90], edx
mov dword [esp + 0x7c], edx
jle 0x6c312f88
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
cmp byte [edx + edi + 1], 3
mov edx, 1
cmove eax, edx
mov edx, dword [esp + 0x78]
test edx, edx
jle 0x6c312fab
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
sub edx, dword [esp + 0x9c]
cmp byte [edi + edx], 3
mov edx, 1
cmove eax, edx
mov edx, dword [esp + 0xb4]
cmp dword [esp + 0x88], edx
jge 0x6c312fcc
mov edx, dword [esp + 0xa8]
mov edi, dword [esp + 0x64]
cmp byte [edx + edi], 3
je 0x6c313015
test eax, eax
jne 0x6c313015
add dword [esp + 0x5c], 1
add dword [esp + 0x60], 1
cmp dword [esp + 0x7c], ebp
jl 0x6c312ec8
mov esi, dword [esp + 0x190]
mov eax, dword [esi + 0x14]
add dword [esp + 0x78], 1
add dword [esp + 0x88], 1
cmp dword [esp + 0xcc], eax
jl 0x6c312e70
add dword [esp + 0xac], 1
jmp 0x6c312e19
mov edi, dword [esp + 0x5c]
xor eax, eax
test edi, edi
jle 0x6c313032
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
cmp byte [eax + edi - 1], 2
sete al
movzx eax, al
mov edx, dword [esp + 0x60]
cmp dword [esp + 0x90], edx
jle 0x6c313054
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
cmp byte [edx + edi + 1], 2
mov edx, 1
cmove eax, edx
mov edx, dword [esp + 0x78]
test edx, edx
jle 0x6c313077
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
sub edx, dword [esp + 0x9c]
cmp byte [edi + edx], 2
mov edx, 1
cmove eax, edx
mov edx, dword [esp + 0xb4]
cmp dword [esp + 0x88], edx
jge 0x6c313098
mov edx, dword [esp + 0xa8]
mov edi, dword [esp + 0x64]
cmp byte [edx + edi], 2
je 0x6c3130aa
test al, 1
jne 0x6c3130aa
cmp dword [esp + 0xac], 1
jg 0x6c312fd0
mov eax, dword [esp + 0x78]
imul eax, dword [esp + 0x80]
add eax, dword [esp + 0x5c]
imul eax, ecx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x5c]
test eax, eax
jle 0x6c3140d0
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
cmp byte [eax + edi - 1], 0
je 0x6c3140d0
mov edx, dword [esp + 0x190]
mov dword [esp + 0x74], 6
mov dword [esp + 0x6c], 5
mov dword [esp + 0x68], 4
mov edx, dword [edx + 0x84]
mov dword [esp + 0xa0], 3
mov dword [esp + 0x98], 2
mov dword [esp + 0x84], 1
mov dword [esp + 0x54], edx
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0xa4]
mov eax, dword [edi + 0x1f4]
sub edx, ecx
lea eax, [eax + edx*4]
movsx edx, word [eax]
movsx eax, word [eax + 2]
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], eax
mov eax, dword [edi + 0x214]
mov edi, dword [esp + 0x64]
movsx eax, byte [eax + edi*4 - 4]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x90], eax
jle 0x6c31322d
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
cmp byte [eax + edi + 1], 0
je 0x6c31322d
mov edx, dword [esp + 0x190]
mov edx, dword [edx + 0x84]
mov dword [esp + 0x50], edx
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0xa4]
mov eax, dword [edi + 0x1f4]
add edx, ecx
mov edi, dword [esp + 0x84]
lea eax, [eax + edx*4]
movsx edx, word [eax]
movsx eax, word [eax + 2]
mov dword [esp + edi*8 + 0x130], edx
mov edx, dword [esp + 0x50]
mov dword [esp + edi*8 + 0x134], eax
mov edi, dword [esp + 0x64]
mov eax, dword [edx + 0x214]
mov edx, dword [esp + 0x6c]
movsx eax, byte [eax + edi*4 + 4]
mov edi, dword [esp + 0x84]
mov dword [esp + edi*4 + 0x110], eax
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x68], edx
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x78]
test edi, edi
jle 0x6c3132ec
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x70]
sub eax, dword [esp + 0x9c]
cmp byte [edx + eax], 0
je 0x6c3132ec
mov edi, dword [esp + 0x190]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xa4]
mov edi, dword [edi + 0x84]
imul eax, ecx
mov dword [esp + 0x4c], edi
sub edx, eax
mov eax, dword [edi + 0x1f4]
mov edi, dword [esp + 0x84]
lea eax, [eax + edx*4]
movsx edx, word [eax]
movsx eax, word [eax + 2]
mov dword [esp + edi*8 + 0x130], edx
mov edx, dword [esp + 0x64]
mov dword [esp + edi*8 + 0x134], eax
mov edi, dword [esp + 0x4c]
sub edx, esi
mov eax, dword [edi + 0x214]
mov edi, dword [esp + 0x84]
movsx eax, byte [eax + edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + edi*4 + 0x110], eax
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x68], edx
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0xb4]
cmp dword [esp + 0x88], edi
jge 0x6c314064
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x64]
cmp byte [eax + edi], 0
je 0x6c314064
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x80]
add esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x98]
mov edx, dword [edx + 0x84]
imul eax, ecx
mov ecx, dword [esp + 0x84]
add eax, dword [esp + 0xa4]
mov dword [esp + 0x84], ebp
mov edi, dword [edx + 0x1f4]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x84], 1
lea eax, [edi + eax*4]
mov dword [esp + 0xd0], edi
mov edi, dword [esp + 0x6c]
movsx edx, word [eax]
movsx eax, word [eax + 2]
mov edi, dword [edi + 0x214]
mov dword [esp + ecx*8 + 0x130], edx
mov dword [esp + ecx*8 + 0x134], eax
movsx eax, byte [edi + esi*4]
mov esi, dword [esp + 0x68]
mov dword [esp + 0xbc], edi
mov dword [esp + ecx*4 + 0x110], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x98], ecx
je 0x6c3140b4
mov ebp, dword [esp + 0x110]
xor ecx, ecx
mov edi, dword [esp + 0x130]
mov esi, dword [esp + 0x134]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x68], ebp
jmp 0x6c3133ff
mov edx, dword [esp + 0x68]
add edi, dword [ebx + ecx*8]
add esi, dword [ebx + ecx*8 + 4]
add ebp, dword [esp + ecx*4 + 0x110]
cmp dword [esp + ecx*4 + 0x110], edx
jne 0x6c313584
add ecx, 1
cmp eax, ecx
jg 0x6c3133e0
mov edx, edi
mov eax, edi
sar edx, 0x1f
idiv ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], ebp
mov dword [esp + edx*8 + 0x130], eax
mov edx, esi
mov eax, esi
sar edx, 0x1f
idiv ecx
mov edx, dword [esp + 0x84]
mov dword [esp + edx*8 + 0x134], eax
mov edx, ebp
mov eax, ebp
sar edx, 0x1f
idiv ecx
mov ecx, dword [esp + 0x84]
xor edx, edx
cmp dword [esp + 0x84], 2
mov dword [esp + ecx*4 + 0x110], eax
mov ecx, 0x1869f
mov eax, 0xfffe7961
cmove eax, edx
cmove ecx, edx
mov dword [esp + 0x80], ecx
mov edi, eax
mov esi, eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], eax
mov ebp, dword [ebx + edx*8]
cmp edi, dword [ebx + edx*8]
cmovl edi, dword [ebx + edx*8]
cmp esi, dword [ebx + edx*8 + 4]
cmovl esi, dword [ebx + edx*8 + 4]
cmp eax, dword [esp + edx*4 + 0x110]
cmovl eax, dword [esp + edx*4 + 0x110]
cmp dword [esp + 0x94], ebp
cmovle ebp, dword [esp + 0x94]
mov dword [esp + 0x94], ebp
mov ebp, dword [ebx + edx*8 + 4]
cmp dword [esp + 0x80], ebp
cmovle ebp, dword [esp + 0x80]
cmp ecx, dword [esp + edx*4 + 0x110]
cmovg ecx, dword [esp + edx*4 + 0x110]
add edx, 1
cmp dword [esp + 0x84], edx
mov dword [esp + 0x80], ebp
jg 0x6c313494
mov edx, dword [esp + 0x98]
mov dword [esp + 0x68], edi
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0x74], esi
mov edi, dword [esp + 0xd4]
mov esi, dword [esp + 0xd8]
sub edi, dword [esp + 0x68]
sub esi, dword [esp + 0x74]
sub edi, dword [esp + 0x94]
sub esi, dword [esp + 0x80]
mov dword [esp + edx*8 + 0x130], edi
mov dword [esp + edx*8 + 0x134], esi
mov edx, ebp
sub edx, eax
sub edx, ecx
mov ecx, dword [esp + 0x98]
cmp dword [esp + 0x84], 4
mov dword [esp + ecx*4 + 0x110], edx
je 0x6c314140
mov esi, dword [esp + 0xa0]
add dword [esp + 0xa0], 2
add esi, 1
mov dword [esp + 0x98], esi
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0xbc]
mov ecx, dword [esp + 0x64]
shl edi, 2
add eax, edi
movsx ebp, word [eax]
movsx edx, word [eax + 2]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x98]
mov dword [esp + 0x94], 0x40000000
mov dword [esp + 0xd0], ebp
mov dword [esp + 0xd8], edx
movsx edx, byte [esi + ecx*4]
mov dword [esp + edi*8 + 0x130], ebp
mov ebp, dword [esp + 0xd8]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x98], 0
mov dword [esp + edi*4 + 0x110], edx
mov dword [esp + edi*8 + 0x134], ebp
mov ebp, dword [esp + 0xa8]
xor edi, edi
shl esi, 4
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x6c]
add ebp, ecx
mov dword [esp + 0xd4], ebp
jmp 0x6c31363b
mov esi, dword [esp + 0x190]
mov eax, dword [esp + 0x68]
mov esi, dword [esi + 0x84]
add eax, dword [esi + 0x1f4]
mov dword [esp + 0x6c], esi
mov edx, dword [ebx + edi*8]
mov ebp, dword [esp + 0x190]
mov ecx, dword [esi]
mov esi, dword [esi + 0x20]
mov dword [ebp + 0x44], edx
mov word [eax], dx
mov edx, dword [ebx + edi*8 + 4]
mov dword [ebp + 0x48], edx
mov word [eax + 2], dx
mov eax, dword [esp + edi*4 + 0x110]
test eax, eax
js 0x6c313f36
mov edx, ebp
mov ebp, dword [esp + 0x78]
imul esi, dword [esp + 0xb0]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0xb8]
add esi, dword [esp + 0xbc]
mov dword [esp + 0x10], ebp
mov eax, dword [edx + 0xa4]
add esi, ecx
mov dword [esp], eax
call dword [edx + 0xa0]
mov edx, dword [esp + 0x5c]
xor eax, eax
test edx, edx
jle 0x6c31390a
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x64]
cmp byte [ebp + ecx - 1], 0
je 0x6c31390a
movzx eax, byte [esi]
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esi - 1]
mov ecx, dword [ecx + 0x20]
sub edx, eax
mov eax, edx
sar eax, 0x1f
xor edx, eax
mov dword [esp + 0x48], ecx
sub edx, eax
movzx eax, byte [esi + ecx - 1]
movzx ecx, byte [esi + ecx]
sub eax, ecx
mov ebp, eax
sar ebp, 0x1f
xor eax, ebp
sub eax, ebp
mov ebp, dword [esp + 0x48]
lea ecx, [edx + eax]
add ebp, ebp
mov dword [esp + 0xa4], ebp
movzx eax, byte [esi + ebp - 1]
mov ebp, dword [esp + 0x48]
movzx edx, byte [esi + ebp*2]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add ecx, eax
mov eax, dword [esp + 0xa4]
add eax, ebp
mov dword [esp + 0x80], eax
mov ebp, dword [esp + 0x80]
movzx eax, byte [esi + eax - 1]
movzx edx, byte [esi + ebp]
mov ebp, dword [esp + 0x48]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x48]
add eax, ecx
movzx ecx, byte [esi + ebp*4]
mov dword [esp + 0x74], eax
shl edx, 2
movzx eax, byte [esi + edx - 1]
add edx, ebp
mov dword [esp + 0x84], edx
mov ebp, dword [esp + 0x84]
movzx edx, byte [esi + edx - 1]
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
movzx ecx, byte [esi + ebp]
add eax, dword [esp + 0x74]
sub edx, ecx
mov ebp, edx
sar ebp, 0x1f
xor edx, ebp
sub edx, ebp
lea ecx, [eax + edx]
mov edx, dword [esp + 0x80]
movzx eax, byte [esi + edx*2 - 1]
movzx edx, byte [esi + edx*2]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x48]
add ecx, eax
shl edx, 3
mov eax, edx
sub eax, dword [esp + 0x48]
movzx ebp, byte [esi + eax - 1]
movzx eax, byte [esi + eax]
sub ebp, eax
mov eax, ebp
sar eax, 0x1f
xor ebp, eax
sub ebp, eax
add ebp, ecx
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x48]
movzx eax, byte [esi + edx - 1]
movzx ecx, byte [esi + ebp*8]
add edx, ebp
mov ebp, dword [esp + 0x84]
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
movzx ecx, byte [esi + edx - 1]
movzx edx, byte [esi + edx]
add eax, dword [esp + 0x74]
sub ecx, edx
mov edx, ecx
sar edx, 0x1f
xor ecx, edx
sub ecx, edx
mov edx, dword [esp + 0x84]
add ecx, eax
mov dword [esp + 0x74], ecx
movzx ecx, byte [esi + ebp*2]
mov ebp, dword [esp + 0x80]
add edx, edx
movzx eax, byte [esi + edx - 1]
add edx, dword [esp + 0x48]
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
movzx ecx, byte [esi + edx - 1]
movzx edx, byte [esi + edx]
add eax, dword [esp + 0x74]
sub ecx, edx
mov edx, ecx
sar edx, 0x1f
xor ecx, edx
sub ecx, edx
mov edx, dword [esp + 0x80]
add ecx, eax
mov dword [esp + 0x74], ecx
movzx ecx, byte [esi + ebp*4]
shl edx, 2
movzx eax, byte [esi + edx - 1]
add edx, dword [esp + 0x48]
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
movzx ecx, byte [esi + edx - 1]
movzx edx, byte [esi + edx]
add eax, dword [esp + 0x74]
sub ecx, edx
mov edx, ecx
sar edx, 0x1f
xor ecx, edx
sub ecx, edx
mov edx, dword [esp + 0x48]
lea ebp, [eax + ecx]
shl edx, 4
mov ecx, edx
sub ecx, dword [esp + 0xa4]
movzx eax, byte [esi + ecx - 1]
movzx ecx, byte [esi + ecx]
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
mov ecx, edx
sub ecx, dword [esp + 0x48]
add eax, ebp
movzx edx, byte [esi + ecx - 1]
movzx ecx, byte [esi + ecx]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add eax, edx
mov ebp, dword [esp + 0x60]
cmp dword [esp + 0x90], ebp
jle 0x6c313b7f
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x64]
cmp byte [ebp + ecx + 1], 0
je 0x6c313b7f
movzx ecx, byte [esi + 0x10]
movzx edx, byte [esi + 0xf]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
lea ecx, [eax + edx]
mov eax, dword [esp + 0x6c]
mov ebp, dword [eax + 0x20]
movzx edx, byte [esi + ebp + 0x10]
movzx eax, byte [esi + ebp + 0xf]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ecx
lea edx, [ebp + ebp]
mov dword [esp + 0x80], eax
movzx eax, byte [esi + edx + 0xf]
mov dword [esp + 0x74], edx
movzx edx, byte [esi + edx + 0x10]
mov ecx, dword [esp + 0x74]
sub eax, edx
mov edx, eax
add ecx, ebp
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + ecx + 0x10]
add eax, dword [esp + 0x80]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
movzx eax, byte [esi + ecx + 0xf]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, dword [esp + 0x84]
lea edx, [ebp*4]
movzx ecx, byte [esi + edx + 0x10]
mov dword [esp + 0x84], eax
movzx eax, byte [esi + edx + 0xf]
add edx, ebp
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
add eax, dword [esp + 0x84]
mov dword [esp + 0x84], edx
mov dword [esp + 0xa4], eax
movzx eax, byte [esi + edx + 0xf]
movzx edx, byte [esi + edx + 0x10]
mov ecx, dword [esp + 0xa4]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x80]
add ecx, eax
add edx, edx
movzx eax, byte [esi + edx + 0xf]
movzx edx, byte [esi + edx + 0x10]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ecx
mov dword [esp + 0xa4], eax
lea eax, [ebp*8]
mov ecx, eax
sub ecx, ebp
movzx edx, byte [esi + ecx + 0xf]
movzx ecx, byte [esi + ecx + 0x10]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add edx, dword [esp + 0xa4]
mov dword [esp + 0xa4], edx
movzx ecx, byte [esi + eax + 0x10]
movzx edx, byte [esi + eax + 0xf]
add eax, ebp
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
mov ecx, dword [esp + 0xa4]
add ecx, edx
movzx edx, byte [esi + eax + 0xf]
movzx eax, byte [esi + eax + 0x10]
sub edx, eax
mov eax, edx
sar eax, 0x1f
xor edx, eax
sub edx, eax
add edx, ecx
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x84]
add edx, edx
movzx ecx, byte [esi + edx + 0x10]
movzx eax, byte [esi + edx + 0xf]
add edx, ebp
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
mov ecx, dword [esp + 0xa4]
add ecx, eax
movzx eax, byte [esi + edx + 0xf]
movzx edx, byte [esi + edx + 0x10]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x80]
add eax, ecx
mov dword [esp + 0x84], eax
shl edx, 2
movzx ecx, byte [esi + edx + 0x10]
movzx eax, byte [esi + edx + 0xf]
add edx, ebp
sub eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
mov ecx, dword [esp + 0x84]
add ecx, eax
movzx eax, byte [esi + edx + 0xf]
movzx edx, byte [esi + edx + 0x10]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ecx
mov ecx, ebp
shl ecx, 4
mov edx, ecx
sub edx, dword [esp + 0x74]
mov dword [esp + 0x80], eax
movzx eax, byte [esi + edx + 0xf]
movzx edx, byte [esi + edx + 0x10]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, ecx
add eax, dword [esp + 0x80]
sub edx, ebp
mov dword [esp + 0x74], eax
movzx eax, byte [esi + edx + 0xf]
movzx edx, byte [esi + edx + 0x10]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
test ebp, ebp
jle 0x6c313d3c
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x70]
sub edx, dword [esp + 0x9c]
cmp byte [ebp + edx], 0
je 0x6c313d3c
mov ecx, dword [esp + 0x6c]
mov ebp, dword [ecx + 0x20]
movzx ecx, byte [esi]
mov edx, ebp
neg edx
movzx edx, byte [esi + edx]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
movzx ecx, byte [esi + 1]
add eax, edx
mov edx, esi
sub edx, ebp
movzx edx, byte [edx + 1]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
lea ecx, [eax + edx]
mov eax, esi
movzx edx, byte [esi + 2]
sub eax, ebp
movzx eax, byte [eax + 2]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 3]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 3]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 4]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 4]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 5]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 5]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 6]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 6]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 7]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 7]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 8]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 8]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 9]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 9]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 0xa]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 0xa]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 0xb]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 0xb]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 0xc]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 0xc]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 0xd]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 0xd]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
movzx edx, byte [esi + 0xe]
add ecx, eax
mov eax, esi
sub eax, ebp
movzx eax, byte [eax + 0xe]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, esi
sub edx, ebp
add eax, ecx
movzx ecx, byte [esi + 0xf]
movzx edx, byte [edx + 0xf]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
add eax, edx
mov ebp, dword [esp + 0xb4]
cmp dword [esp + 0x88], ebp
jge 0x6c313f1f
mov edx, dword [esp + 0xd4]
cmp byte [edx], 0
je 0x6c313f1f
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 0x20]
mov ebp, edx
shl ebp, 4
mov ecx, ebp
sub ecx, edx
mov dword [esp + 0x6c], ecx
movzx edx, byte [esi + ecx]
movzx ecx, byte [esi + ebp]
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
xor edx, ecx
sub edx, ecx
lea ecx, [eax + edx]
mov edx, dword [esp + 0x6c]
movzx eax, byte [esi + edx + 1]
movzx edx, byte [esi + ebp + 1]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 2]
movzx edx, byte [esi + ebp + 2]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 3]
movzx edx, byte [esi + ebp + 3]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 4]
movzx edx, byte [esi + ebp + 4]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 5]
movzx edx, byte [esi + ebp + 5]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 6]
movzx edx, byte [esi + ebp + 6]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 7]
movzx edx, byte [esi + ebp + 7]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 8]
movzx edx, byte [esi + ebp + 8]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 9]
movzx edx, byte [esi + ebp + 9]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 0xa]
movzx edx, byte [esi + ebp + 0xa]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 0xb]
movzx edx, byte [esi + ebp + 0xb]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 0xc]
movzx edx, byte [esi + ebp + 0xc]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 0xd]
movzx edx, byte [esi + ebp + 0xd]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 0xe]
movzx edx, byte [esi + ebp + 0xe]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x6c]
add ecx, eax
movzx eax, byte [esi + edx + 0xf]
movzx edx, byte [esi + ebp + 0xf]
sub eax, edx
mov edx, eax
sar edx, 0x1f
xor eax, edx
sub eax, edx
add eax, ecx
cmp eax, dword [esp + 0x94]
jg 0x6c313f36
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], eax
add edi, 1
cmp edi, dword [esp + 0xa0]
jl 0x6c313620
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x190]
mov ecx, dword [esp + 0xf8]
mov edi, dword [esp + ebp*8 + 0x130]
test ecx, ecx
mov dword [esi + 0x44], edi
mov esi, dword [esp + ebp*8 + 0x134]
mov ebp, dword [esp + 0x190]
mov dword [ebp + 0x48], esi
jle 0x6c313fc8
mov eax, ebp
mov ebp, dword [esp + 0xfc]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x64], 0
shl ebp, 2
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
add eax, dword [edx + 0x1f4]
xor edx, edx
add edx, 1
mov word [eax], di
mov word [eax + 2], si
add eax, ebp
cmp edx, ecx
jne 0x6c313fa8
add dword [esp + 0x64], 1
add dword [esp + 0x68], 4
cmp dword [esp + 0x64], ecx
jne 0x6c313f98
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x98]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], ebp
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x190]
mov dword [esp + 8], 1
mov eax, dword [esp + edi*4 + 0x110]
mov dword [esp + 4], eax
mov eax, dword [esi + 0xa4]
mov dword [esp], eax
call dword [esi + 0xa0]
mov edi, dword [esp + 0xd0]
cmp edi, dword [esi + 0x44]
je 0x6c31410e
mov ecx, dword [esp + 0x8c]
add dword [esp + 0xc0], 1
mov byte [ecx], 2
mov esi, dword [esp + 0x190]
mov dword [esp + 0x6c], 0
mov ebp, dword [esi + 0x10]
jmp 0x6c312fd0
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x6c], 0
test ecx, ecx
je 0x6c312fd0
mov esi, dword [esp + 0x190]
cmp dword [esp + 0x84], 1
mov esi, dword [esi + 0x84]
mov edi, dword [esi + 0x1f4]
mov ebp, dword [esi + 0x214]
mov dword [esp + 0x6c], esi
mov dword [esp + 0xd0], edi
mov dword [esp + 0xbc], ebp
jne 0x6c3133b8
mov dword [esp + 0xa0], 3
mov dword [esp + 0x98], 2
jmp 0x6c313584
mov dword [esp + 0x74], 5
mov dword [esp + 0x6c], 4
mov dword [esp + 0x68], 3
mov dword [esp + 0xa0], 2
mov dword [esp + 0x98], 1
mov dword [esp + 0x84], 0
jmp 0x6c31316e
mov ebp, dword [esp + 0xd8]
cmp ebp, dword [esi + 0x48]
jne 0x6c31403b
mov esi, dword [esp + 0x8c]
mov byte [esi], 1
jmp 0x6c31404d
mov esi, dword [esp + 0x88]
mov dword [esp + 0xcc], esi
jmp 0x6c312fee
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
mov dword [esp + ecx*8 + 0x130], eax
mov eax, esi
shr eax, 0x1f
add eax, esi
sar eax, 1
mov dword [esp + ecx*8 + 0x134], eax
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov dword [esp + ecx*4 + 0x110], edx
jmp 0x6c31356b
mov edi, dword [esp + 0xc0]
test edi, edi
jne 0x6c312e27
mov esi, dword [esp + 0x6c]
test esi, esi
jne 0x6c3141ed
mov esi, dword [esp + 0x190]
mov edx, dword [esi + 0xc]
test edx, edx
jg 0x6c3141cd
mov dword [esp + 0x6c], 1
mov dword [esp + 0xac], 0
mov dword [esp + 0xc0], 1
jmp 0x6c312e19
mov dword [esp + 0xc0], 0
jmp 0x6c313008
xor eax, eax
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + eax*4]
add ecx, dword [esp + 0x70]
cmp byte [ecx], 0
je 0x6c3141e4
mov byte [ecx], 3
mov edx, dword [esi + 0xc]
add eax, 1
cmp eax, edx
jge 0x6c31419a
jmp 0x6c3141cf
mov ebx, dword [esp + 0x190]
mov esi, dword [esp + 0x190]
mov ebx, dword [ebx + 0x14]
mov esi, dword [esi + 0x1c]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x190]
mov dword [esp + 0xbc], esi
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0xb8], ebx
jmp 0x6c31147c
mov eax, dword [ebx + 0x9c]
test eax, eax
jg 0x6c310c87
mov ebp, dword [ebx + 0x84]
mov eax, 1
jmp 0x6c310fd7
mov ebx, dword [esp + 0x190]
mov eax, dword [ebx + 0x8c]
test eax, eax
je 0x6c31425e
mov eax, dword [eax]
test eax, eax
jne 0x6c311038
test esi, esi
jle 0x6c311038
mov edi, dword [esp + 0x190]
xor eax, eax
mov ecx, dword [ebp + 0x200]
mov ebx, dword [edi + 8]
mov edx, dword [ebx + eax*4]
lea edx, [ecx + edx*4]
test byte [edx], 7
jne 0x6c314293
mov dword [edx], 1
mov edx, dword [esp + 0x190]
mov esi, dword [edx + 0xc]
add eax, 1
cmp eax, esi
jl 0x6c314278
jmp 0x6c311038
mov ebx, dword [esp + 0x190]
xor eax, eax
mov ebp, dword [ebx + 0x84]
jmp 0x6c310fd7
mov ebp, dword [ebx + 0x84]
xor eax, eax
jmp 0x6c310fd7