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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x14], 0
je 0x1015c62b
test edi, edi
je 0x1015c68d
push edi
call fcn.1000a450
add esp, 4
push str.We_do_not_support_ROI_in_decoding_HT_codeblocks_n
push 1
push esi
call fcn.1015c3f4
add esp, 0xc
push edi
call fcn.1000a450
add esp, 4
jmp 0x1015c69d
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
movq xmm0, qword [esi + 8]
movq xmm1, qword [esi + 0x10]
psubd xmm1, xmm0
movd eax, xmm1
movdqa xmmword [esp + 0x60], xmm1
pshufd xmm0, xmm1, 0x55
movd ebx, xmm0
imul ebx, eax
mov eax, dword [edi + 0x74]
cmp ebx, dword [edi + 0x84]
jbe 0x1015c6a7
push eax
call fcn.1016ebbd
add esp, 4
mov esi, edi
lea edi, [ebx*4]
push edi
call fcn.1016eba2
add esp, 4
mov dword [esi + 0x74], eax
test eax, eax
je 0x1015c69d
mov dword [esi + 0x84], ebx
mov esi, dword [ebp + 0xc]
jmp 0x1015c6b0
push str.We_do_not_support_ROI_in_decoding_HT_codeblocks_n
push 1
push esi
call fcn.1015c3f4
add esp, 0xc
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test eax, eax
je 0x1015c6bf
shl ebx, 2
mov edi, ebx
push edi
push 0
push eax
call fcn.1023abb0
add esp, 0xc
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x78]
cmp dword [edi + 0x88], 0xa4f
ja 0x1015c6eb
push eax
call fcn.1016ebbd
add esp, 4
push 0x2940
call fcn.1016eba2
add esp, 4
mov dword [edi + 0x78], eax
test eax, eax
je 0x1015c69d
mov dword [edi + 0x88], 0xa50
push 0x2940
push 0
push eax
call fcn.1023abb0
add esp, 0xc
movdqa xmm0, xmmword [esp + 0x60]
movq qword [edi + 0x7c], xmm0
mov edx, dword [esi + 0x18]
xor eax, eax
inc eax
test edx, edx
je 0x1015c69f
sub edx, dword [esi + 0x1c]
mov edi, dword [esi + 0x34]
test edi, edi
mov dword [esp + 0x54], edx
je 0x1015c78b
mov ecx, dword [esi + 4]
xor ebx, ebx
xor edx, edx
add ebx, dword [ecx + edx*8 + 4]
inc edx
cmp edi, edx
jne 0x1015c72f
cmp edi, 1
ja 0x1015c74d
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x90], 0
je 0x1015c9b1
mov esi, dword [ebp + 8]
cmp ebx, dword [esi + 0x98]
mov edx, dword [esp + 0x54]
jbe 0x1015c79b
push ebx
push dword [esi + 0x94]
call fcn.1016ebe1
add esp, 8
test eax, eax
je 0x1015c69d
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], ebx
mov esi, dword [ebp + 0xc]
mov edi, dword [esi + 0x34]
mov edx, dword [esp + 0x54]
jmp 0x1015c7a4
mov esi, dword [ebp + 8]
cmp dword [esi + 0x90], 0
je 0x1015c69f
mov eax, dword [esi + 0x94]
mov esi, dword [ebp + 0xc]
test edi, edi
mov dword [esp + 4], eax
je 0x1015c7e1
mov edx, dword [esi + 4]
xor ebx, ebx
xor edi, edi
mov esi, eax
lea ecx, [esi + ebx]
push dword [edx + edi*8 + 4]
push dword [edx + edi*8]
push ecx
call fcn.1023a630
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
add ebx, dword [edx + edi*8 + 4]
inc edi
cmp edi, dword [eax + 0x34]
jb 0x1015c7b5
mov edx, dword [esp + 0x54]
mov esi, dword [ebp + 0xc]
jmp 0x1015c7e3
xor ebx, ebx
mov ecx, dword [esi + 0x28]
mov edi, 0
mov eax, 0
test ecx, ecx
je 0x1015c805
mov eax, dword [esi]
mov edi, dword [eax + 8]
cmp ecx, 1
jne 0x1015c802
xor eax, eax
jmp 0x1015c805
mov eax, dword [eax + 0x20]
add edi, eax
mov dword [esp + 0x60], edi
je 0x1015c827
mov ecx, dword [esi]
mov esi, dword [ecx]
xor eax, eax
cmp edi, 1
mov dword [esp + 0x10], esi
je 0x1015c831
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x14], eax
mov al, 1
jmp 0x1015c839
mov dword [esp + 0x10], 0
xor eax, eax
mov dword [esp + 0x14], 0
inc edx
mov edi, edx
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x84], ecx
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x14]
sub ecx, dword [edx + 0xc]
mov dword [esp + 0xf8], ecx
mov ecx, dword [edx + 8]
mov dword [esp + 0x130], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0xc0], ecx
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x114], ecx
test al, al
je 0x1015c8c8
cmp dword [esp + 0x14], 0
jne 0x1015c8c8
mov esi, dword [esp + 0x10]
mov dword [esp + 0x54], edi
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x1015c985
push edi
call fcn.1000a450
add esp, 4
push str.A_malformed_codeblock_that_has_more_than_one_coding_pass__but_zero_length_for_2nd_and_potentially_the_3rd_pass_in_an_HT_codeblock._n
push 2
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0xc
push edi
call fcn.1000a450
add esp, 4
xor eax, eax
inc eax
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x54]
mov edi, esi
jmp 0x1015c904
cmp dword [esp + 0x60], 4
jb 0x1015c8fe
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x1015ca3b
push esi
call fcn.1000a450
add esp, 4
push dword [esp + 0x60]
push str.We_do_not_support_more_than_3_coding_passes_in_an_HT_codeblock__This_codeblocks_has__d_passes._n
push 1
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0x10
jmp 0x1015cb34
mov edx, edi
mov edi, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x18]
cmp eax, 0x1e
mov ecx, dword [esp + 0xc0]
jbe 0x1015c947
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x1015c9a6
push edi
call fcn.1000a450
add esp, 4
mov eax, dword [ebp + 0xc]
push dword [eax + 0x18]
push str.32_bits_are_not_enough_to_decode_this_codeblock__since_the_number_of_bitplane___d__is_larger_than_30._n
push 1
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0x10
jmp 0x1015c620
cmp edx, eax
jbe 0x1015c9cf
cmp dword [ebp + 0x20], 0
je 0x1015ca5e
mov edi, dword [ebp + 0x20]
mov ebx, edx
push edi
call fcn.1000a450
add esp, 4
mov eax, dword [ebp + 0xc]
push dword [eax + 0x18]
push ebx
push str.Malformed_HT_codeblock._Decoding_this_codeblock_is_stopped._There_are__d_zero_bitplanes_in__d_bitplanes._n
push 1
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0x14
jmp 0x1015c620
push str.A_malformed_codeblock_that_has_more_than_one_coding_pass__but_zero_length_for_2nd_and_potentially_the_3rd_pass_in_an_HT_codeblock._n
push 2
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x18]
cmp eax, 0x1e
jbe 0x1015ca56
push eax
push str.32_bits_are_not_enough_to_decode_this_codeblock__since_the_number_of_bitplane___d__is_larger_than_30._n
jmp 0x1015ca44
cmp edi, 1
mov edx, dword [esp + 0x54]
jne 0x1015c69f
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov dword [esp + 4], eax
jmp 0x1015c7e3
jne 0x1015ca77
cmp dword [esp + 0x60], 2
jb 0x1015ca77
xor esi, esi
inc esi
cmp byte [0x104438b4], 0
jne 0x1015cab3
mov dword [esp + 0x54], edx
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x1015ca8b
push eax
call fcn.1000a450
add esp, 4
cmp byte [0x104438b4], 0
jne 0x1015ca2e
mov byte [0x104438b4], 1
push dword [esp + 0x60]
push str.Malformed_HT_codeblock._When_the_number_of_zero_planes_bitplanes_is_equal_to_the_number_of_bitplanes__only_the_cleanup_pass_makes_sense__but_we_have__d_passes_in_this_codeblock._Therefore__only_the_cleanup_pass_will_be_decoded._This_message_will_not_be_displayed_again._n
push 2
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0x10
push dword [ebp + 0x20]
call fcn.1000a450
add esp, 4
jmp 0x1015caa8
push dword [esp + 0x60]
push str.We_do_not_support_more_than_3_coding_passes_in_an_HT_codeblock__This_codeblocks_has__d_passes._n
push 1
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0x10
jmp 0x1015c69d
mov edx, dword [esp + 0x54]
cmp edx, eax
jbe 0x1015ca7d
push eax
push edx
push str.Malformed_HT_codeblock._Decoding_this_codeblock_is_stopped._There_are__d_zero_bitplanes_in__d_bitplanes._n
push 1
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0x14
jmp 0x1015c69d
mov esi, dword [esp + 0x60]
jmp 0x1015cab3
mov edi, esi
xor esi, esi
inc esi
mov ecx, dword [esp + 0xc0]
jmp 0x1015cab3
mov byte [0x104438b4], 1
push dword [esp + 0x60]
push str.Malformed_HT_codeblock._When_the_number_of_zero_planes_bitplanes_is_equal_to_the_number_of_bitplanes__only_the_cleanup_pass_makes_sense__but_we_have__d_passes_in_this_codeblock._Therefore__only_the_cleanup_pass_will_be_decoded._This_message_will_not_be_displayed_again._n
push 2
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0x10
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x54]
cmp edi, 2
jb 0x1015cb0e
cmp edi, ebx
ja 0x1015cb0e
mov eax, dword [esp + 0x14]
add eax, edi
cmp eax, ebx
ja 0x1015cb0e
mov dword [esp + 0x12c], esi
mov dword [esp + 0x54], edx
mov eax, dword [esp + 4]
mov edx, edi
movzx edi, byte [edi + eax - 1]
shl edi, 4
movzx ebx, byte [edx + eax - 2]
mov dword [esp + 0x38], ebx
and ebx, 0xf
lea eax, [edi + ebx]
cmp eax, 2
jae 0x1015cb3a
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x1015cded
push esi
call fcn.1000a450
add esp, 4
push str.Malformed_HT_codeblock._One_of_the_following_condition_is_not_met:_2___Scup___min_Lcup__4079__n
jmp 0x1015cb27
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x1015cde6
push esi
call fcn.1000a450
add esp, 4
push str.Malformed_HT_codeblock._Invalid_codeblock_length_values._n
push 1
push dword [ebp + 0x1c]
call fcn.1015c3f4
add esp, 0xc
push esi
jmp 0x1015c621
mov esi, eax
mov eax, edx
sub eax, esi
jl 0x1015caf3
cmp esi, 0xff0
jae 0x1015caf3
mov dword [esp + 8], eax
mov eax, dword [esp + 0x114]
sub eax, dword [esp + 0x130]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xcc], eax
inc dword [esp + 0x54]
mov eax, dword [esp + 4]
mov dword [esp + 0x10], edx
add edx, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], esi
sub edx, esi
mov esi, edx
and esi, 3
mov eax, 4
sub eax, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x90], edi
mov eax, edi
mov dword [esp + 0x44], ebx
or eax, ebx
lea edi, [eax + esi]
add edi, 0xfffffffb
mov dword [esp + 0x3c], edi
mov dword [esp + 0x9c], esi
add eax, esi
mov dword [esp + 0xac], eax
lea eax, [ecx + 0x210]
mov dword [esp + 0xfc], eax
lea eax, [ecx + 0x420]
mov dword [esp + 0x124], eax
lea eax, [ecx + 0x630]
mov dword [esp + 0x120], eax
mov eax, edx
mov dword [esp + 0x50], 0
xor edi, edi
mov dword [esp + 0x60], 0
mov ebx, dword [esp + 0x28]
xor ecx, ecx
cmp ecx, 1
jne 0x1015cc0d
cmp byte [eax], 0x8f
ja 0x1015cdfc
mov dword [esp + 0x20], edi
mov edi, ecx
mov ecx, 0xff
cmp ebx, 2
jl 0x1015cc20
movzx ecx, byte [eax]
mov edx, ecx
or edx, 0xf
mov dword [esp + 0x58], eax
xor eax, eax
cmp ebx, 2
cmovne edx, ecx
setge al
mov ecx, 8
sub ecx, edi
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x60]
shld esi, edi, cl
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
shl edi, cl
test cl, 0x20
cmovne esi, edi
mov dword [esp + 0x60], esi
mov esi, 0
cmovne edi, esi
or edi, edx
add dword [esp + 0x50], ecx
cmp edx, 0xff
mov ecx, 0
sete cl
dec ebx
dec dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jne 0x1015cbff
mov dword [esp + 0xe8], ecx
mov cl, 0x40
sub cl, byte [esp + 0x50]
mov eax, dword [esp + 0x60]
shld eax, edi, cl
shl edi, cl
xor edx, edx
test cl, 0x20
cmovne eax, edi
mov dword [esp + 0x60], eax
cmovne edi, edx
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x38]
mov ecx, edx
shr cl, 4
movzx edi, cl
mov eax, edi
not eax
and eax, 7
cmp eax, 1
mov eax, 4
sbb eax, 0
mov dword [esp + 0x80], eax
cmp dl, 0x90
setae dl
mov eax, dword [esp + 0x34]
add eax, 0xfffffffd
mov dword [esp + 0xb0], eax
and eax, 3
inc eax
lea ebx, [esi - 2]
cmp eax, ebx
cmovge eax, ebx
cmp esi, 2
jbe 0x1015ce1a
mov dword [esp + 0xd4], ebx
movzx ecx, cl
mov dword [esp + 0x74], ecx
xor ecx, ecx
inc ecx
cmp eax, 2
mov dword [esp + 0x8c], eax
cmovge ecx, eax
mov eax, dword [esp + 0x10]
sub eax, ecx
add eax, 0xfffffffd
mov dword [esp + 0x10], eax
neg ecx
mov dword [esp + 0x38], ecx
xor edi, edi
xor esi, esi
mov ebx, dword [esp + 0x80]
mov byte [esp + 0xc], dl
mov eax, dword [esp + 0xb0]
movzx edx, byte [eax + edi]
cmp edx, 0x90
setae byte [esp + 0x28]
mov eax, edx
not eax
test al, 0x7f
sete ch
mov eax, esi
xor esi, esi
mov cl, bl
shld esi, edx, cl
and ch, byte [esp + 0xc]
mov byte [esp + 0xc], ch
mov dword [esp + 0x30], edx
shl edx, cl
test bl, 0x20
cmovne esi, edx
mov ecx, 0
cmovne edx, ecx
or eax, esi
mov esi, eax
or dword [esp + 0x74], edx
movzx eax, byte [esp + 0xc]
neg eax
add ebx, eax
add ebx, 8
dec edi
mov dl, byte [esp + 0x28]
cmp dword [esp + 0x38], edi
jne 0x1015cd38
xor eax, eax
cmp byte [esp + 0x30], 0x90
setae al
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x8c]
sub dword [esp + 0xd4], eax
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0xb0], eax
mov dword [esp + 0x80], ebx
cmp ebx, 0x20
mov ebx, esi
mov edi, dword [esp + 0x74]
jbe 0x1015ce36
jmp 0x1015cfd9
push str.Malformed_HT_codeblock._Invalid_codeblock_length_values._n
jmp 0x1015cdf2
push str.Malformed_HT_codeblock._One_of_the_following_condition_is_not_met:_2___Scup___min_Lcup__4079__n
push 1
push dword [ebp + 0x1c]
jmp 0x1015c695
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x1015cebf
push esi
call fcn.1000a450
add esp, 4
push str.Malformed_HT_codeblock._Incorrect_MEL_segment_sequence._n
jmp 0x1015cb27
xor ecx, ecx
cmp byte [esp + 0x38], 0x90
setae cl
mov dword [esp + 0xbc], ecx
sub ebx, eax
mov dword [esp + 0xd4], ebx
xor ebx, ebx
mov esi, dword [esp + 0xd4]
cmp esi, 4
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x74], edi
jl 0x1015ce74
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx - 3]
add ecx, 0xfffffffc
mov dword [esp + 0xb0], ecx
add esi, 0xfffffffc
mov dword [esp + 0xd4], esi
jmp 0x1015cecb
test esi, esi
jle 0x1015cec9
mov eax, esi
neg eax
mov dword [esp + 0x10], eax
inc esi
mov ecx, 0x18
xor eax, eax
mov edx, dword [esp + 0xb0]
movzx edi, byte [edx]
shl edi, cl
or eax, edi
dec edx
add ecx, 0xfffffff8
dec esi
cmp esi, 1
ja 0x1015ce8f
mov ecx, dword [esp + 0x10]
add dword [esp + 0xb0], ecx
mov dword [esp + 0xd4], 0
mov edx, dword [esp + 0xbc]
jmp 0x1015cecb
push str.Malformed_HT_codeblock._Incorrect_MEL_segment_sequence._n
jmp 0x1015cdf2
xor eax, eax
mov edi, eax
shr edi, 0x18
test edx, edx
setne cl
mov edx, eax
not edx
test edx, 0x7f000000
mov ebx, edx
mov dword [esp + 0x10], edx
sete dl
and dl, cl
movzx edx, dl
mov ecx, 8
sub ecx, edx
cmp eax, 0x90000000
setae byte [esp + 0x28]
mov esi, eax
shr esi, 0x10
mov edx, 0xff
and esi, edx
mov edx, esi
shl edx, cl
or edx, edi
test ebx, 0x7f0000
sete bl
and bl, byte [esp + 0x28]
movzx edi, bl
neg edi
add ecx, edi
add ecx, 8
mov edi, 0x90
cmp esi, edi
setae bl
mov esi, eax
shr esi, 8
mov edi, 0xff
and esi, edi
mov edi, esi
shl edi, cl
or edi, edx
test dword [esp + 0x10], 0x7f00
sete dl
and dl, bl
movzx edx, dl
sub ecx, edx
mov dword [esp + 0x28], ecx
mov edx, 0x90
cmp esi, edx
setae byte [esp + 0xc]
mov edx, 0xff
and eax, edx
lea ebx, [ecx + 8]
mov edx, eax
mov ecx, ebx
shl edx, cl
or edx, edi
test byte [esp + 0x10], 0x7f
sete cl
and cl, byte [esp + 0xc]
movzx edi, cl
mov ecx, dword [esp + 0x80]
mov esi, ecx
sub esi, edi
xor ebx, ebx
mov edi, 0x90
cmp eax, edi
setae bl
mov dword [esp + 0xbc], ebx
xor eax, eax
shld eax, edx, cl
shl edx, cl
xor edi, edi
test cl, 0x20
cmovne eax, edx
cmovne edx, edi
mov ebx, dword [esp + 0x94]
or ebx, eax
mov edi, dword [esp + 0x74]
or edi, edx
mov eax, dword [esp + 0x28]
add eax, esi
add eax, 0x10
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x74], edi
mov dword [esp + 0x94], ebx
mov eax, ecx
or eax, 0xfffffffc
xor ebx, ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 8]
mov dword [esp + 8], edx
test edx, edx
mov dword [esp + 0x28], eax
jle 0x1015d01d
movzx esi, byte [ecx]
inc ecx
mov dword [esp + 4], ecx
jmp 0x1015d026
mov dword [esp + 4], ecx
mov esi, 0xff
xor edx, edx
mov ecx, dword [esp + 0x10]
shld edx, esi, cl
mov eax, esi
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov edi, 0
cmovne eax, edi
or dword [esp + 0x38], edx
or dword [esp + 0xc], eax
cmp ebx, 1
adc ecx, 7
mov dword [esp + 0x10], ecx
xor ebx, ebx
cmp esi, 0xff
sete bl
mov edx, dword [esp + 8]
dec edx
mov eax, dword [esp + 0x28]
inc eax
mov ecx, dword [esp + 4]
jne 0x1015d007
mov edi, esi
lea eax, [edx + 1]
cmp eax, 5
jl 0x1015d08a
mov esi, dword [ecx]
add ecx, 4
mov dword [esp + 4], ecx
add edx, 0xfffffffc
mov dword [esp + 8], edx
jmp 0x1015d0d5
cmp eax, 2
jl 0x1015d0ce
mov dword [esp + 8], 0
xor edx, edx
dec edx
xor ecx, ecx
mov esi, dword [esp + 4]
mov dword [esp + 0x28], eax
movzx eax, byte [esi]
mov ebx, 0xff
shl ebx, cl
shl eax, cl
not ebx
and ebx, edx
mov edx, eax
mov eax, dword [esp + 0x28]
or edx, ebx
inc esi
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015d0a0
mov dword [esp + 4], esi
mov esi, edx
jmp 0x1015d0d5
mov dword [esp + 8], edx
xor esi, esi
dec esi
mov ecx, 0xff
xor eax, eax
cmp edi, ecx
setne al
add eax, 7
mov edi, esi
and edi, ecx
mov dword [esp + 0x28], edi
xor edx, edx
cmp edi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov ebx, esi
shr ebx, 8
and ebx, edi
mov edx, ebx
shl edx, cl
mov dword [esp + 0x30], edx
add eax, 8
xor edx, edx
mov ecx, 0xff
cmp ebx, ecx
sete dl
mov ebx, esi
shr ebx, 0x10
and ebx, ecx
mov edi, esi
mov esi, ebx
mov ecx, eax
shl esi, cl
sub eax, edx
xor ecx, ecx
mov edx, 0xff
cmp ebx, edx
sete cl
mov dword [esp + 0x48], ecx
shr edi, 0x18
mov dword [esp + 0x98], eax
lea ecx, [eax + 8]
mov eax, edi
shl eax, cl
or esi, dword [esp + 0x30]
or esi, dword [esp + 0x28]
or esi, eax
cmp edi, edx
sete byte [esp + 0x2c]
xor eax, eax
mov ecx, dword [esp + 0x10]
shld eax, esi, cl
shl esi, cl
xor edx, edx
test cl, 0x20
cmovne eax, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x134], 0
cmovne esi, edx
mov dword [esp + 0x18], esi
cmp dword [esp + 0x12c], 2
jb 0x1015d290
mov ecx, dword [esp + 0x34]
mov esi, ecx
and esi, 3
mov edi, dword [esp + 0x14]
lea eax, [edi + esi]
mov dword [esp + 0xb4], eax
lea eax, [edi + esi]
add eax, 0xfffffffd
mov dword [esp + 0x4c], eax
or esi, 0xfffffffc
mov dword [esp + 0xa8], ecx
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], ecx
test edi, edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], esi
jle 0x1015d1fd
mov ecx, dword [esp + 0xa8]
movzx eax, byte [ecx]
mov dword [esp + 0x8c], eax
inc ecx
mov dword [esp + 0xa8], ecx
jmp 0x1015d208
mov dword [esp + 0x8c], 0
xor edx, edx
mov eax, ebx
mov ecx, eax
mov esi, dword [esp + 0x8c]
shld edx, esi, cl
mov ebx, esi
shl ebx, cl
test al, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x30]
or ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x28]
or ecx, ebx
cmp dword [esp + 0x88], 1
adc eax, 7
mov ebx, eax
xor eax, eax
cmp esi, 0xff
sete al
dec edi
mov esi, dword [esp + 0x78]
inc esi
jne 0x1015d1cb
mov edi, dword [esp + 0x4c]
cmp edi, 5
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], edx
jl 0x1015d2f0
mov eax, dword [esp + 0xa8]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0xa8], eax
add dword [esp + 0xb4], 0xfffffff8
jmp 0x1015d352
xor eax, eax
dec eax
mov dword [esp + 0xb4], eax
mov esi, eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], eax
mov edx, eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
jmp 0x1015d751
mov eax, dword [esp + 0xb4]
add eax, 0xfffffffc
xor esi, esi
cmp edi, 2
mov dword [esp + 0xb4], eax
jl 0x1015d352
xor esi, esi
mov eax, dword [esp + 0xa8]
xor ecx, ecx
mov dword [esp + 0x4c], edi
movzx edx, byte [eax]
mov edi, 0xff
shl edi, cl
shl edx, cl
not edi
and edi, esi
mov esi, edx
or esi, edi
mov edi, dword [esp + 0x4c]
inc eax
add ecx, 8
dec edi
cmp edi, 1
ja 0x1015d313
mov eax, dword [esp + 0xb4]
add dword [esp + 0xa8], eax
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0x8c]
mov ecx, 0xff
xor edx, edx
cmp eax, ecx
setne dl
add edx, 7
mov edi, esi
and edi, ecx
mov dword [esp + 0x88], edi
xor eax, eax
cmp edi, ecx
mov edi, 0xff
sete al
mov ecx, edx
sub edx, eax
mov eax, esi
shr eax, 8
and eax, edi
mov edi, eax
shl edi, cl
mov dword [esp + 0x4c], edi
add edx, 8
mov dword [esp + 0x8c], edx
xor edx, edx
mov ecx, 0xff
cmp eax, ecx
sete dl
mov eax, dword [esp + 0x8c]
mov ecx, eax
sub eax, edx
mov dword [esp + 0x8c], eax
mov edx, esi
shr edx, 0x10
mov eax, 0xff
and edx, eax
mov eax, edx
shl eax, cl
xor ecx, ecx
mov edi, 0xff
cmp edx, edi
sete cl
mov edx, ebx
sub ebx, ecx
mov dword [esp + 0x78], ebx
shr esi, 0x18
mov ebx, esi
mov ecx, dword [esp + 0x8c]
add ecx, 8
shl ebx, cl
or eax, dword [esp + 0x4c]
or eax, dword [esp + 0x88]
mov edi, eax
or edi, ebx
xor ebx, ebx
mov eax, 0xff
cmp esi, eax
sete bl
xor eax, eax
mov ecx, edx
shld eax, edi, cl
shl edi, cl
xor ecx, ecx
test dl, 0x20
cmovne eax, edi
mov dword [esp + 0x134], 0
cmovne edi, ecx
or eax, dword [esp + 0x30]
mov dword [esp + 0x7c], eax
or edi, dword [esp + 0x28]
mov dword [esp + 0x88], edi
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x78]
add eax, ecx
add eax, 0x10
cmp dword [esp + 0x12c], 3
mov dword [esp + 0x8c], eax
jb 0x1015d5a8
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
add eax, ebx
dec eax
mov dword [esp + 0xa0], eax
and eax, 3
mov dword [esp + 0x4c], eax
inc eax
xor ecx, ecx
inc ecx
mov edx, ebx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0x28], eax
test edx, edx
mov dword [esp + 0x30], edx
jle 0x1015d4c8
mov eax, dword [esp + 0xa0]
movzx ebx, byte [eax]
dec eax
mov dword [esp + 0xa0], eax
jmp 0x1015d4ca
xor ebx, ebx
test ecx, ecx
setne byte [esp + 0x78]
mov edx, ebx
not edx
test dl, 0x7f
sete dl
xor esi, esi
mov ecx, dword [esp + 0xa4]
shld esi, ebx, cl
mov eax, ebx
shl eax, cl
and dl, byte [esp + 0x78]
test cl, 0x20
cmovne esi, eax
mov edi, 0
cmovne eax, edi
or dword [esp + 0xec], esi
or dword [esp + 0xd0], eax
movzx eax, dl
neg eax
add ecx, eax
add ecx, 8
mov dword [esp + 0xa4], ecx
xor ecx, ecx
cmp ebx, 0x90
setae cl
mov edx, dword [esp + 0x30]
dec edx
mov eax, dword [esp + 0x28]
dec eax
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x4c]
jne 0x1015d4a8
mov dword [esp + 0x104], ecx
mov eax, edi
not eax
add eax, esi
mov dword [esp + 0xdc], eax
mov al, 1
mov dword [esp + 0x134], eax
cmp dword [esp + 0xa4], 0x20
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x7c]
ja 0x1015d74a
sub esi, edi
cmp esi, 5
mov ecx, esi
jl 0x1015d5ee
mov eax, dword [esp + 0xa0]
mov esi, dword [eax - 3]
add eax, 0xfffffffc
mov dword [esp + 0xa0], eax
add ecx, 0xfffffffb
mov dword [esp + 0xdc], ecx
jmp 0x1015d628
xor eax, eax
dec eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x7c]
mov esi, ebx
jmp 0x1015d751
xor esi, esi
cmp ecx, 2
jl 0x1015d628
mov edi, ecx
mov ecx, 0x18
mov dword [esp + 0xdc], 0
xor esi, esi
mov edx, dword [esp + 0xa0]
movzx eax, byte [edx]
shl eax, cl
or esi, eax
dec edx
add ecx, 0xfffffff8
dec edi
cmp edi, 1
ja 0x1015d610
mov dword [esp + 0xa0], edx
mov eax, 0x90
cmp ebx, eax
setae cl
mov eax, esi
shr eax, 0x18
mov edx, esi
not edx
test edx, 0x7f000000
mov ebx, edx
mov dword [esp + 0x14], edx
sete dl
and dl, cl
movzx edx, dl
mov ecx, 8
sub ecx, edx
cmp esi, 0x90000000
setae byte [esp + 0x28]
mov edx, esi
shr edx, 0x10
mov edi, 0xff
and edx, edi
mov edi, edx
shl edi, cl
or edi, eax
test ebx, 0x7f0000
sete al
and al, byte [esp + 0x28]
movzx eax, al
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov eax, 0x90
cmp edx, eax
setae ch
mov edx, esi
shr edx, 8
mov eax, 0xff
and edx, eax
mov eax, edx
mov cl, bl
shl eax, cl
or eax, edi
test dword [esp + 0x14], 0x7f00
sete cl
and cl, ch
movzx ecx, cl
sub ebx, ecx
mov dword [esp + 0x28], ebx
mov ecx, 0x90
cmp edx, ecx
setae byte [esp + 0x30]
mov ecx, 0xff
and esi, ecx
lea ecx, [ebx + 8]
mov edx, esi
shl edx, cl
or edx, eax
test byte [esp + 0x14], 0x7f
sete al
and al, byte [esp + 0x30]
movzx edi, al
mov ecx, dword [esp + 0xa4]
mov eax, ecx
sub eax, edi
xor ebx, ebx
mov edi, 0x90
cmp esi, edi
setae bl
mov dword [esp + 0x104], ebx
xor esi, esi
shld esi, edx, cl
shl edx, cl
xor edi, edi
test cl, 0x20
cmovne esi, edx
cmovne edx, edi
or dword [esp + 0xec], esi
or dword [esp + 0xd0], edx
mov ecx, dword [esp + 0x28]
add eax, ecx
add eax, 0x10
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0xe0]
mov ebx, dword [esp + 0x48]
sub dword [esp + 0x10], ebx
cmp dword [esp + 0x12c], 2
setb bl
mov byte [ecx + 0x840], 0
cmp dword [esp + 0x50], 5
mov dword [esp + 0xe0], esi
mov dword [esp + 0x7c], edx
mov byte [esp + 0xf0], bl
jg 0x1015d7a2
mov eax, dword [esp + 0xac]
cmp eax, 0xa
jb 0x1015d7be
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx]
add ecx, 4
mov dword [esp + 0x58], ecx
add eax, 0xfffffff7
jmp 0x1015d7e7
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xac], edx
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x34], edx
jmp 0x1015d901
cmp eax, 6
jb 0x1015d7e0
mov dword [esp + 0xac], 0
cmp dword [esp + 0x3c], 1
jne 0x1015d7f0
xor esi, esi
dec esi
xor ecx, ecx
mov ebx, dword [esp + 0x58]
jmp 0x1015d82e
xor esi, esi
dec esi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xac], eax
jmp 0x1015d84a
mov eax, dword [esp + 0x90]
add eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x9c]
add eax, ecx
add eax, 0xfffffffc
xor ecx, ecx
xor edx, edx
dec edx
mov ebx, dword [esp + 0x58]
mov edi, 0xff
shl edi, cl
not edi
and edi, edx
movzx esi, byte [ebx]
inc ebx
shl esi, cl
or esi, edi
add ecx, 8
dec eax
mov edx, esi
cmp eax, 2
ja 0x1015d810
movzx eax, byte [ebx]
or eax, 0xf
mov edx, 0xff
shl edx, cl
shl eax, cl
not edx
and edx, esi
or eax, edx
mov esi, eax
inc ebx
mov dword [esp + 0x58], ebx
mov ecx, 0xff
mov eax, esi
and eax, ecx
xor edx, edx
cmp eax, ecx
mov edi, 0xff
sete dl
mov cl, 8
sub cl, dl
add edx, dword [esp + 0xe8]
shl eax, cl
mov ecx, esi
shr ecx, 8
and ecx, edi
or eax, ecx
xor ebx, ebx
cmp ecx, edi
sete bl
mov cl, 8
sub cl, bl
add ebx, edx
shl eax, cl
mov ecx, esi
shr ecx, 0x10
and ecx, edi
or eax, ecx
xor edx, edx
cmp ecx, edi
sete dl
mov cl, 8
sub cl, dl
shl eax, cl
mov edi, edx
add edi, ebx
shr esi, 0x18
or eax, esi
xor ecx, ecx
mov edx, 0xff
cmp esi, edx
sete cl
mov dword [esp + 0xe8], ecx
mov ecx, edi
mov ebx, dword [esp + 0x50]
sub ecx, ebx
add cl, 0x20
xor edx, edx
shld edx, eax, cl
shl eax, cl
xor esi, esi
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
mov esi, eax
sub ebx, edi
or edx, dword [esp + 0x60]
mov dword [esp + 0x34], edx
or esi, dword [esp + 0x20]
add ebx, 0x20
mov dword [esp + 0x50], ebx
cmp ebx, 6
jl 0x1015da87
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
xor ebx, ebx
dec ebx
xor edx, edx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x44], ebx
cmp ebx, 7
mov dword [esp + 0x48], esi
je 0x1015da7d
mov eax, dword [esp + 0x9c]
mov ebx, dword [eax*4 + 0x10319acc]
mov edi, dword [esp + 0x34]
test edi, edi
mov dword [esp + 0x34], edi
js 0x1015d990
mov cl, 0x3f
sub cl, bl
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, esi
xor esi, esi
dec esi
mov ecx, ebx
shl esi, cl
not esi
and esi, edi
cmp eax, 2
lea ecx, [eax - 1]
mov eax, 0
cmovl ecx, eax
inc ebx
mov dword [esp + 0x20], ebx
sub dword [esp + 0x50], ebx
lea esi, [esi*2 + 1]
mov dword [esp + 0x9c], ecx
jmp 0x1015d9bd
xor esi, esi
dec esi
mov ecx, ebx
shl esi, cl
not esi
cmp eax, 0xb
lea eax, [eax + 1]
mov ecx, 0xc
cmovge eax, ecx
dec dword [esp + 0x50]
add esi, esi
mov dword [esp + 0x9c], eax
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
xor eax, eax
mov ebx, esi
sar ebx, 0x1f
mov edi, esi
mov ecx, edx
shl edi, cl
test cl, 0x20
mov edx, edi
cmovne edx, eax
mov dword [esp + 0x14], edx
shld ebx, esi, cl
test cl, 0x20
cmovne ebx, edi
mov esi, 0x3f
shl esi, cl
test cl, 0x20
mov edx, 0
mov eax, esi
cmovne eax, edx
xor edi, edi
mov dword [esp + 0x60], ecx
mov edx, 0x3f
shld edi, edx, cl
test byte [esp + 0x60], 0x20
cmovne edi, esi
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
shld edx, esi, cl
shl esi, cl
test cl, 0x20
cmovne edx, esi
mov dword [esp + 0x34], edx
mov ecx, 0
cmovne esi, ecx
not edi
mov ecx, dword [esp + 0x90]
and ecx, edi
or ecx, ebx
mov dword [esp + 0x90], ecx
not eax
mov ecx, dword [esp + 0x5c]
and ecx, eax
or ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
mov ebx, dword [esp + 0x44]
inc ebx
mov edx, dword [esp + 0x60]
add edx, 7
cmp dword [esp + 0x50], 5
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
jg 0x1015d924
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], esi
jmp 0x1015dabe
mov dword [esp + 0x44], 7
jmp 0x1015dabe
mov dword [esp + 0x48], esi
mov dword [esp + 0x9c], 0
xor eax, eax
dec eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
or dword [esp + 0x24], edx
xor edx, edx
mov bl, byte [esp + 0x2c]
mov dl, bl
mov dword [esp + 0x1c], edx
or dword [esp + 0x18], esi
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x98]
add edx, esi
add edx, 0x10
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x90]
mov esi, edx
mov ebx, dword [esp + 0x5c]
shld esi, ebx, 0x19
mov dword [esp + 0xc8], esi
lea edi, [ecx + 0x840]
and ebx, 0x7f
mov dword [esp + 0x5c], ebx
shr edx, 7
mov dword [esp + 0x90], edx
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x118], edi
jle 0x101605b4
mov esi, dword [esp + 0xcc]
dec esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x108], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x98], 0
mov dword [esp + 0x10], eax
xor ecx, ecx
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x80], eax
cmp eax, 0x20
mov ecx, dword [esp + 0xd4]
mov esi, dword [esp + 0xc]
jae 0x1015dbb5
cmp ecx, 4
jl 0x1015dbc7
mov eax, dword [esp + 0xb0]
mov esi, dword [eax - 3]
add eax, 0xfffffffc
mov dword [esp + 0xb0], eax
add ecx, 0xfffffffc
mov dword [esp + 0xd4], ecx
jmp 0x1015dc1f
mov ebx, edx
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x80]
jmp 0x1015dece
test ecx, ecx
mov ebx, dword [esp + 0xb0]
jle 0x1015dc1d
mov dword [esp + 0xbc], edx
mov eax, ecx
neg eax
mov dword [esp + 0x60], eax
inc ecx
mov eax, ecx
mov ecx, 0x18
xor esi, esi
mov edx, ebx
movzx edi, byte [edx]
shl edi, cl
or esi, edi
dec edx
add ecx, 0xfffffff8
dec eax
cmp eax, 1
ja 0x1015dbed
add ebx, dword [esp + 0x60]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xd4], 0
mov edx, dword [esp + 0xbc]
jmp 0x1015dc1f
xor esi, esi
mov eax, esi
shr eax, 0x18
test edx, edx
setne cl
mov ebx, esi
not ebx
test ebx, 0x7f000000
sete dl
and dl, cl
movzx edx, dl
mov ecx, 8
sub ecx, edx
cmp esi, 0x90000000
setae byte [esp + 0x60]
mov edi, esi
shr edi, 0x10
mov edx, 0xff
and edi, edx
mov edx, edi
shl edx, cl
or edx, eax
test ebx, 0x7f0000
sete al
and al, byte [esp + 0x60]
movzx eax, al
neg eax
add ecx, eax
add ecx, 8
mov dword [esp + 0x60], ecx
mov eax, 0x90
cmp edi, eax
setae byte [esp + 0x14]
mov edi, esi
shr edi, 8
mov eax, 0xff
and edi, eax
mov eax, edi
shl eax, cl
or eax, edx
test ebx, 0x7f00
sete cl
and cl, byte [esp + 0x14]
movzx ecx, cl
mov edx, dword [esp + 0x60]
sub edx, ecx
mov dword [esp + 0x60], edx
mov ecx, 0x90
cmp edi, ecx
setae byte [esp + 0x14]
mov ecx, 0xff
and esi, ecx
lea ecx, [edx + 8]
mov edx, esi
shl edx, cl
or edx, eax
test bl, 0x7f
sete al
and al, byte [esp + 0x14]
movzx eax, al
mov ecx, dword [esp + 0x80]
mov edi, ecx
sub edi, eax
mov eax, 0x90
cmp esi, eax
setae byte [esp + 0x14]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
cmovne eax, edx
mov ecx, 0
cmovne edx, ecx
mov ecx, edx
mov ebx, dword [esp + 0x94]
or ebx, eax
or ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x60]
add eax, edi
add eax, 0x10
mov dword [esp + 0x80], eax
cmp eax, 0x1f
mov dword [esp + 0x94], ebx
ja 0x1015dd62
mov edx, dword [esp + 0xd4]
cmp edx, 4
mov dword [esp + 0x38], ecx
jl 0x1015dd80
mov eax, dword [esp + 0xb0]
mov edi, dword [eax - 3]
add eax, 0xfffffffc
mov dword [esp + 0xb0], eax
add edx, 0xfffffffc
mov dword [esp + 0xd4], edx
jmp 0x1015ddc6
xor ebx, ebx
mov al, byte [esp + 0x14]
mov bl, al
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0xc]
mov edx, ecx
jmp 0x1015dece
test edx, edx
jle 0x1015ddc4
mov eax, edx
neg eax
mov dword [esp + 0x60], eax
inc edx
mov ecx, 0x18
xor edi, edi
mov ebx, dword [esp + 0xb0]
movzx eax, byte [ebx]
shl eax, cl
or edi, eax
dec ebx
add ecx, 0xfffffff8
dec edx
cmp edx, 1
ja 0x1015dd9b
mov eax, dword [esp + 0x60]
add dword [esp + 0xb0], eax
mov dword [esp + 0xd4], 0
jmp 0x1015ddc6
xor edi, edi
mov eax, 0x90
cmp esi, eax
setae cl
mov eax, edi
shr eax, 0x18
mov edx, edi
not edx
test edx, 0x7f000000
mov dword [esp + 0x14], edx
sete ch
and ch, cl
movzx esi, ch
mov ecx, 8
sub ecx, esi
cmp edi, 0x90000000
setae byte [esp + 0x60]
mov esi, edi
shr esi, 0x10
mov ebx, 0xff
and esi, ebx
mov ebx, esi
shl ebx, cl
or ebx, eax
test edx, 0x7f0000
sete al
and al, byte [esp + 0x60]
movzx eax, al
neg eax
lea edx, [ecx + eax]
add edx, 8
mov eax, 0x90
cmp esi, eax
setae ch
mov esi, edi
shr esi, 8
mov eax, 0xff
and esi, eax
mov eax, esi
mov cl, dl
shl eax, cl
or eax, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x7f00
sete cl
and cl, ch
movzx ecx, cl
sub edx, ecx
mov dword [esp + 0x60], edx
mov ecx, 0x90
cmp esi, ecx
setae byte [esp + 0x30]
mov ecx, 0xff
and edi, ecx
lea ecx, [edx + 8]
mov edx, edi
shl edx, cl
or edx, eax
test bl, 0x7f
sete al
and al, byte [esp + 0x30]
movzx eax, al
mov ecx, dword [esp + 0x80]
mov esi, ecx
sub esi, eax
xor ebx, ebx
mov eax, 0x90
cmp edi, eax
setae bl
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
cmovne eax, edx
mov ecx, 0
cmovne edx, ecx
or dword [esp + 0x94], eax
or edx, dword [esp + 0x38]
mov eax, dword [esp + 0x60]
add eax, esi
add eax, 0x10
mov dword [esp + 0x74], edx
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x80], eax
and edx, 0x7f
mov eax, ecx
shl eax, 8
movzx edx, word [eax + edx*2 + 0x103189ae]
test ecx, ecx
mov dword [esp + 0xc], esi
je 0x1015df04
mov dword [esp + 0x14], edx
jmp 0x1015e262
mov ecx, dword [esp + 0x5c]
lea eax, [ecx - 2]
cmp eax, 0xffffffff
mov ebx, 0
cmovne edx, ebx
mov dword [esp + 0x14], edx
cmp ecx, 1
jg 0x1015df36
cmp dword [esp + 0x44], 0
mov edx, dword [esp + 0x48]
je 0x1015df3f
mov esi, dword [esp + 0xac]
jmp 0x1015e22b
mov dword [esp + 0x5c], eax
jmp 0x1015e262
cmp dword [esp + 0x50], 5
mov ebx, dword [esp + 0xac]
jg 0x1015df6b
cmp ebx, 5
mov eax, dword [esp + 0x58]
jl 0x1015df7b
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x58], eax
add ebx, 0xfffffffc
mov dword [esp + 0x98], ebx
jmp 0x1015dfe8
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x34]
jmp 0x1015e09c
test ebx, ebx
jle 0x1015dfb9
mov dword [esp + 0x98], 0
cmp ebx, 1
je 0x1015dfc5
inc ebx
xor ecx, ecx
xor eax, eax
dec eax
mov edi, dword [esp + 0x58]
mov esi, 0xff
shl esi, cl
not esi
and esi, eax
movzx edx, byte [edi]
inc edi
shl edx, cl
or edx, esi
add ecx, 8
dec ebx
mov eax, edx
cmp ebx, 2
ja 0x1015df99
jmp 0x1015dfce
mov dword [esp + 0x98], ebx
xor esi, esi
dec esi
jmp 0x1015dfe8
xor ecx, ecx
xor edx, edx
dec edx
mov edi, dword [esp + 0x58]
movzx esi, byte [edi]
or esi, 0xf
mov eax, 0xff
shl eax, cl
shl esi, cl
not eax
and eax, edx
or esi, eax
inc edi
mov dword [esp + 0x58], edi
mov edx, esi
mov ecx, 0xff
and edx, ecx
xor eax, eax
cmp edx, ecx
sete al
mov edi, dword [esp + 0xe8]
add edi, eax
mov cl, 8
sub cl, al
shl edx, cl
mov eax, esi
shr eax, 8
mov ecx, 0xff
and eax, ecx
or edx, eax
xor ebx, ebx
cmp eax, ecx
sete bl
mov cl, 8
sub cl, bl
mov eax, ebx
add eax, edi
shl edx, cl
mov ecx, esi
shr ecx, 0x10
mov edi, 0xff
and ecx, edi
or edx, ecx
xor ebx, ebx
cmp ecx, edi
sete bl
mov cl, 8
sub cl, bl
shl edx, cl
mov edi, ebx
add edi, eax
shr esi, 0x18
or edx, esi
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov dword [esp + 0xe8], eax
mov ecx, edi
mov eax, dword [esp + 0x50]
sub ecx, eax
add cl, 0x20
xor ebx, ebx
shld ebx, edx, cl
shl edx, cl
xor esi, esi
test cl, 0x20
cmovne ebx, edx
mov dword [esp + 0x44], 0
cmovne edx, esi
sub eax, edi
or ebx, dword [esp + 0x34]
or edx, dword [esp + 0x48]
add eax, 0x20
mov dword [esp + 0x50], eax
cmp eax, 6
jl 0x1015e21c
mov dword [esp + 0x60], 0
mov esi, edx
mov dword [esp + 0x34], ebx
xor ecx, ecx
cmp ecx, 8
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], esi
je 0x1015e20e
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x9c]
mov eax, dword [edx*4 + 0x10319acc]
mov edi, dword [esp + 0x34]
test edi, edi
mov dword [esp + 0x34], edi
js 0x1015e11c
mov cl, 0x3f
sub cl, al
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, esi
xor esi, esi
dec esi
mov ecx, eax
shl esi, cl
not esi
and esi, edi
cmp edx, 2
lea ecx, [edx - 1]
mov edx, 0
cmovl ecx, edx
inc eax
mov dword [esp + 0x3c], eax
sub dword [esp + 0x50], eax
lea esi, [esi*2 + 1]
mov dword [esp + 0x9c], ecx
jmp 0x1015e147
xor esi, esi
dec esi
mov ecx, eax
shl esi, cl
not esi
cmp edx, 0xb
lea ecx, [edx + 1]
mov eax, 0xc
cmovge ecx, eax
dec dword [esp + 0x50]
add esi, esi
mov dword [esp + 0x9c], ecx
xor eax, eax
inc eax
mov dword [esp + 0x3c], eax
mov edi, esi
sar edi, 0x1f
mov ebx, esi
mov edx, dword [esp + 0x60]
mov ecx, edx
shl ebx, cl
test dl, 0x20
mov eax, ebx
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x38], eax
mov ecx, edx
shld edi, esi, cl
test dl, 0x20
cmovne edi, ebx
mov esi, 0x3f
shl esi, cl
test dl, 0x20
mov ecx, esi
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x30], ecx
xor ebx, ebx
mov ecx, edx
mov eax, 0x3f
shld ebx, eax, cl
test dl, 0x20
cmovne ebx, esi
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov dword [esp + 0x34], eax
mov eax, 0
cmovne esi, eax
not ebx
mov ecx, dword [esp + 0x90]
and ecx, ebx
or ecx, edi
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x30]
not eax
mov ecx, dword [esp + 0xc8]
and ecx, eax
or ecx, dword [esp + 0x38]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x44]
inc ecx
add edx, 7
mov dword [esp + 0x60], edx
cmp dword [esp + 0x50], 5
jg 0x1015e0ac
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], esi
jmp 0x1015e224
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], 8
jmp 0x1015e224
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], ebx
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
mov eax, ecx
mov edx, dword [esp + 0xc8]
shld eax, edx, 0x19
and edx, 0x7f
mov dword [esp + 0x5c], edx
shr ecx, 7
mov dword [esp + 0x90], ecx
dec dword [esp + 0x44]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xac], esi
mov edi, dword [esp + 0x14]
mov eax, edi
and eax, 7
mov ecx, eax
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x74]
shrd esi, edx, cl
mov ebx, edi
and ebx, 0x10
shr edx, cl
mov dword [esp + 0x94], edx
mov ecx, edi
shr ecx, 4
mov dword [esp + 0x2c], ecx
and ecx, 3
mov edx, edi
shr edx, 2
and edx, 0x30
or edx, ecx
mov ecx, dword [esp + 0x108]
shl edx, cl
mov dword [esp + 0xe4], ebx
mov ecx, ebx
mov ebx, edx
shr ecx, 4
mov edx, edi
shr edx, 5
and edx, 7
or edx, ecx
mov ecx, dword [esp + 0x80]
sub ecx, eax
mov eax, dword [esp + 0x4c]
or ebx, dword [eax]
mov dword [eax], ebx
mov eax, dword [esp + 0x28]
or eax, 2
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x74], esi
jge 0x1015e335
mov dword [esp + 0x38], ebx
mov eax, esi
and eax, 0x7f
mov ecx, edx
shl ecx, 8
movzx ebx, word [ecx + eax*2 + 0x103189ae]
test edx, edx
jne 0x1015e67a
mov ecx, dword [esp + 0x5c]
lea eax, [ecx - 2]
cmp eax, 0xffffffff
mov edx, 0
cmovne ebx, edx
mov dword [esp + 0x60], ebx
cmp ecx, 1
jg 0x1015e343
cmp dword [esp + 0x44], 0
je 0x1015e34c
mov esi, dword [esp + 0xac]
jmp 0x1015e63f
mov dword [esp + 0x98], edx
xor edx, edx
jmp 0x1015e6c0
mov dword [esp + 0x5c], eax
jmp 0x1015e676
cmp dword [esp + 0x50], 5
mov eax, dword [esp + 0xac]
jg 0x1015e37d
cmp eax, 5
jl 0x1015e391
mov ecx, eax
mov eax, dword [esp + 0x58]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x58], eax
add ecx, 0xfffffffc
mov dword [esp + 0xc4], ecx
jmp 0x1015e407
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
jmp 0x1015e4b2
test eax, eax
jle 0x1015e3d6
mov dword [esp + 0xc4], 0
cmp eax, 1
je 0x1015e3e2
mov ebx, dword [esp + 0xac]
inc ebx
xor ecx, ecx
xor eax, eax
dec eax
mov edi, dword [esp + 0x58]
mov esi, 0xff
shl esi, cl
not esi
and esi, eax
movzx edx, byte [edi]
inc edi
shl edx, cl
or edx, esi
add ecx, 8
dec ebx
mov eax, edx
cmp ebx, 2
ja 0x1015e3b6
jmp 0x1015e3eb
mov dword [esp + 0xc4], eax
xor edi, edi
dec edi
jmp 0x1015e407
xor ecx, ecx
xor edx, edx
dec edx
mov edi, dword [esp + 0x58]
movzx esi, byte [edi]
or esi, 0xf
mov eax, 0xff
shl eax, cl
shl esi, cl
not eax
and eax, edx
or esi, eax
inc edi
mov dword [esp + 0x58], edi
mov edi, esi
mov edx, edi
mov ecx, 0xff
and edx, ecx
xor eax, eax
cmp edx, ecx
sete al
mov esi, dword [esp + 0xe8]
add esi, eax
mov cl, 8
sub cl, al
shl edx, cl
mov eax, edi
shr eax, 8
mov ecx, 0xff
and eax, ecx
or edx, eax
xor ebx, ebx
cmp eax, ecx
sete bl
mov cl, 8
sub cl, bl
add ebx, esi
shl edx, cl
mov ecx, edi
shr ecx, 0x10
mov esi, 0xff
and ecx, esi
or edx, ecx
xor eax, eax
cmp ecx, esi
sete al
mov cl, 8
sub cl, al
shl edx, cl
add eax, ebx
shr edi, 0x18
or edx, edi
xor ecx, ecx
cmp edi, esi
sete cl
mov dword [esp + 0xe8], ecx
mov ecx, eax
mov esi, dword [esp + 0x50]
sub ecx, esi
add cl, 0x20
xor ebx, ebx
shld ebx, edx, cl
shl edx, cl
xor edi, edi
test cl, 0x20
cmovne ebx, edx
mov dword [esp + 0x44], 0
cmovne edx, edi
sub esi, eax
or ebx, dword [esp + 0x34]
or edx, dword [esp + 0x48]
add esi, 0x20
mov dword [esp + 0x50], esi
cmp esi, 6
jl 0x1015e630
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], ebx
xor eax, eax
cmp eax, 8
je 0x1015e626
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x9c]
mov ebx, dword [edx*4 + 0x10319acc]
mov edi, dword [esp + 0x34]
test edi, edi
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], eax
js 0x1015e536
mov cl, 0x3f
sub cl, bl
mov esi, eax
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, esi
xor esi, esi
dec esi
mov ecx, ebx
shl esi, cl
not esi
and esi, edi
cmp edx, 2
lea ecx, [edx - 1]
mov eax, 0
cmovl ecx, eax
inc ebx
mov dword [esp + 0x5c], ebx
sub dword [esp + 0x50], ebx
lea edi, [esi*2 + 1]
mov dword [esp + 0x9c], ecx
jmp 0x1015e563
xor edi, edi
dec edi
mov ecx, ebx
shl edi, cl
not edi
cmp edx, 0xb
lea ecx, [edx + 1]
mov edx, 0xc
cmovge ecx, edx
dec dword [esp + 0x50]
add edi, edi
mov dword [esp + 0x9c], ecx
xor ecx, ecx
inc ecx
mov dword [esp + 0x5c], ecx
xor eax, eax
mov ebx, edi
sar ebx, 0x1f
mov esi, edi
mov edx, dword [esp + 0x30]
mov ecx, edx
shl esi, cl
test dl, 0x20
mov ecx, esi
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov ecx, edx
shld ebx, edi, cl
test dl, 0x20
cmovne ebx, esi
mov edi, 0x3f
shl edi, cl
test dl, 0x20
mov ecx, edi
cmovne ecx, eax
mov dword [esp + 0x98], ecx
xor esi, esi
mov ecx, edx
mov eax, 0x3f
shld esi, eax, cl
test dl, 0x20
cmovne esi, edi
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x48]
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov dword [esp + 0x34], eax
mov eax, 0
cmovne edi, eax
mov dword [esp + 0x48], edi
not esi
mov ecx, dword [esp + 0x90]
and ecx, esi
or ecx, ebx
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x98]
not eax
mov ecx, dword [esp + 0xc8]
and ecx, eax
or ecx, dword [esp + 0x3c]
mov dword [esp + 0xc8], ecx
mov eax, dword [esp + 0x44]
inc eax
add edx, 7
mov dword [esp + 0x30], edx
cmp dword [esp + 0x50], 5
jg 0x1015e4c4
mov dword [esp + 0x44], eax
jmp 0x1015e638
mov dword [esp + 0x44], 8
jmp 0x1015e638
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], ebx
mov esi, dword [esp + 0xc4]
mov ecx, dword [esp + 0x90]
mov eax, ecx
mov edx, dword [esp + 0xc8]
shld eax, edx, 0x19
and edx, 0x7f
mov dword [esp + 0x5c], edx
shr ecx, 7
mov dword [esp + 0x90], ecx
dec dword [esp + 0x44]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xac], esi
mov ebx, dword [esp + 0x60]
mov eax, ebx
shr eax, 4
and eax, 1
mov edi, ebx
shr edi, 5
mov ecx, ebx
and ecx, 7
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x74]
shrd esi, edx, cl
shr edx, cl
mov dword [esp + 0x94], edx
and edi, 7
or edi, eax
mov edx, ebx
mov dword [esp + 0x98], edi
sub dword [esp + 0x80], ecx
mov dword [esp + 0x74], esi
mov ebx, dword [esp + 0x38]
mov eax, edx
and eax, 0x30
mov ecx, edx
and ecx, 0xc0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x108]
add cl, 4
shl eax, cl
or eax, ebx
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
shr eax, 3
and eax, 1
mov dword [esp + 0x60], edx
mov ecx, edx
shr ecx, 2
and ecx, 2
or ecx, eax
je 0x1015e73b
cmp ecx, 3
jne 0x1015e744
mov dword [esp + 0xf4], esi
mov eax, dword [esp + 0x5c]
lea ecx, [eax - 2]
cmp eax, 2
mov esi, dword [esp + 0x48]
mov dword [esp + 0xc4], ecx
jge 0x1015e899
mov eax, dword [esp + 0x44]
test eax, eax
je 0x1015e8f8
dec eax
mov dword [esp + 0x44], eax
jmp 0x10160442
xor esi, esi
inc esi
mov dword [esp + 0x30], esi
jmp 0x1015e78b
mov eax, esi
and eax, 7
movzx edx, byte [eax + 0x10319b00]
mov eax, edx
and eax, 3
mov edi, ecx
mov ecx, eax
shr esi, cl
mov ecx, edx
shr ecx, 2
and ecx, 7
add eax, ecx
mov ebx, esi
xor esi, esi
dec esi
shl esi, cl
not esi
and esi, ebx
shr edx, 5
cmp edi, 1
lea edx, [edx + esi + 1]
mov esi, 1
cmove esi, edx
cmove edx, edi
mov dword [esp + 0x30], edx
mov ecx, eax
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
cmp esi, eax
ja 0x101605d3
cmp dword [esp + 0x30], eax
ja 0x101605d3
mov dword [esp + 0x3c], esi
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x28]
lea esi, [eax + 4]
mov ebx, ecx
mov ecx, esi
mov edx, dword [esp + 0x40]
sub ecx, edx
add ecx, ecx
mov eax, 0xff
shr eax, cl
mov dword [esp + 0xf4], esi
cmp esi, edx
mov ecx, 0xff
cmovle eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x74]
shrd esi, edx, cl
mov ecx, ebx
shr edx, cl
mov dword [esp + 0xc4], ebx
test bl, 0x20
cmovne esi, edx
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x94], edx
mov ecx, eax
and ecx, 0x55
cmp dword [esp + 0xf8], 2
cmovge ecx, eax
mov edx, dword [esp + 0x2c]
and edx, 0xf
mov eax, dword [esp + 0x60]
and eax, 0xf0
or eax, edx
mov dword [esp + 0x38], ecx
not ecx
test eax, ecx
jne 0x10163e3c
cmp dword [esp + 0xe4], 0
mov dword [esp + 0x74], esi
jne 0x1015e867
xor edi, edi
test byte [esp + 0x38], 1
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0x18]
jne 0x1015ebae
jmp 0x1015ebb4
cmp dword [esp + 0xc], 0x20
jae 0x1015e890
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1015e8b8
mov eax, dword [esp + 4]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015e932
mov ebx, dword [esp + 0x18]
jmp 0x1015eb49
mov ebx, dword [esp + 0xf4]
mov eax, ebx
and eax, 7
movzx edx, byte [eax + 0x10319b00]
mov ecx, edx
and ecx, 3
shr ebx, cl
jmp 0x101604a3
test ecx, ecx
jle 0x1015e92f
lea eax, [ecx + 1]
xor ecx, ecx
mov esi, dword [esp + 4]
xor edi, edi
dec edi
movzx edx, byte [esi]
mov ebx, 0xff
shl ebx, cl
shl edx, cl
not ebx
and ebx, edi
mov edi, edx
or edi, ebx
inc esi
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015e8c8
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015e932
cmp dword [esp + 0x50], 5
jg 0x1015ea72
mov ebx, dword [esp + 0xac]
cmp ebx, 5
jl 0x10160194
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x58], ecx
add ebx, 0xfffffffc
mov dword [esp + 0xb8], ebx
jmp 0x10160201
xor edi, edi
dec edi
cmp dword [esp + 0x1c], 1
mov ecx, 0
adc ecx, 7
mov esi, edi
mov edx, 0xff
and esi, edx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, edx
sete al
mov esi, edi
shr esi, 8
and esi, edx
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edx, esi
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x2c], ebx
mov eax, edi
shr eax, 0x10
mov esi, 0xff
and eax, esi
mov esi, eax
shl esi, cl
xor ebx, ebx
mov ecx, 0xff
cmp eax, ecx
mov eax, 0xff
sete bl
or esi, edx
or esi, dword [esp + 0x1c]
shr edi, 0x18
mov ecx, dword [esp + 0x2c]
add ecx, 8
mov edx, edi
shl edx, cl
or esi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
cmp edi, eax
sete byte [esp + 0x1c]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
or esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
lea ebx, [ecx + edx]
add ebx, 0x10
cmp ebx, 0x1f
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], ebx
ja 0x1015ea1b
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1015ea2e
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015ea96
xor eax, eax
mov cl, byte [esp + 0x1c]
mov al, cl
mov dword [esp + 0x1c], eax
mov ebx, esi
jmp 0x1015eb4b
test ecx, ecx
jle 0x1015ea93
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
movzx ebx, byte [edx]
mov esi, 0xff
shl esi, cl
shl ebx, cl
not esi
and esi, dword [esp + 0x18]
or ebx, esi
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015ea3e
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015ea96
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb8], eax
mov ebx, esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
jmp 0x101602b1
xor ebx, ebx
dec ebx
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
setne al
add eax, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x18], esi
xor edx, edx
cmp esi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 8
and esi, edi
mov edx, esi
shl edx, cl
mov dword [esp + 0x1c], edx
add eax, 8
xor edx, edx
cmp esi, edi
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 0x10
and esi, edi
mov edi, ebx
mov ebx, esi
shl ebx, cl
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
or ebx, dword [esp + 0x1c]
or ebx, dword [esp + 0x18]
shr edi, 0x18
lea ecx, [eax + 8]
mov esi, edi
shl esi, cl
or ebx, esi
mov esi, dword [esp + 0xc]
sub esi, edx
xor ecx, ecx
mov edx, 0xff
cmp edi, edx
sete cl
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0xc]
shld edx, ebx, cl
mov edi, ecx
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0x24], edx
or ebx, dword [esp + 0x2c]
add eax, esi
add eax, 0x10
mov dword [esp + 0xc], eax
mov esi, ebx
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
mov eax, edi
shl eax, 0x13
sar eax, 0x1f
add eax, ecx
mov ecx, eax
mov edx, dword [esp + 0x24]
shrd ebx, edx, cl
shr edx, cl
test al, 0x20
cmovne ebx, edx
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x24], edx
xor edx, edx
dec edx
mov ecx, eax
shl edx, cl
not edx
shr edi, 8
and edi, 1
shl edi, cl
and edx, esi
or edi, edx
or edi, 1
add edi, 2
mov ecx, dword [esp + 0x78]
shl edi, cl
sub dword [esp + 0xc], eax
shl esi, 0x1f
or edi, esi
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
mov dword [eax], edi
test byte [esp + 0x14], 0x20
jne 0x1015ebde
test byte [esp + 0x38], 2
mov dword [esp + 0x18], ebx
je 0x1015ebd1
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4], 0
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
jmp 0x1015eee3
cmp dword [esp + 0xc], 0x20
jae 0x1015ec0c
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
jl 0x1015ec17
mov edi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x1015ec58
mov esi, ebx
mov eax, dword [esp + 0x24]
jmp 0x1015ee5a
test eax, eax
jle 0x1015ec55
inc eax
xor ecx, ecx
xor edi, edi
dec edi
movzx esi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl esi, cl
not ebx
and ebx, edi
mov edi, esi
or edi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015ec21
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x1015ec58
xor edi, edi
dec edi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov esi, edi
mov edx, 0xff
and esi, edx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, edx
sete al
mov esi, edi
shr esi, 8
and esi, edx
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edx, esi
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x2c], ebx
mov esi, edi
shr esi, 0x10
mov eax, 0xff
and esi, eax
mov eax, esi
shl eax, cl
xor ebx, ebx
mov ecx, 0xff
cmp esi, ecx
mov esi, eax
sete bl
or esi, edx
or esi, dword [esp + 0x1c]
shr edi, 0x18
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 8]
mov edx, edi
shl edx, cl
or esi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
mov eax, 0xff
cmp edi, eax
sete byte [esp + 0x1c]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
or esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
lea ebx, [ecx + edx]
add ebx, 0x10
cmp ebx, 0x1f
mov dword [esp + 0xc], ebx
ja 0x1015ed44
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xe4], esi
jl 0x1015ed57
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015ed9e
xor ecx, ecx
mov dl, byte [esp + 0x1c]
mov cl, dl
mov dword [esp + 0x1c], ecx
mov ebx, esi
jmp 0x1015ee5a
test ecx, ecx
jle 0x1015ed9b
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
movzx ebx, byte [edx]
mov esi, 0xff
shl esi, cl
shl ebx, cl
not esi
and esi, dword [esp + 0x18]
or ebx, esi
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015ed67
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015ed9e
xor ebx, ebx
dec ebx
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
setne al
add eax, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x18], esi
xor edx, edx
cmp esi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 8
and esi, edi
mov edx, esi
shl edx, cl
mov dword [esp + 0x2c], edx
add eax, 8
xor edx, edx
cmp esi, edi
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 0x10
and esi, edi
mov edi, ebx
mov ebx, esi
shl ebx, cl
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
or ebx, dword [esp + 0x2c]
or ebx, dword [esp + 0x18]
shr edi, 0x18
lea ecx, [eax + 8]
mov esi, edi
shl esi, cl
or ebx, esi
mov esi, dword [esp + 0xc]
sub esi, edx
xor ecx, ecx
mov edx, 0xff
cmp edi, edx
sete cl
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0xc]
shld edx, ebx, cl
mov edi, ecx
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x24]
or ecx, edx
or ebx, dword [esp + 0xe4]
add eax, esi
add eax, 0x10
mov dword [esp + 0xc], eax
mov eax, ecx
mov esi, ebx
mov edx, dword [esp + 0x14]
mov ecx, edx
shl ecx, 0x12
sar ecx, 0x1f
add ecx, dword [esp + 0x3c]
shrd ebx, eax, cl
shr eax, cl
test cl, 0x20
cmovne ebx, eax
mov dword [esp + 0x18], ebx
mov ebx, edx
mov edx, 0
cmovne eax, edx
mov dword [esp + 0x24], eax
xor edx, edx
dec edx
shl edx, cl
mov edi, dword [esp + 0xc]
sub edi, ecx
not edx
and edx, esi
mov eax, ebx
shr eax, 9
and eax, 1
shl eax, cl
or eax, edx
or eax, 1
lea edx, [eax + 2]
mov ecx, dword [esp + 0x78]
shl edx, cl
shl esi, 0x1f
or edx, esi
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov dword [ecx + esi*4], edx
mov edx, dword [esp + 0x20]
movzx ecx, byte [edx]
and ecx, 0x7f
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x21
cmp eax, ecx
cmovbe eax, ecx
mov ecx, esi
or al, 0x80
mov byte [edx], al
mov edx, dword [esp + 0xbc]
test bl, 0x40
mov dword [esp + 0xc], edi
jne 0x1015eefe
xor edi, edi
test byte [esp + 0x38], 4
jne 0x1015f1d0
jmp 0x1015f1d7
cmp edi, 0x20
mov esi, dword [esp + 0x18]
jae 0x1015ef2a
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x1015ef31
mov edi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x1015ef72
mov ebx, esi
jmp 0x1015f16b
test eax, eax
jle 0x1015ef6f
inc eax
xor ecx, ecx
xor edi, edi
dec edi
movzx esi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl esi, cl
not ebx
and ebx, edi
mov edi, esi
or edi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015ef3b
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x1015ef72
xor edi, edi
dec edi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov esi, edi
mov edx, 0xff
and esi, edx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, edx
sete al
mov esi, edi
shr esi, 8
and esi, edx
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edx, esi
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x2c], ebx
mov eax, edi
shr eax, 0x10
mov esi, 0xff
and eax, esi
mov esi, eax
shl esi, cl
xor ebx, ebx
mov ecx, 0xff
cmp eax, ecx
mov eax, 0xff
sete bl
or esi, edx
or esi, dword [esp + 0x1c]
shr edi, 0x18
mov ecx, dword [esp + 0x2c]
add ecx, 8
mov edx, edi
shl edx, cl
or esi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
xor ebx, ebx
cmp edi, eax
sete byte [esp + 0x1c]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
mov ecx, esi
or ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
add esi, edx
add esi, 0x10
cmp esi, 0x1f
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], esi
ja 0x1015f05c
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1015f06f
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015f0b6
mov al, byte [esp + 0x1c]
mov bl, al
mov dword [esp + 0x1c], ebx
mov esi, ecx
mov ebx, ecx
jmp 0x1015f16b
test ecx, ecx
jle 0x1015f0b3
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
movzx ebx, byte [edx]
mov esi, 0xff
shl esi, cl
shl ebx, cl
not esi
and esi, dword [esp + 0x18]
or ebx, esi
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015f07f
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015f0b6
xor ebx, ebx
dec ebx
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
setne al
add eax, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x18], esi
xor edx, edx
cmp esi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 8
and esi, edi
mov edx, esi
shl edx, cl
mov dword [esp + 0x1c], edx
add eax, 8
xor edx, edx
cmp esi, edi
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 0x10
and esi, edi
mov edi, ebx
mov ebx, esi
shl ebx, cl
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
or ebx, dword [esp + 0x1c]
or ebx, dword [esp + 0x18]
shr edi, 0x18
lea ecx, [eax + 8]
mov esi, edi
shl esi, cl
or ebx, esi
mov esi, dword [esp + 0xc]
sub esi, edx
xor ecx, ecx
mov edx, 0xff
cmp edi, edx
sete cl
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0xc]
shld edx, ebx, cl
mov edi, ecx
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0x24], edx
or ebx, dword [esp + 0x2c]
add eax, esi
add eax, 0x10
mov dword [esp + 0xc], eax
mov esi, ebx
mov edi, dword [esp + 0x14]
mov eax, edi
shl eax, 0x11
sar eax, 0x1f
add eax, dword [esp + 0x3c]
mov ecx, eax
mov edx, dword [esp + 0x24]
shrd esi, edx, cl
shr edx, cl
test al, 0x20
cmovne esi, edx
mov dword [esp + 0x18], esi
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x24], edx
xor edx, edx
dec edx
mov ecx, eax
shl edx, cl
not edx
shr edi, 0xa
and edi, 1
shl edi, cl
and edx, ebx
or edi, edx
or edi, 1
add edi, 2
mov ecx, dword [esp + 0x78]
shl edi, cl
sub dword [esp + 0xc], eax
shl ebx, 0x1f
or edi, ebx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], edi
mov eax, dword [esp + 0x20]
mov byte [eax + 1], 0
cmp byte [esp + 0x14], 0
js 0x1015f202
test byte [esp + 0x38], 8
je 0x1015f4f6
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], 0
jmp 0x1015f4f6
cmp dword [esp + 0xc], 0x20
jae 0x1015f22c
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x1015f235
mov edi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x1015f276
mov esi, dword [esp + 0x18]
jmp 0x1015f475
test eax, eax
jle 0x1015f273
inc eax
xor ecx, ecx
xor edi, edi
dec edi
movzx esi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl esi, cl
not ebx
and ebx, edi
mov edi, esi
or edi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015f23f
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x1015f276
xor edi, edi
dec edi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov esi, edi
mov edx, 0xff
and esi, edx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, edx
sete al
mov esi, edi
shr esi, 8
and esi, edx
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edx, esi
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x2c], ebx
mov eax, edi
shr eax, 0x10
mov esi, 0xff
and eax, esi
mov esi, eax
shl esi, cl
xor ebx, ebx
mov ecx, 0xff
cmp eax, ecx
mov eax, 0xff
sete bl
or esi, edx
or esi, dword [esp + 0x1c]
shr edi, 0x18
mov ecx, dword [esp + 0x2c]
add ecx, 8
mov edx, edi
shl edx, cl
or esi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
xor ebx, ebx
cmp edi, eax
sete byte [esp + 0x1c]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
mov ecx, esi
or ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
add esi, edx
add esi, 0x10
cmp esi, 0x1f
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], esi
ja 0x1015f360
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1015f375
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015f3bc
mov al, byte [esp + 0x1c]
mov bl, al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ecx
mov esi, ecx
jmp 0x1015f475
test ecx, ecx
jle 0x1015f3b9
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
movzx ebx, byte [edx]
mov esi, 0xff
shl esi, cl
shl ebx, cl
not esi
and esi, dword [esp + 0x18]
or ebx, esi
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015f385
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015f3bc
xor ebx, ebx
dec ebx
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
setne al
add eax, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x18], esi
xor edx, edx
cmp esi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 8
and esi, edi
mov edx, esi
shl edx, cl
mov dword [esp + 0x1c], edx
add eax, 8
xor edx, edx
cmp esi, edi
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 0x10
and esi, edi
mov edi, ebx
mov ebx, esi
shl ebx, cl
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
or ebx, dword [esp + 0x1c]
or ebx, dword [esp + 0x18]
shr edi, 0x18
lea ecx, [eax + 8]
mov esi, edi
shl esi, cl
or ebx, esi
mov esi, dword [esp + 0xc]
sub esi, edx
xor ecx, ecx
mov edx, 0xff
cmp edi, edx
sete cl
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0xc]
shld edx, ebx, cl
mov edi, ecx
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0x24], edx
or ebx, dword [esp + 0x2c]
add eax, esi
add eax, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ebx
mov esi, ebx
mov edx, dword [esp + 0x14]
movsx eax, dx
sar eax, 0xf
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
shrd edi, eax, cl
shr eax, cl
test cl, 0x20
cmovne edi, eax
mov dword [esp + 0x18], edi
mov edi, 0
cmovne eax, edi
mov dword [esp + 0x24], eax
xor eax, eax
dec eax
shl eax, cl
shr edx, 0xb
and edx, 1
shl edx, cl
sub dword [esp + 0xc], ecx
not eax
and eax, esi
or edx, eax
or edx, 1
lea eax, [edx + 2]
bsr ecx, edx
xor ecx, 0x1f
mov dl, 0xa0
sub dl, cl
mov ecx, dword [esp + 0x78]
shl eax, cl
mov ecx, esi
shl ecx, 0x1f
or eax, ecx
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x10]
mov dword [edi + ecx*4 + 4], eax
mov eax, dword [esp + 0x20]
mov byte [eax + 1], dl
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x60]
test al, 0x10
jne 0x1015f510
xor edi, edi
test byte [esp + 0x38], 0x10
jne 0x1015f7ec
jmp 0x1015f7f3
cmp dword [esp + 0xc], 0x20
jae 0x1015f53a
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x1015f543
mov edi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x1015f584
mov ebx, dword [esp + 0x18]
jmp 0x1015f781
test eax, eax
jle 0x1015f581
inc eax
xor ecx, ecx
xor edi, edi
dec edi
movzx esi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl esi, cl
not ebx
and ebx, edi
mov edi, esi
or edi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015f54d
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x1015f584
xor edi, edi
dec edi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov esi, edi
mov edx, 0xff
and esi, edx
mov dword [esp + 0x3c], esi
xor eax, eax
cmp esi, edx
sete al
mov esi, edi
shr esi, 8
and esi, edx
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edx, esi
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x14], ebx
mov eax, edi
shr eax, 0x10
mov esi, 0xff
and eax, esi
mov esi, eax
shl esi, cl
xor ebx, ebx
mov ecx, 0xff
cmp eax, ecx
mov eax, 0xff
sete bl
or esi, edx
or esi, dword [esp + 0x3c]
shr edi, 0x18
mov ecx, dword [esp + 0x14]
add ecx, 8
mov edx, edi
shl edx, cl
or esi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
xor ebx, ebx
cmp edi, eax
sete byte [esp + 0x3c]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
mov ecx, esi
or ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add esi, edx
add esi, 0x10
cmp esi, 0x1f
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], esi
ja 0x1015f66e
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1015f683
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015f6ca
mov al, byte [esp + 0x3c]
mov bl, al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ecx
mov ebx, ecx
jmp 0x1015f781
test ecx, ecx
jle 0x1015f6c7
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor ebx, ebx
dec ebx
mov dword [esp + 0x14], ebx
movzx ebx, byte [edx]
mov esi, 0xff
shl esi, cl
shl ebx, cl
not esi
and esi, dword [esp + 0x14]
or ebx, esi
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015f693
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015f6ca
xor ebx, ebx
dec ebx
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
setne al
add eax, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x14], esi
xor edx, edx
cmp esi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 8
and esi, edi
mov edx, esi
shl edx, cl
mov dword [esp + 0x3c], edx
add eax, 8
xor edx, edx
cmp esi, edi
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 0x10
and esi, edi
mov edi, ebx
mov ebx, esi
shl ebx, cl
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
or ebx, dword [esp + 0x3c]
or ebx, dword [esp + 0x14]
shr edi, 0x18
lea ecx, [eax + 8]
mov esi, edi
shl esi, cl
or ebx, esi
mov esi, dword [esp + 0xc]
sub esi, edx
xor ecx, ecx
mov edx, 0xff
cmp edi, edx
sete cl
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0xc]
shld edx, ebx, cl
mov edi, ecx
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0x24], edx
or ebx, dword [esp + 0x18]
add eax, esi
add eax, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x60]
mov eax, edi
shl eax, 0x13
sar eax, 0x1f
add eax, dword [esp + 0x30]
mov ecx, eax
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
shrd esi, edx, cl
shr edx, cl
test al, 0x20
cmovne esi, edx
mov dword [esp + 0x18], esi
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x24], edx
xor edx, edx
dec edx
mov ecx, eax
shl edx, cl
not edx
shr edi, 8
and edi, 1
shl edi, cl
and edx, ebx
or edi, edx
or edi, 1
add edi, 2
mov ecx, dword [esp + 0x78]
shl edi, cl
sub dword [esp + 0xc], eax
mov eax, ebx
shl eax, 0x1f
or edi, eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
mov dword [eax + 8], edi
mov eax, dword [esp + 0x60]
test al, 0x20
jne 0x1015f81f
test byte [esp + 0x38], 0x20
je 0x1015f812
mov eax, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], 0
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
jmp 0x1015fb24
cmp dword [esp + 0xc], 0x20
jae 0x1015f849
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x1015f856
mov edi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x1015f897
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
jmp 0x1015fa92
test eax, eax
jle 0x1015f894
inc eax
xor ecx, ecx
xor edi, edi
dec edi
movzx esi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl esi, cl
not ebx
and ebx, edi
mov edi, esi
or edi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015f860
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x1015f897
xor edi, edi
dec edi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov esi, edi
mov edx, 0xff
and esi, edx
mov dword [esp + 0x3c], esi
xor eax, eax
cmp esi, edx
sete al
mov esi, edi
shr esi, 8
and esi, edx
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edx, esi
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x14], ebx
mov esi, edi
shr esi, 0x10
mov eax, 0xff
and esi, eax
mov ebx, esi
shl ebx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
or ebx, edx
or ebx, dword [esp + 0x3c]
shr edi, 0x18
mov ecx, dword [esp + 0x14]
add ecx, 8
mov edx, edi
shl edx, cl
or ebx, edx
mov ecx, dword [esp + 0xc]
mov esi, ecx
sub esi, eax
xor edx, edx
mov eax, 0xff
cmp edi, eax
sete byte [esp + 0x3c]
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
or ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add esi, ecx
add esi, 0x10
cmp esi, 0x1f
mov dword [esp + 0xc], esi
ja 0x1015f97f
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x24], eax
jl 0x1015f98e
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015f9d5
mov cl, byte [esp + 0x3c]
mov dl, cl
mov dword [esp + 0x1c], edx
jmp 0x1015fa8c
test ecx, ecx
jle 0x1015f9d2
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor ebx, ebx
dec ebx
mov dword [esp + 0x14], ebx
movzx ebx, byte [edx]
mov esi, 0xff
shl esi, cl
shl ebx, cl
not esi
and esi, dword [esp + 0x14]
or ebx, esi
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015f99e
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015f9d5
xor ebx, ebx
dec ebx
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
setne al
add eax, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x14], esi
xor edx, edx
cmp esi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 8
and esi, edi
mov edx, esi
shl edx, cl
mov dword [esp + 0x3c], edx
add eax, 8
xor edx, edx
cmp esi, edi
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 0x10
and esi, edi
mov edi, ebx
mov ebx, esi
shl ebx, cl
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
or ebx, dword [esp + 0x3c]
or ebx, dword [esp + 0x14]
shr edi, 0x18
lea ecx, [eax + 8]
mov esi, edi
shl esi, cl
or ebx, esi
mov esi, dword [esp + 0xc]
sub esi, edx
xor ecx, ecx
mov edx, 0xff
cmp edi, edx
sete cl
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0xc]
shld edx, ebx, cl
mov edi, ecx
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x24]
or ecx, edx
or ebx, dword [esp + 0x18]
add eax, esi
add eax, 0x10
mov dword [esp + 0xc], eax
mov eax, ecx
mov dword [esp + 0x18], ebx
mov esi, ebx
mov edi, dword [esp + 0x60]
mov ecx, edi
shl ecx, 0x12
sar ecx, 0x1f
add ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
shrd edx, eax, cl
shr eax, cl
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x18], edx
mov edx, 0
cmovne eax, edx
mov dword [esp + 0x24], eax
xor edx, edx
dec edx
shl edx, cl
mov ebx, dword [esp + 0xc]
sub ebx, ecx
not edx
and edx, esi
mov eax, edi
shr eax, 9
and eax, 1
shl eax, cl
or eax, edx
or eax, 1
lea edx, [eax + 2]
mov ecx, dword [esp + 0x78]
shl edx, cl
shl esi, 0x1f
or edx, esi
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov dword [ecx + esi*4 + 8], edx
mov edi, dword [esp + 0x20]
movzx ecx, byte [edi + 1]
and ecx, 0x7f
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x21
cmp eax, ecx
cmovbe eax, ecx
mov ecx, esi
or al, 0x80
mov byte [edi + 1], al
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xbc]
add edi, 2
mov dword [esp + 0x20], edi
test al, 0x40
mov dword [esp + 0xc], ebx
jne 0x1015fb49
xor edi, edi
test byte [esp + 0x38], 0x40
mov ebx, dword [esp + 0x18]
jne 0x1015fe23
jmp 0x1015fe2a
cmp ebx, 0x20
mov ecx, dword [esp + 0x18]
jae 0x1015fb75
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x1015fb80
mov edi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x1015fbc1
mov esi, ecx
mov dword [esp + 0x3c], ecx
jmp 0x1015fdc0
test eax, eax
jle 0x1015fbbe
inc eax
xor ecx, ecx
xor edi, edi
dec edi
movzx esi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl esi, cl
not ebx
and ebx, edi
mov edi, esi
or edi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015fb8a
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x1015fbc1
xor edi, edi
dec edi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov esi, edi
mov edx, 0xff
and esi, edx
mov dword [esp + 0x3c], esi
xor eax, eax
cmp esi, edx
sete al
mov esi, edi
shr esi, 8
and esi, edx
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edx, esi
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x14], ebx
mov eax, edi
shr eax, 0x10
mov esi, 0xff
and eax, esi
mov esi, eax
shl esi, cl
xor ebx, ebx
mov ecx, 0xff
cmp eax, ecx
mov eax, 0xff
sete bl
or esi, edx
or esi, dword [esp + 0x3c]
shr edi, 0x18
mov ecx, dword [esp + 0x14]
add ecx, 8
mov edx, edi
shl edx, cl
or esi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
xor ebx, ebx
cmp edi, eax
sete byte [esp + 0x2c]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
mov ecx, esi
or ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add esi, edx
add esi, 0x10
cmp esi, 0x1f
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x3c], ecx
ja 0x1015fcab
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1015fcbc
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1015fd03
mov al, byte [esp + 0x2c]
mov bl, al
mov dword [esp + 0x1c], ebx
mov esi, ecx
jmp 0x1015fdbc
test ecx, ecx
jle 0x1015fd00
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor ebx, ebx
dec ebx
mov dword [esp + 0x14], ebx
movzx ebx, byte [edx]
mov esi, 0xff
shl esi, cl
shl ebx, cl
not esi
and esi, dword [esp + 0x14]
or ebx, esi
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015fccc
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x1015fd03
xor ebx, ebx
dec ebx
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
setne al
add eax, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x14], esi
xor edx, edx
cmp esi, ecx
mov edi, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 8
and esi, edi
mov edx, esi
shl edx, cl
mov dword [esp + 0x18], edx
add eax, 8
xor edx, edx
cmp esi, edi
sete dl
mov ecx, eax
sub eax, edx
mov esi, ebx
shr esi, 0x10
and esi, edi
mov edi, ebx
mov ebx, esi
shl ebx, cl
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
or ebx, dword [esp + 0x18]
or ebx, dword [esp + 0x14]
shr edi, 0x18
lea ecx, [eax + 8]
mov esi, edi
shl esi, cl
or ebx, esi
mov esi, dword [esp + 0xc]
sub esi, edx
xor ecx, ecx
mov edx, 0xff
cmp edi, edx
sete cl
mov dword [esp + 0x1c], ecx
xor edx, edx
mov ecx, dword [esp + 0xc]
shld edx, ebx, cl
mov edi, ecx
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0x24], edx
or ebx, dword [esp + 0x3c]
add eax, esi
add eax, 0x10
mov dword [esp + 0xc], eax
mov esi, ebx
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x60]
mov edi, eax
shl eax, 0x11
sar eax, 0x1f
add eax, dword [esp + 0x30]
mov ecx, eax
mov edx, dword [esp + 0x24]
mov ebx, esi
shrd ebx, edx, cl
shr edx, cl
test al, 0x20
cmovne ebx, edx
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x24], edx
xor edx, edx
dec edx
mov ecx, eax
shl edx, cl
not edx
shr edi, 0xa
and edi, 1
shl edi, cl
mov esi, dword [esp + 0x3c]
and edx, esi
or edi, edx
or edi, 1
add edi, 2
mov ecx, dword [esp + 0x78]
shl edi, cl
sub dword [esp + 0xc], eax
shl esi, 0x1f
or edi, esi
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
mov dword [eax + 0xc], edi
and dword [esp + 0x28], 4
mov eax, dword [esp + 0x20]
mov byte [eax], 0
mov eax, dword [esp + 0x60]
test al, al
js 0x1015fe51
cmp dword [esp + 0x38], 0x80
jae 0x1015fe7f
mov esi, dword [esp + 0x10]
jmp 0x10160159
cmp dword [esp + 0xc], 0x20
jae 0x1015fe90
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
jl 0x1015fe9b
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x1015fedc
mov esi, dword [esp + 0x10]
mov dword [esi + ecx*4 + 0xc], 0
jmp 0x10160159
mov dword [esp + 0x38], ebx
xor esi, esi
jmp 0x101600e4
test eax, eax
jle 0x1015fed9
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015fea5
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x1015fedc
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edx, esi
mov edi, 0xff
and edx, edi
mov dword [esp + 0x38], edx
xor eax, eax
cmp edx, edi
sete al
mov edx, esi
shr edx, 8
and edx, edi
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edi, edx
shl edi, cl
xor eax, eax
mov ecx, 0xff
cmp edx, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x14], ebx
mov edx, esi
shr edx, 0x10
mov eax, 0xff
and edx, eax
mov eax, edx
shl eax, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or eax, edi
or eax, dword [esp + 0x38]
shr esi, 0x18
mov ecx, dword [esp + 0x14]
add ecx, 8
mov edx, esi
shl edx, cl
or eax, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, ebx
mov edx, 0xff
cmp esi, edx
sete byte [esp + 0x3c]
xor ebx, ebx
shld ebx, eax, cl
shl eax, cl
test cl, 0x20
cmovne ebx, eax
mov ecx, 0
cmovne eax, ecx
mov edx, dword [esp + 0x24]
or edx, ebx
mov ebx, edx
mov edx, eax
or edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
lea ecx, [eax + edi]
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], edx
ja 0x1015ffc5
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1015ffda
mov eax, dword [esp + 4]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x10160021
xor eax, eax
mov cl, byte [esp + 0x3c]
mov al, cl
mov dword [esp + 0x1c], eax
mov ebx, edx
xor esi, esi
jmp 0x101600e0
test ecx, ecx
jle 0x1016001e
lea eax, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor edi, edi
dec edi
mov dword [esp + 0x14], edi
movzx edi, byte [ebx]
mov edx, 0xff
shl edx, cl
shl edi, cl
not edx
and edx, dword [esp + 0x14]
or edi, edx
inc ebx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1015ffea
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x10160021
xor edi, edi
dec edi
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
setne al
add eax, 7
mov edx, edi
and edx, ecx
mov dword [esp + 0x14], edx
xor ebx, ebx
cmp edx, ecx
mov esi, 0xff
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 8
and edx, esi
mov ebx, edx
shl ebx, cl
mov dword [esp + 0x18], ebx
add eax, 8
xor ebx, ebx
cmp edx, esi
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 0x10
and edx, esi
mov esi, edi
mov edi, edx
shl edi, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or edi, dword [esp + 0x18]
or edi, dword [esp + 0x14]
shr esi, 0x18
lea ecx, [eax + 8]
mov edx, esi
shl edx, cl
or edi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x14], edx
xor edx, edx
mov ebx, 0xff
cmp esi, ebx
sete dl
mov dword [esp + 0x1c], edx
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or dword [esp + 0x24], edx
or edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
add eax, ecx
add eax, 0x10
mov dword [esp + 0xc], eax
xor esi, esi
mov ebx, edi
mov dword [esp + 0x38], edi
mov eax, dword [esp + 0x60]
mov edx, eax
movsx eax, dx
sar eax, 0xf
mov ecx, dword [esp + 0x30]
add ecx, eax
mov eax, dword [esp + 0x24]
shrd ebx, eax, cl
shr eax, cl
test cl, 0x20
cmovne ebx, eax
cmovne eax, esi
mov dword [esp + 0x24], eax
xor eax, eax
dec eax
shl eax, cl
shr edx, 0xb
and edx, 1
shl edx, cl
sub dword [esp + 0xc], ecx
not eax
mov esi, dword [esp + 0x38]
and eax, esi
or edx, eax
or edx, 1
lea eax, [edx + 2]
bsr ecx, edx
xor ecx, 0x1f
mov dl, 0xa0
sub dl, cl
mov ecx, dword [esp + 0x78]
shl eax, cl
mov ecx, esi
shl ecx, 0x1f
or eax, ecx
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x10]
mov dword [esi + ecx*4 + 0xc], eax
mov eax, dword [esp + 0x20]
mov byte [eax], dl
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x28]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0xc4]
xor dword [esp + 0x108], 0x10
add esi, 0x10
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xf4]
cmp esi, ecx
mov ecx, esi
jl 0x1015db71
jmp 0x101605f1
test ebx, ebx
jle 0x101601d2
mov dword [esp + 0xb8], 0
cmp ebx, 1
je 0x101601de
inc ebx
xor ecx, ecx
xor eax, eax
dec eax
mov edi, dword [esp + 0x58]
mov esi, 0xff
shl esi, cl
not esi
and esi, eax
movzx edx, byte [edi]
inc edi
shl edx, cl
or edx, esi
add ecx, 8
dec ebx
mov eax, edx
cmp ebx, 2
ja 0x101601b2
jmp 0x101601e7
mov dword [esp + 0xb8], ebx
xor eax, eax
dec eax
jmp 0x10160201
xor ecx, ecx
xor edx, edx
dec edx
mov edi, dword [esp + 0x58]
movzx eax, byte [edi]
or eax, 0xf
mov esi, 0xff
shl esi, cl
shl eax, cl
not esi
and esi, edx
or eax, esi
inc edi
mov dword [esp + 0x58], edi
mov edi, eax
mov ecx, 0xff
and edi, ecx
xor edx, edx
cmp edi, ecx
sete dl
mov esi, dword [esp + 0xe8]
add esi, edx
mov cl, 8
sub cl, dl
shl edi, cl
mov ecx, eax
shr ecx, 8
mov edx, 0xff
and ecx, edx
or edi, ecx
xor ebx, ebx
cmp ecx, edx
sete bl
mov cl, 8
sub cl, bl
add ebx, esi
shl edi, cl
mov ecx, eax
shr ecx, 0x10
mov esi, 0xff
and ecx, esi
or edi, ecx
xor edx, edx
cmp ecx, esi
sete dl
mov cl, 8
sub cl, dl
shl edi, cl
add edx, ebx
mov ebx, edi
shr eax, 0x18
or ebx, eax
xor ecx, ecx
cmp eax, esi
sete cl
mov dword [esp + 0xe8], ecx
mov ecx, edx
mov eax, dword [esp + 0x50]
sub ecx, eax
add cl, 0x20
xor esi, esi
shld esi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne esi, ebx
mov ecx, 0
cmovne ebx, ecx
sub eax, edx
or esi, dword [esp + 0x34]
mov dword [esp + 0x38], esi
or ebx, dword [esp + 0x48]
add eax, 0x20
mov dword [esp + 0x50], eax
cmp eax, 6
mov eax, dword [esp + 0x54]
jl 0x1016041f
mov dword [esp + 0x30], 0
xor ecx, ecx
dec ecx
cmp ecx, 7
je 0x10160418
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x9c]
mov eax, dword [edx*4 + 0x10319acc]
mov edi, dword [esp + 0x38]
test edi, edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edi
js 0x1016032a
mov cl, 0x3f
sub cl, al
mov esi, ebx
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, esi
xor esi, esi
dec esi
mov ecx, eax
shl esi, cl
not esi
and esi, edi
cmp edx, 2
lea ecx, [edx - 1]
mov edx, 0
cmovl ecx, edx
inc eax
mov dword [esp + 0x3c], eax
sub dword [esp + 0x50], eax
lea ebx, [esi*2 + 1]
mov dword [esp + 0x9c], ecx
jmp 0x10160355
xor ebx, ebx
dec ebx
mov ecx, eax
shl ebx, cl
not ebx
cmp edx, 0xb
lea ecx, [edx + 1]
mov eax, 0xc
cmovge ecx, eax
dec dword [esp + 0x50]
add ebx, ebx
mov dword [esp + 0x9c], ecx
xor eax, eax
inc eax
mov dword [esp + 0x3c], eax
mov esi, ebx
sar esi, 0x1f
mov edi, ebx
mov edx, dword [esp + 0x30]
mov ecx, edx
shl edi, cl
test dl, 0x20
mov eax, edi
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x48], eax
mov ecx, edx
shld esi, ebx, cl
test dl, 0x20
cmovne esi, edi
mov ebx, 0x3f
shl ebx, cl
test dl, 0x20
mov ecx, ebx
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x5c], ecx
xor edi, edi
mov ecx, edx
mov eax, 0x3f
shld edi, eax, cl
test dl, 0x20
cmovne edi, ebx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov dword [esp + 0x38], eax
mov eax, 0
cmovne ebx, eax
not edi
mov ecx, dword [esp + 0x90]
and ecx, edi
or ecx, esi
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x5c]
not eax
mov ecx, dword [esp + 0xc8]
and ecx, eax
or ecx, dword [esp + 0x48]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x44]
inc ecx
add edx, 7
mov dword [esp + 0x30], edx
cmp dword [esp + 0x50], 5
mov eax, dword [esp + 0x54]
jg 0x101602bc
jmp 0x10160422
mov ecx, 7
jmp 0x10160422
xor ecx, ecx
dec ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], ecx
mov esi, ebx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0xc8]
mov edx, ecx
mov eax, dword [esp + 0x90]
shrd ecx, eax, 7
mov dword [esp + 0xc8], ecx
shr eax, 7
mov dword [esp + 0x90], eax
and edx, 0x7f
mov dword [esp + 0x5c], edx
mov edi, dword [esp + 0xf4]
mov eax, edi
and eax, 7
movzx edx, byte [eax + 0x10319b00]
mov ecx, edx
and ecx, 3
shr edi, cl
cmp dword [esp + 0xc4], 0xffffffff
je 0x10160549
mov ebx, edi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc4], eax
mov dword [esp + 0x48], esi
mov edi, edx
shr edi, 5
inc edi
cmp ecx, 3
jne 0x101604e2
shr edx, 2
and edx, 7
xor esi, esi
dec esi
mov ecx, edx
shl esi, cl
mov eax, ebx
shr ebx, 1
not esi
and esi, ebx
add esi, edi
and eax, 1
or eax, 2
mov dword [esp + 0x30], eax
lea ecx, [edx + 4]
mov ebx, dword [esp + 0xc4]
jmp 0x1015e78f
mov dword [esp + 0x30], ecx
mov eax, ebx
and eax, 7
movzx eax, byte [eax + 0x10319b00]
mov dword [esp + 0x38], eax
and eax, 3
mov ecx, eax
shr ebx, cl
shr edx, 2
and edx, 7
xor esi, esi
dec esi
mov ecx, edx
shl esi, cl
add edx, dword [esp + 0x30]
add edx, eax
not esi
and esi, ebx
shr ebx, cl
mov ecx, dword [esp + 0x38]
shr ecx, 2
and ecx, 7
xor eax, eax
dec eax
shl eax, cl
add esi, edi
add edx, ecx
not eax
and eax, ebx
mov ecx, dword [esp + 0x38]
shr ecx, 5
add eax, ecx
inc eax
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0xc4]
mov ecx, edx
jmp 0x1015e78f
mov dword [esp + 0x48], esi
mov dword [esp + 0x30], ecx
mov eax, edi
and eax, 7
movzx ebx, byte [eax + 0x10319b00]
mov ecx, ebx
and ecx, 3
mov dword [esp + 0x38], ecx
shr edi, cl
mov eax, edx
shr eax, 2
and eax, 7
xor esi, esi
dec esi
mov ecx, eax
shl esi, cl
add eax, dword [esp + 0x30]
not esi
and esi, edi
shr edi, cl
shr edx, 5
add esi, edx
add esi, 3
add eax, dword [esp + 0x38]
mov ecx, ebx
shr ecx, 2
and ecx, 7
add eax, ecx
xor edx, edx
dec edx
shl edx, cl
mov ecx, eax
not edx
and edx, edi
shr ebx, 5
lea eax, [ebx + edx]
add eax, 3
mov dword [esp + 0x30], eax
jmp 0x1015e78b
mov ecx, dword [esp + 0xcc]
lea eax, [ecx - 1]
mov dword [esp + 0x78], eax
mov dword [esp + 0x108], 0
mov ebx, dword [esp + 0x18]
jmp 0x101605ff
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x10164e91
push esi
call fcn.1000a450
add esp, 4
push str.Malformed_HT_codeblock._Decoding_this_codeblock_is_stopped._U_q_is_larger_than_zero_bitplanes__1__n
jmp 0x1015cb27
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0xcc]
add cl, 0xfe
xor eax, eax
inc eax
shl eax, cl
mov dword [esp + 0x3c], eax
mov eax, 3
shl eax, cl
mov dword [esp + 0x38], eax
xor eax, eax
mov cl, byte [esp + 0xf0]
mov al, cl
neg eax
mov dword [esp + 0x98], eax
cmp dword [esp + 0xf8], 3
jl 0x10163e5a
mov dword [esp + 0x18], ebx
mov dword [esp + 0xbc], edx
mov edi, dword [esp + 0x40]
lea eax, [edi + 7]
shr eax, 3
lea eax, [eax*4 + 4]
mov dword [esp + 0x154], eax
mov edx, dword [esp + 0x114]
lea ecx, [edx*4]
mov esi, dword [esp + 0x130]
lea eax, [esi*4]
lea ebx, [edx*8]
lea edx, [esi*8]
sub ebx, edx
lea edx, [ecx + ecx*2]
mov esi, ecx
sub esi, eax
mov ecx, dword [esp + 0x84]
add esi, ecx
mov dword [esp + 0x158], esi
lea eax, [eax + eax*2]
sub edx, eax
lea eax, [edi*4]
mov dword [esp + 0x13c], eax
add ebx, ecx
mov dword [esp + 0x144], ebx
add edx, ecx
mov dword [esp + 0x140], edx
lea eax, [ecx + edi*4]
mov dword [esp + 0x150], eax
mov eax, 2
mov edx, dword [esp + 0x118]
mov ebx, eax
mov eax, dword [esp + 0x108]
and eax, 0xffffffef
xor eax, 2
mov dword [esp + 0x108], eax
mov al, byte [edx]
mov byte [edx], 0
mov esi, edx
mov edx, dword [esp + 0x40]
test edx, edx
mov dword [esp + 0x100], ebx
jle 0x10162ea6
mov byte [esp + 0xc4], al
mov eax, ebx
imul eax, edx
lea eax, [ecx + eax*4]
mov dword [esp + 0x60], eax
test bl, 4
mov eax, dword [esp + 0xfc]
cmove eax, dword [esp + 0xc0]
mov dword [esp + 0xe4], eax
lea eax, [ebx + 2]
mov dword [esp + 0x110], eax
xor ebx, ebx
mov dword [esp + 0x14], esi
xor eax, eax
mov edx, dword [esp + 0x80]
movzx edi, byte [esp + 0xc4]
mov esi, eax
mov eax, edi
shr eax, 7
or eax, ebx
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + 1]
shr ecx, 5
and ecx, 4
or ecx, eax
mov dword [esp + 0x30], esi
cmp edx, 0x20
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc4], edi
jae 0x101607ba
mov dword [esp + 0x20], ecx
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0xd4]
cmp ecx, 4
jl 0x101607c9
mov eax, dword [esp + 0xb0]
mov edi, dword [eax - 3]
add eax, 0xfffffffc
mov dword [esp + 0xb0], eax
add ecx, 0xfffffffc
mov dword [esp + 0xd4], ecx
jmp 0x10160813
mov dword [esp + 0x48], eax
mov edi, dword [esp + 0x74]
mov esi, edi
jmp 0x10160ac7
test ecx, ecx
mov ebx, dword [esp + 0xb0]
jle 0x10160811
mov eax, ecx
neg eax
mov dword [esp + 0x10], eax
inc ecx
mov eax, ecx
mov ecx, 0x18
xor edi, edi
mov esi, ebx
movzx edx, byte [esi]
shl edx, cl
or edi, edx
dec esi
add ecx, 0xfffffff8
dec eax
cmp eax, 1
ja 0x101607e8
add ebx, dword [esp + 0x10]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xd4], 0
jmp 0x10160813
xor edi, edi
mov eax, edi
shr eax, 0x18
cmp dword [esp + 0xbc], 0
setne cl
mov edx, edi
not edx
test edx, 0x7f000000
mov ebx, edx
mov dword [esp + 0x10], edx
sete dl
and dl, cl
movzx edx, dl
mov ecx, 8
sub ecx, edx
cmp edi, 0x90000000
setae byte [esp + 0x28]
mov edx, edi
shr edx, 0x10
mov esi, 0xff
and edx, esi
mov esi, edx
shl esi, cl
or esi, eax
test ebx, 0x7f0000
sete al
and al, byte [esp + 0x28]
movzx eax, al
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov eax, 0x90
cmp edx, eax
setae ch
mov edx, edi
shr edx, 8
mov eax, 0xff
and edx, eax
mov eax, edx
mov cl, bl
shl eax, cl
or eax, esi
test dword [esp + 0x10], 0x7f00
sete cl
and cl, ch
movzx ecx, cl
sub ebx, ecx
mov dword [esp + 0x28], ebx
mov ecx, 0x90
cmp edx, ecx
setae dl
mov ecx, 0xff
and edi, ecx
lea ecx, [ebx + 8]
mov esi, edi
shl esi, cl
or esi, eax
test byte [esp + 0x10], 0x7f
sete al
and al, dl
movzx eax, al
mov ecx, dword [esp + 0x80]
mov edx, ecx
sub edx, eax
mov eax, 0x90
cmp edi, eax
setae byte [esp + 0x10]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
mov ebx, dword [esp + 0x94]
or ebx, eax
or esi, dword [esp + 0x74]
mov eax, dword [esp + 0x28]
add eax, edx
add eax, 0x10
mov dword [esp + 0x80], eax
cmp eax, 0x1f
mov dword [esp + 0x94], ebx
ja 0x10160957
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0xd4]
cmp esi, 4
jl 0x10160974
mov eax, dword [esp + 0xb0]
mov ebx, dword [eax - 3]
add eax, 0xfffffffc
mov dword [esp + 0xb0], eax
add esi, 0xfffffffc
mov dword [esp + 0xd4], esi
jmp 0x101609ba
xor eax, eax
mov cl, byte [esp + 0x10]
mov al, cl
mov dword [esp + 0xbc], eax
mov edi, esi
mov edx, dword [esp + 0x80]
jmp 0x10160ac3
test esi, esi
jle 0x101609b8
mov eax, esi
neg eax
mov dword [esp + 0x10], eax
inc esi
mov ecx, 0x18
xor ebx, ebx
mov eax, dword [esp + 0xb0]
movzx edx, byte [eax]
shl edx, cl
or ebx, edx
dec eax
add ecx, 0xfffffff8
dec esi
cmp esi, 1
ja 0x1016098f
mov eax, dword [esp + 0x10]
add dword [esp + 0xb0], eax
mov dword [esp + 0xd4], 0
jmp 0x101609ba
xor ebx, ebx
mov eax, 0x90
cmp edi, eax
setae cl
mov eax, ebx
shr eax, 0x18
mov edx, ebx
not edx
mov dword [esp + 0x28], edx
test edx, 0x7f000000
sete dl
and dl, cl
movzx edx, dl
mov ecx, 8
sub ecx, edx
cmp ebx, 0x90000000
setae byte [esp + 0x10]
mov edx, ebx
shr edx, 0x10
mov esi, 0xff
and edx, esi
mov edi, edx
shl edi, cl
or edi, eax
test dword [esp + 0x28], 0x7f0000
sete al
and al, byte [esp + 0x10]
movzx eax, al
neg eax
add eax, ecx
add eax, 8
mov dword [esp + 0x10], eax
mov eax, 0x90
cmp edx, eax
setae byte [esp + 0x74]
mov edx, ebx
shr edx, 8
and edx, esi
mov eax, edx
mov ecx, dword [esp + 0x10]
shl eax, cl
or eax, edi
test dword [esp + 0x28], 0x7f00
sete cl
and cl, byte [esp + 0x74]
movzx ecx, cl
sub dword [esp + 0x10], ecx
mov ecx, 0x90
cmp edx, ecx
setae dl
and ebx, esi
mov ecx, dword [esp + 0x10]
add ecx, 8
mov edi, ebx
shl edi, cl
or edi, eax
test byte [esp + 0x28], 0x7f
sete al
and al, dl
movzx edx, al
mov ecx, dword [esp + 0x80]
mov eax, ecx
sub eax, edx
xor edx, edx
mov esi, 0x90
cmp ebx, esi
setae dl
mov dword [esp + 0xbc], edx
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or dword [esp + 0x94], edx
or edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
lea edx, [ecx + eax]
add edx, 0x10
mov esi, edi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x80], edx
and esi, 0x7f
mov eax, ecx
shl eax, 8
movzx ebx, word [eax + esi*2 + 0x1031926e]
test ecx, ecx
mov dword [esp + 0x74], edi
jne 0x10160b58
mov ecx, dword [esp + 0x5c]
lea eax, [ecx - 2]
cmp eax, 0xffffffff
mov edx, 0
cmovne ebx, edx
cmp ecx, 1
mov esi, dword [esp + 0x48]
jg 0x10160b54
cmp dword [esp + 0x44], 0
je 0x10160c64
mov edi, ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x48], esi
mov ecx, dword [esp + 0x90]
mov eax, ecx
mov edx, dword [esp + 0xc8]
shld eax, edx, 0x19
and edx, 0x7f
mov dword [esp + 0x5c], edx
shr ecx, 7
mov dword [esp + 0x90], ecx
dec dword [esp + 0x44]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xac], ebx
mov ebx, edi
jmp 0x10160b58
mov dword [esp + 0x5c], eax
mov eax, ebx
and eax, 0x40
mov dword [esp + 0xf0], eax
shr eax, 5
mov esi, ebx
and esi, 0x80
mov dword [esp + 0xcc], esi
shr esi, 6
or esi, eax
mov eax, ebx
shr eax, 4
and eax, 3
mov edi, ebx
shr ebx, 2
and ebx, 0x30
or ebx, eax
mov eax, edi
and eax, 7
mov ecx, eax
mov edx, dword [esp + 0x94]
shrd dword [esp + 0x74], edx, cl
shr edx, cl
mov dword [esp + 0x94], edx
mov ecx, dword [esp + 0x108]
shl ebx, cl
mov ecx, dword [esp + 0x80]
sub ecx, eax
mov eax, dword [esp + 0xe4]
or ebx, dword [eax]
mov dword [esp + 0x20], ebx
mov dword [eax], ebx
mov eax, dword [esp + 0x30]
or eax, 2
xor edx, edx
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x10], edi
mov dword [esp + 0x80], ecx
jge 0x10160c47
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 1]
shr eax, 7
movzx ecx, byte [ecx + 2]
shr ecx, 5
and ecx, 4
or ecx, eax
or esi, ecx
mov edi, dword [esp + 0x74]
mov eax, edi
and eax, 0x7f
mov ecx, esi
shl ecx, 8
mov edx, esi
movzx esi, word [ecx + eax*2 + 0x1031926e]
test edx, edx
jne 0x101612ac
mov ecx, dword [esp + 0x5c]
lea eax, [ecx - 2]
cmp eax, 0xffffffff
mov edx, 0
cmovne esi, edx
cmp ecx, 1
jg 0x10160c5b
cmp dword [esp + 0x44], 0
je 0x10160c94
mov ebx, dword [esp + 0xac]
jmp 0x10161275
mov ebx, edi
mov dword [esp + 0xb8], esi
xor esi, esi
mov edi, dword [esp + 0x74]
jmp 0x101612eb
mov dword [esp + 0x5c], eax
jmp 0x101612ac
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x50], 5
mov ebx, dword [esp + 0xac]
jg 0x10160ccd
cmp ebx, 5
mov eax, dword [esp + 0x58]
jl 0x10160cd8
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x58], eax
add ebx, 0xfffffffc
mov dword [esp + 0x2c], ebx
jmp 0x10160dab
cmp dword [esp + 0x50], 5
mov eax, dword [esp + 0xac]
mov dword [esp + 0x2c], esi
jg 0x10160d1b
cmp eax, 5
jl 0x10160d2f
mov ecx, eax
mov eax, dword [esp + 0x58]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x58], eax
add ecx, 0xfffffffc
mov dword [esp + 0xb8], ecx
jmp 0x10161024
mov edx, esi
mov edi, dword [esp + 0x34]
jmp 0x10160e5c
test ebx, ebx
jle 0x10160d7f
mov dword [esp + 0x2c], 0
cmp ebx, 1
je 0x10160d88
inc ebx
xor ecx, ecx
xor eax, eax
dec eax
mov edi, dword [esp + 0x58]
mov esi, 0xff
shl esi, cl
not esi
and esi, eax
movzx edx, byte [edi]
inc edi
shl edx, cl
or edx, esi
add ecx, 8
dec ebx
mov eax, edx
cmp ebx, 2
ja 0x10160cfb
jmp 0x10160d91
mov dword [esp + 0xb8], eax
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
jmp 0x101610d3
test eax, eax
jle 0x10160ff5
mov dword [esp + 0xb8], 0
cmp eax, 1
je 0x10161001
mov ebx, dword [esp + 0xac]
inc ebx
xor ecx, ecx
xor eax, eax
dec eax
mov edi, dword [esp + 0x58]
mov esi, 0xff
shl esi, cl
not esi
and esi, eax
movzx edx, byte [edi]
inc edi
shl edx, cl
or edx, esi
add ecx, 8
dec ebx
mov eax, edx
cmp ebx, 2
ja 0x10160d5c
jmp 0x1016100a
mov dword [esp + 0x2c], ebx
xor esi, esi
dec esi
jmp 0x10160dab
xor ecx, ecx
xor edx, edx
dec edx
mov edi, dword [esp + 0x58]
movzx esi, byte [edi]
or esi, 0xf
mov eax, 0xff
shl eax, cl
shl esi, cl
not eax
and eax, edx
or esi, eax
inc edi
mov dword [esp + 0x58], edi
mov edx, esi
mov ecx, 0xff
and edx, ecx
xor eax, eax
cmp edx, ecx
sete al
mov edi, dword [esp + 0xe8]
add edi, eax
mov cl, 8
sub cl, al
shl edx, cl
mov eax, esi
shr eax, 8
mov ecx, 0xff
and eax, ecx
or edx, eax
xor ebx, ebx
cmp eax, ecx
sete bl
mov cl, 8
sub cl, bl
mov eax, ebx
add eax, edi
shl edx, cl
mov ecx, esi
shr ecx, 0x10
mov edi, 0xff
and ecx, edi
or edx, ecx
xor ebx, ebx
cmp ecx, edi
sete bl
mov cl, 8
sub cl, bl
shl edx, cl
add ebx, eax
shr esi, 0x18
or edx, esi
xor eax, eax
cmp esi, edi
sete al
mov dword [esp + 0xe8], eax
mov ecx, ebx
mov eax, dword [esp + 0x50]
sub ecx, eax
add cl, 0x20
xor edi, edi
shld edi, edx, cl
shl edx, cl
xor esi, esi
test cl, 0x20
cmovne edi, edx
mov dword [esp + 0x44], 0
cmovne edx, esi
sub eax, ebx
or edi, dword [esp + 0x34]
or edx, dword [esp + 0x48]
add eax, 0x20
mov dword [esp + 0x50], eax
cmp eax, 6
mov ebx, dword [esp + 0x2c]
jl 0x10160fe6
mov dword [esp + 0x20], 0
mov esi, edx
mov dword [esp + 0x34], edi
xor ecx, ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
cmp ecx, 8
je 0x10160fd9
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x9c]
mov eax, dword [edx*4 + 0x10319acc]
mov edi, dword [esp + 0x34]
test edi, edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x34], edi
js 0x10160ee0
mov cl, 0x3f
sub cl, al
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, esi
xor esi, esi
dec esi
mov ecx, eax
shl esi, cl
not esi
and esi, edi
cmp edx, 2
lea ecx, [edx - 1]
mov edx, 0
cmovl ecx, edx
inc eax
mov dword [esp + 0x28], eax
sub dword [esp + 0x50], eax
lea esi, [esi*2 + 1]
mov dword [esp + 0x9c], ecx
jmp 0x10160f0b
xor esi, esi
dec esi
mov ecx, eax
shl esi, cl
not esi
cmp edx, 0xb
lea ecx, [edx + 1]
mov eax, 0xc
cmovge ecx, eax
dec dword [esp + 0x50]
add esi, esi
mov dword [esp + 0x9c], ecx
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
mov edi, esi
sar edi, 0x1f
mov ebx, esi
mov edx, dword [esp + 0x20]
mov ecx, edx
shl ebx, cl
test dl, 0x20
mov eax, ebx
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x4c], eax
mov ecx, edx
shld edi, esi, cl
test dl, 0x20
cmovne edi, ebx
mov esi, 0x3f
shl esi, cl
test dl, 0x20
mov ecx, esi
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x5c], ecx
xor ebx, ebx
mov ecx, edx
mov eax, 0x3f
shld ebx, eax, cl
test dl, 0x20
cmovne ebx, esi
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov dword [esp + 0x34], eax
mov eax, 0
cmovne esi, eax
not ebx
mov ecx, dword [esp + 0x90]
and ecx, ebx
or ecx, edi
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x5c]
not eax
mov ecx, dword [esp + 0xc8]
and ecx, eax
or ecx, dword [esp + 0x4c]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x44]
inc ecx
add edx, 7
mov dword [esp + 0x20], edx
cmp dword [esp + 0x50], 5
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
jg 0x10160e74
mov dword [esp + 0x44], ecx
jmp 0x10160b15
mov dword [esp + 0x44], 8
jmp 0x10160b15
mov esi, edx
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x10]
jmp 0x10160b15
mov dword [esp + 0xb8], eax
xor esi, esi
dec esi
jmp 0x10161024
xor ecx, ecx
xor edx, edx
dec edx
mov edi, dword [esp + 0x58]
movzx esi, byte [edi]
or esi, 0xf
mov eax, 0xff
shl eax, cl
shl esi, cl
not eax
and eax, edx
or esi, eax
inc edi
mov dword [esp + 0x58], edi
mov edx, esi
mov ecx, 0xff
and edx, ecx
xor eax, eax
cmp edx, ecx
sete al
mov edi, dword [esp + 0xe8]
add edi, eax
mov cl, 8
sub cl, al
shl edx, cl
mov eax, esi
shr eax, 8
mov ecx, 0xff
and eax, ecx
or edx, eax
xor ebx, ebx
cmp eax, ecx
sete bl
mov cl, 8
sub cl, bl
add ebx, edi
shl edx, cl
mov ecx, esi
shr ecx, 0x10
mov edi, 0xff
and ecx, edi
or edx, ecx
xor eax, eax
cmp ecx, edi
sete al
mov cl, 8
sub cl, al
shl edx, cl
add eax, ebx
shr esi, 0x18
or edx, esi
xor ecx, ecx
cmp esi, edi
sete cl
mov dword [esp + 0xe8], ecx
mov ecx, eax
mov esi, dword [esp + 0x50]
sub ecx, esi
add cl, 0x20
xor ebx, ebx
shld ebx, edx, cl
shl edx, cl
xor edi, edi
test cl, 0x20
cmovne ebx, edx
mov dword [esp + 0x44], 0
cmovne edx, edi
sub esi, eax
or ebx, dword [esp + 0x34]
or edx, dword [esp + 0x48]
add esi, 0x20
mov dword [esp + 0x50], esi
cmp esi, 6
mov edi, dword [esp + 0x74]
jl 0x10161262
mov dword [esp + 0x28], 0
mov eax, edx
mov dword [esp + 0x34], ebx
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x74], edi
mov dword [esp + 0x44], ecx
cmp ecx, 8
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x48], eax
je 0x10161254
mov ecx, dword [ebx*4 + 0x10319acc]
mov edi, dword [esp + 0x34]
test edi, edi
mov dword [esp + 0x34], edi
js 0x1016115f
mov dword [esp + 0x50], edx
mov edx, ecx
mov cl, 0x3f
sub cl, dl
mov esi, eax
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
cmove edi, esi
xor esi, esi
dec esi
mov ecx, edx
shl esi, cl
not esi
and esi, edi
cmp ebx, 2
lea ecx, [ebx - 1]
mov eax, 0
cmovl ecx, eax
inc edx
mov dword [esp + 0x4c], edx
sub dword [esp + 0x50], edx
lea esi, [esi*2 + 1]
mov dword [esp + 0x9c], ecx
jmp 0x1016118b
xor esi, esi
dec esi
shl esi, cl
not esi
cmp ebx, 0xb
lea ecx, [ebx + 1]
mov eax, 0xc
cmovge ecx, eax
dec edx
mov dword [esp + 0x50], edx
add esi, esi
mov dword [esp + 0x9c], ecx
xor eax, eax
inc eax
mov dword [esp + 0x4c], eax
xor eax, eax
mov ebx, esi
sar ebx, 0x1f
mov edi, esi
mov edx, dword [esp + 0x28]
mov ecx, edx
shl edi, cl
test dl, 0x20
mov ecx, edi
cmovne ecx, eax
mov dword [esp + 0x5c], ecx
mov ecx, edx
shld ebx, esi, cl
test dl, 0x20
cmovne ebx, edi
mov esi, 0x3f
shl esi, cl
test dl, 0x20
mov ecx, esi
cmovne ecx, eax
mov dword [esp + 0xf4], ecx
xor edi, edi
mov ecx, edx
mov eax, 0x3f
shld edi, eax, cl
test dl, 0x20
cmovne edi, esi
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
shld esi, eax, cl
shl eax, cl
test cl, 0x20
cmovne esi, eax
mov dword [esp + 0x34], esi
mov ecx, 0
cmovne eax, ecx
not edi
mov ecx, dword [esp + 0x90]
and ecx, edi
or ecx, ebx
mov dword [esp + 0x90], ecx
mov esi, dword [esp + 0xf4]
not esi
mov ecx, dword [esp + 0xc8]
and ecx, esi
or ecx, dword [esp + 0x5c]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x44]
inc ecx
add edx, 7
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x50]
cmp edx, 5
mov edi, dword [esp + 0x74]
jg 0x101610eb
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], ecx
jmp 0x1016126a
mov dword [esp + 0x50], edx
mov dword [esp + 0x44], 8
jmp 0x1016126a
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], ebx
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x90]
mov eax, ecx
mov edx, dword [esp + 0xc8]
shld eax, edx, 0x19
and edx, 0x7f
mov dword [esp + 0x5c], edx
shr ecx, 7
mov dword [esp + 0x90], ecx
dec dword [esp + 0x44]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xac], ebx
mov eax, esi
shr eax, 5
mov ebx, esi
shr ebx, 6
mov ecx, esi
and ecx, 7
mov edx, dword [esp + 0x94]
shrd edi, edx, cl
shr edx, cl
mov dword [esp + 0x94], edx
or ebx, eax
and ebx, 2
mov dword [esp + 0xb8], ebx
sub dword [esp + 0x80], ecx
mov dword [esp + 0x74], edi
xor edx, edx
mov ebx, dword [esp + 0x10]
mov eax, esi
and eax, 0x30
mov ecx, esi
and ecx, 0xc0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x108]
add cl, 4
shl eax, cl
or eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe4]
mov dword [ecx], eax
mov ecx, ebx
shr ecx, 3
and ecx, 1
mov dword [esp + 0x2c], esi
mov eax, esi
shr eax, 2
and eax, 2
or eax, ecx
mov ecx, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x48]
je 0x101613f8
mov ecx, edi
and ecx, 7
movzx esi, byte [ecx + 0x10319b00]
mov ebx, esi
and ebx, 3
mov ecx, ebx
shr edi, cl
cmp eax, 3
jne 0x101613c2
mov eax, edi
and eax, 7
movzx eax, byte [eax + 0x10319b00]
mov dword [esp + 0x28], eax
mov ecx, eax
and ecx, 3
mov dword [esp + 0x4c], ecx
shr edi, cl
mov edx, esi
shr edx, 2
and edx, 7
xor eax, eax
dec eax
mov ecx, edx
shl eax, cl
add edx, ebx
shr esi, 5
not eax
and eax, edi
shr edi, cl
add eax, esi
inc eax
mov dword [esp + 0x20], eax
add edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x28]
mov ecx, esi
shr ecx, 2
and ecx, 7
add edx, ecx
xor eax, eax
dec eax
shl eax, cl
not eax
and eax, edi
shr esi, 5
add eax, esi
inc eax
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x48]
jmp 0x101613f8
mov ecx, esi
shr ecx, 2
and ecx, 7
xor edx, edx
dec edx
shl edx, cl
add ebx, ecx
not edx
and edi, edx
shr esi, 5
cmp eax, 1
lea edx, [esi + edi + 1]
mov ecx, 1
cmove ecx, edx
mov dword [esp + 0x20], ecx
cmove edx, eax
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0x48]
mov edx, ebx
mov ecx, edx
mov eax, dword [esp + 0x94]
mov ebx, edx
mov edx, dword [esp + 0x74]
shrd edx, eax, cl
mov ecx, ebx
shr eax, cl
mov dword [esp + 0xf4], ebx
test bl, 0x20
cmovne edx, eax
mov dword [esp + 0x74], edx
mov edx, 0
cmovne eax, edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x10]
and eax, 0xf0
lea ecx, [eax - 1]
test eax, ecx
je 0x10161466
mov edi, esi
mov esi, dword [esp + 0xc4]
and esi, 0x7f
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + 1]
and ecx, 0x7f
cmp esi, ecx
cmova ecx, esi
mov esi, edi
sub ecx, 2
cmovb ecx, edx
add dword [esp + 0x20], ecx
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x2c]
and edx, 0xf0
lea ecx, [edx - 1]
test edx, ecx
mov dword [esp + 0x48], esi
je 0x101614af
mov esi, dword [esp + 0x14]
mov cl, byte [esi + 1]
mov ch, byte [esi + 2]
and cl, 0x7f
and ch, 0x7f
movzx esi, cl
cmp cl, ch
movzx ecx, ch
cmova ecx, esi
movzx esi, cl
add esi, 0xfffffffe
cmp cl, 3
mov ecx, 0
cmovb esi, ecx
add dword [esp + 0x28], esi
cmp dword [esp + 0x20], edi
ja 0x10164e6d
cmp dword [esp + 0x28], edi
ja 0x10164e6d
mov ecx, dword [esp + 0x30]
lea ebx, [ecx + 4]
mov ecx, ebx
mov edi, dword [esp + 0x40]
sub ecx, edi
add ecx, ecx
mov esi, 0xff
shr esi, cl
mov dword [esp + 0x10c], ebx
cmp ebx, edi
mov ecx, 0xff
cmovle esi, ecx
mov edi, esi
and edi, 0x55
mov ecx, dword [esp + 0x110]
cmp ecx, dword [esp + 0xf8]
cmovle edi, esi
mov ecx, dword [esp + 0x14]
mov bl, byte [ecx + 2]
mov byte [esp + 0xc4], bl
mov word [ecx + 1], 0
shr eax, 4
or edx, eax
mov dword [esp + 0x4c], edi
mov eax, edi
not eax
test edx, eax
jne 0x10163e3c
mov ebx, dword [esp + 0x10]
test bl, 0x10
jne 0x1016154d
xor esi, esi
test byte [esp + 0x4c], 1
mov ecx, dword [esp + 0x84]
jne 0x1016184a
jmp 0x10161850
cmp dword [esp + 0xc], 0x20
mov ebx, dword [esp + 0x18]
jae 0x10161577
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x10161582
mov eax, dword [esp + 4]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x101615c5
mov edi, ebx
mov eax, dword [esp + 0x24]
jmp 0x101617e8
test ecx, ecx
jle 0x101615c2
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 4]
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x10161592
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x101615c5
xor esi, esi
dec esi
cmp dword [esp + 0x1c], 1
mov ecx, 0
adc ecx, 7
mov edi, esi
mov edx, 0xff
and edi, edx
mov dword [esp + 0xd8], edi
xor eax, eax
cmp edi, edx
sete al
mov ebx, esi
shr ebx, 8
and ebx, edx
neg eax
lea edi, [ecx + eax]
add edi, 8
mov edx, ebx
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp ebx, ecx
sete al
mov ebx, edi
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, esi
shr eax, 0x10
mov edi, 0xff
and eax, edi
mov ebx, eax
shl ebx, cl
xor ecx, ecx
cmp eax, edi
sete cl
mov eax, ecx
or ebx, edx
or ebx, dword [esp + 0xd8]
shr esi, 0x18
mov ecx, dword [esp + 0x1c]
add ecx, 8
mov edx, esi
shl edx, cl
or ebx, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, eax
mov eax, 0xff
cmp esi, eax
sete byte [esp + 0xd8]
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov edx, dword [esp + 0x24]
or edx, eax
mov eax, edx
mov edx, ebx
or edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add ecx, edi
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
ja 0x101616ba
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x128], edx
jl 0x101616d2
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x1016171f
xor ecx, ecx
mov bl, byte [esp + 0xd8]
mov cl, bl
mov dword [esp + 0x1c], ecx
mov ebx, edx
mov edi, edx
jmp 0x101617e8
test ecx, ecx
jle 0x1016171c
mov dword [esp + 0x18], esi
lea edx, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor esi, esi
dec esi
movzx eax, byte [ebx]
mov edi, 0xff
shl edi, cl
shl eax, cl
not edi
and edi, esi
mov esi, eax
or esi, edi
inc ebx
add ecx, 8
dec edx
cmp edx, 1
ja 0x101616e6
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ebx, esi
mov esi, dword [esp + 0x18]
jmp 0x1016171f
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
setne dl
add edx, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, ecx
mov esi, 0xff
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 8
and edi, esi
mov esi, edi
shl esi, cl
add edx, 8
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 0x10
mov eax, 0xff
and edi, eax
mov ebx, edi
shl ebx, cl
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov edi, eax
or ebx, esi
or ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
shr eax, 0x18
mov dword [esp + 0x18], eax
lea ecx, [edx + 8]
shl eax, cl
or ebx, eax
mov ecx, dword [esp + 0xc]
mov esi, ecx
sub esi, edi
xor eax, eax
mov edi, 0xff
cmp dword [esp + 0x18], edi
sete al
mov dword [esp + 0x1c], eax
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
or ebx, dword [esp + 0x128]
lea ecx, [edx + esi]
add ecx, 0x10
mov dword [esp + 0xc], ecx
mov edi, ebx
mov esi, dword [esp + 0x10]
mov edx, esi
shl edx, 0x13
sar edx, 0x1f
add edx, dword [esp + 0x20]
mov ecx, edx
shrd ebx, eax, cl
shr eax, cl
test dl, 0x20
cmovne ebx, eax
mov dword [esp + 0x18], ebx
mov ebx, esi
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x24], eax
xor eax, eax
dec eax
mov ecx, edx
shl eax, cl
not eax
shr esi, 8
and esi, 1
shl esi, cl
and eax, edi
or esi, eax
or esi, 1
add esi, 2
mov ecx, dword [esp + 0x78]
shl esi, cl
sub dword [esp + 0xc], edx
mov eax, edi
shl eax, 0x1f
or esi, eax
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x60]
mov dword [eax], esi
test bl, 0x20
jne 0x10161865
test byte [esp + 0x4c], 2
jne 0x10161893
mov ebx, dword [esp + 0x60]
jmp 0x10161b9b
cmp dword [esp + 0xc], 0x20
mov ebx, dword [esp + 0x18]
jae 0x101618a7
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x101618b2
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x101618f3
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
mov dword [ebx + eax*4], 0
jmp 0x10161b9b
mov edi, ebx
mov eax, dword [esp + 0x24]
jmp 0x10161b14
test eax, eax
jle 0x101618f0
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x101618bc
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x101618f3
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edi, esi
mov edx, 0xff
and edi, edx
mov dword [esp + 0xd8], edi
xor eax, eax
cmp edi, edx
sete al
mov ebx, esi
shr ebx, 8
and ebx, edx
neg eax
lea edi, [ecx + eax]
add edi, 8
mov edx, ebx
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp ebx, ecx
sete al
mov ebx, edi
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, esi
shr eax, 0x10
mov edi, 0xff
and eax, edi
mov ebx, eax
shl ebx, cl
xor ecx, ecx
cmp eax, edi
sete cl
mov eax, ecx
or ebx, edx
or ebx, dword [esp + 0xd8]
shr esi, 0x18
mov ecx, dword [esp + 0x1c]
add ecx, 8
mov edx, esi
shl edx, cl
or ebx, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, eax
mov eax, 0xff
cmp esi, eax
sete byte [esp + 0xd8]
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov edx, dword [esp + 0x24]
or edx, eax
mov eax, edx
mov edx, ebx
or edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add ecx, edi
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
ja 0x101619e6
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x128], edx
jl 0x101619fe
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x10161a4b
xor ecx, ecx
mov bl, byte [esp + 0xd8]
mov cl, bl
mov dword [esp + 0x1c], ecx
mov ebx, edx
mov edi, edx
jmp 0x10161b14
test ecx, ecx
jle 0x10161a48
mov dword [esp + 0x18], esi
lea edx, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor esi, esi
dec esi
movzx eax, byte [ebx]
mov edi, 0xff
shl edi, cl
shl eax, cl
not edi
and edi, esi
mov esi, eax
or esi, edi
inc ebx
add ecx, 8
dec edx
cmp edx, 1
ja 0x10161a12
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ebx, esi
mov esi, dword [esp + 0x18]
jmp 0x10161a4b
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
setne dl
add edx, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, ecx
mov esi, 0xff
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 8
and edi, esi
mov esi, edi
shl esi, cl
add edx, 8
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 0x10
mov eax, 0xff
and edi, eax
mov ebx, edi
shl ebx, cl
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov edi, eax
or ebx, esi
or ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
shr eax, 0x18
mov dword [esp + 0x18], eax
lea ecx, [edx + 8]
shl eax, cl
or ebx, eax
mov ecx, dword [esp + 0xc]
mov esi, ecx
sub esi, edi
xor eax, eax
mov edi, 0xff
cmp dword [esp + 0x18], edi
sete al
mov dword [esp + 0x1c], eax
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
or ebx, dword [esp + 0x128]
lea ecx, [edx + esi]
add ecx, 0x10
mov dword [esp + 0xc], ecx
mov edi, ebx
mov edx, dword [esp + 0x10]
mov ecx, edx
shl ecx, 0x12
sar ecx, 0x1f
add ecx, dword [esp + 0x20]
shrd ebx, eax, cl
shr eax, cl
test cl, 0x20
cmovne ebx, eax
mov dword [esp + 0x18], ebx
mov esi, edx
mov edx, 0
cmovne eax, edx
mov dword [esp + 0x24], eax
xor eax, eax
dec eax
shl eax, cl
sub dword [esp + 0xc], ecx
not eax
and eax, edi
mov edx, esi
shr edx, 9
and edx, 1
shl edx, cl
mov esi, edi
or edx, eax
or edx, 1
lea eax, [edx + 2]
mov ecx, dword [esp + 0x78]
shl eax, cl
shl esi, 0x1f
or eax, esi
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
mov dword [ebx + ecx*4], eax
mov esi, dword [esp + 0x14]
movzx ecx, byte [esi]
and ecx, 0x7f
bsr eax, edx
xor eax, 0xffffffe0
add eax, 0x21
cmp eax, ecx
cmovbe eax, ecx
or al, 0x80
mov byte [esi], al
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0xf0], 0
jne 0x10161bb7
xor esi, esi
test byte [esp + 0x4c], 4
jne 0x10161eb8
jmp 0x10161ebb
mov eax, dword [esp + 0xc]
cmp eax, 0x20
jae 0x10161be3
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x10161bf2
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x10161c33
mov ebx, dword [esp + 0x18]
mov edi, ebx
mov eax, dword [esp + 0x24]
jmp 0x10161e54
test eax, eax
jle 0x10161c30
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x10161bfc
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x10161c33
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edi, esi
mov edx, 0xff
and edi, edx
mov dword [esp + 0xf0], edi
xor eax, eax
cmp edi, edx
sete al
mov ebx, esi
shr ebx, 8
and ebx, edx
neg eax
lea edi, [ecx + eax]
add edi, 8
mov edx, ebx
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp ebx, ecx
sete al
mov ebx, edi
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, esi
shr eax, 0x10
mov edi, 0xff
and eax, edi
mov ebx, eax
shl ebx, cl
xor ecx, ecx
cmp eax, edi
sete cl
mov eax, ecx
or ebx, edx
or ebx, dword [esp + 0xf0]
shr esi, 0x18
mov ecx, dword [esp + 0x1c]
add ecx, 8
mov edx, esi
shl edx, cl
or ebx, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, eax
mov eax, 0xff
cmp esi, eax
sete byte [esp + 0xf0]
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov edx, dword [esp + 0x24]
or edx, eax
mov eax, edx
mov edx, ebx
or edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add ecx, edi
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
ja 0x10161d26
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xd8], edx
jl 0x10161d3e
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x10161d8b
xor ecx, ecx
mov bl, byte [esp + 0xf0]
mov cl, bl
mov dword [esp + 0x1c], ecx
mov ebx, edx
mov edi, edx
jmp 0x10161e54
test ecx, ecx
jle 0x10161d88
mov dword [esp + 0x18], esi
lea edx, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor esi, esi
dec esi
movzx eax, byte [ebx]
mov edi, 0xff
shl edi, cl
shl eax, cl
not edi
and edi, esi
mov esi, eax
or esi, edi
inc ebx
add ecx, 8
dec edx
cmp edx, 1
ja 0x10161d52
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ebx, esi
mov esi, dword [esp + 0x18]
jmp 0x10161d8b
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
setne dl
add edx, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, ecx
mov esi, 0xff
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 8
and edi, esi
mov esi, edi
shl esi, cl
add edx, 8
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 0x10
mov eax, 0xff
and edi, eax
mov ebx, edi
shl ebx, cl
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov edi, eax
or ebx, esi
or ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
shr eax, 0x18
mov dword [esp + 0x18], eax
lea ecx, [edx + 8]
shl eax, cl
or ebx, eax
mov ecx, dword [esp + 0xc]
mov esi, ecx
sub esi, edi
xor eax, eax
mov edi, 0xff
cmp dword [esp + 0x18], edi
sete al
mov dword [esp + 0x1c], eax
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x24]
or ecx, eax
mov eax, ecx
or ebx, dword [esp + 0xd8]
lea ecx, [edx + esi]
add ecx, 0x10
mov dword [esp + 0xc], ecx
mov edi, ebx
mov esi, dword [esp + 0x10]
mov edx, esi
shl edx, 0x11
sar edx, 0x1f
add edx, dword [esp + 0x20]
mov ecx, edx
shrd ebx, eax, cl
shr eax, cl
test dl, 0x20
cmovne ebx, eax
mov dword [esp + 0x18], ebx
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x24], eax
xor eax, eax
dec eax
mov ecx, edx
shl eax, cl
not eax
shr esi, 0xa
and esi, 1
shl esi, cl
and eax, edi
or esi, eax
or esi, 1
add esi, 2
mov ecx, dword [esp + 0x78]
shl esi, cl
sub dword [esp + 0xc], edx
mov eax, edi
shl eax, 0x1f
or esi, eax
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 4], esi
cmp dword [esp + 0xcc], 0
jne 0x10161ee5
test byte [esp + 0x4c], 8
je 0x1016220b
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
mov dword [edx + eax*4 + 4], 0
jmp 0x1016220b
cmp dword [esp + 0xc], 0x20
mov esi, dword [esp + 0x18]
jae 0x10161f13
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x10161f1f
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x10161f60
mov dword [esp + 0xcc], esi
jmp 0x10162183
test eax, eax
jle 0x10161f5d
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x10161f29
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x10161f60
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edi, esi
mov edx, 0xff
and edi, edx
mov dword [esp + 0xcc], edi
xor eax, eax
cmp edi, edx
sete al
mov ebx, esi
shr ebx, 8
and ebx, edx
neg eax
lea edi, [ecx + eax]
add edi, 8
mov edx, ebx
shl edx, cl
xor eax, eax
mov ecx, 0xff
cmp ebx, ecx
sete al
mov ebx, edi
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x1c], ebx
mov ebx, esi
shr ebx, 0x10
mov eax, 0xff
and ebx, eax
mov edi, ebx
shl edi, cl
xor eax, eax
mov ecx, 0xff
cmp ebx, ecx
sete al
or edi, edx
or edi, dword [esp + 0xcc]
shr esi, 0x18
mov ecx, dword [esp + 0x1c]
add ecx, 8
mov edx, esi
shl edx, cl
or edi, edx
mov ecx, dword [esp + 0xc]
mov ebx, ecx
sub ebx, eax
mov eax, 0xff
cmp esi, eax
sete byte [esp + 0xf0]
xor eax, eax
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
mov edx, dword [esp + 0x24]
or edx, eax
mov eax, edx
or edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add ecx, ebx
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
mov dword [esp + 0x24], edx
mov dword [esp + 0xcc], edi
ja 0x10162054
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x1016206a
mov eax, dword [esp + 4]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x101620b7
xor eax, eax
mov cl, byte [esp + 0xf0]
mov al, cl
mov dword [esp + 0x1c], eax
mov esi, edi
jmp 0x10162183
test ecx, ecx
jle 0x101620b4
mov dword [esp + 0x18], esi
lea edx, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor esi, esi
dec esi
movzx eax, byte [ebx]
mov edi, 0xff
shl edi, cl
shl eax, cl
not edi
and edi, esi
mov esi, eax
or esi, edi
inc ebx
add ecx, 8
dec edx
cmp edx, 1
ja 0x1016207e
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ebx, esi
mov esi, dword [esp + 0x18]
jmp 0x101620b7
xor ebx, ebx
dec ebx
mov dword [esp + 0x18], ebx
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
setne dl
add edx, 7
mov esi, ebx
and esi, ecx
mov dword [esp + 0x1c], esi
xor eax, eax
cmp esi, ecx
mov esi, 0xff
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 8
and edi, esi
mov esi, edi
shl esi, cl
add edx, 8
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov ecx, edx
sub edx, eax
mov edi, ebx
shr edi, 0x10
mov eax, 0xff
and edi, eax
mov ebx, edi
shl ebx, cl
xor eax, eax
mov ecx, 0xff
cmp edi, ecx
sete al
mov edi, eax
or ebx, esi
or ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
shr eax, 0x18
mov dword [esp + 0x18], eax
lea ecx, [edx + 8]
shl eax, cl
or ebx, eax
mov ecx, dword [esp + 0xc]
mov esi, ecx
sub esi, edi
xor eax, eax
mov edi, 0xff
cmp dword [esp + 0x18], edi
sete al
mov dword [esp + 0x1c], eax
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0x24], eax
or ebx, dword [esp + 0xcc]
lea eax, [edx + esi]
add eax, 0x10
mov dword [esp + 0xc], eax
mov esi, ebx
mov dword [esp + 0xcc], ebx
mov edx, dword [esp + 0x10]
movsx eax, dx
sar eax, 0xf
mov ebx, dword [esp + 0x20]
add ebx, eax
mov ecx, ebx
mov eax, dword [esp + 0x24]
shrd esi, eax, cl
shr eax, cl
test bl, 0x20
cmovne esi, eax
mov dword [esp + 0x18], esi
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x24], eax
xor eax, eax
dec eax
mov ecx, ebx
shl eax, cl
shr edx, 0xb
and edx, 1
shl edx, cl
sub dword [esp + 0xc], ebx
not eax
mov esi, dword [esp + 0xcc]
and eax, esi
or edx, eax
or edx, 1
lea eax, [edx + 2]
bsr ecx, edx
xor ecx, 0x1f
mov dl, 0xa0
sub dl, cl
mov ecx, dword [esp + 0x78]
shl eax, cl
mov ecx, esi
shl ecx, 0x1f
or eax, ecx
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov dword [esi + ecx*4 + 4], eax
mov eax, dword [esp + 0x14]
mov byte [eax + 1], dl
mov ecx, dword [esp + 0x84]
test byte [esp + 0x2c], 0x10
jne 0x1016222c
xor esi, esi
test byte [esp + 0x4c], 0x10
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x2c]
jne 0x10162506
jmp 0x10162509
cmp dword [esp + 0xc], 0x20
mov ebx, dword [esp + 0x18]
jae 0x1016225a
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x10162261
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x101622a2
mov edi, ebx
jmp 0x1016249b
test eax, eax
jle 0x1016229f
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1016226b
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x101622a2
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edx, esi
mov edi, 0xff
and edx, edi
mov dword [esp + 0x20], edx
xor eax, eax
cmp edx, edi
sete al
mov edx, esi
shr edx, 8
and edx, edi
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edi, edx
shl edi, cl
xor eax, eax
mov ecx, 0xff
cmp edx, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x10], ebx
mov edx, esi
shr edx, 0x10
mov eax, 0xff
and edx, eax
mov eax, edx
shl eax, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or eax, edi
or eax, dword [esp + 0x20]
shr esi, 0x18
mov ecx, dword [esp + 0x10]
add ecx, 8
mov edx, esi
shl edx, cl
or eax, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, ebx
mov edx, 0xff
cmp esi, edx
sete byte [esp + 0x20]
xor ebx, ebx
shld ebx, eax, cl
shl eax, cl
test cl, 0x20
cmovne ebx, eax
mov ecx, 0
cmovne eax, ecx
mov edx, dword [esp + 0x24]
or edx, ebx
or eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add ecx, edi
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
mov dword [esp + 0x24], edx
ja 0x10162386
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x18], eax
jl 0x1016239b
mov eax, dword [esp + 4]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x101623e2
xor ecx, ecx
mov dl, byte [esp + 0x20]
mov cl, dl
mov dword [esp + 0x1c], ecx
mov ebx, eax
mov edi, eax
jmp 0x1016249b
test ecx, ecx
jle 0x101623df
lea eax, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor edi, edi
dec edi
mov dword [esp + 0x10], edi
movzx edi, byte [ebx]
mov edx, 0xff
shl edx, cl
shl edi, cl
not edx
and edx, dword [esp + 0x10]
or edi, edx
inc ebx
add ecx, 8
dec eax
cmp eax, 1
ja 0x101623ab
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x101623e2
xor edi, edi
dec edi
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
setne al
add eax, 7
mov edx, edi
and edx, ecx
mov dword [esp + 0x10], edx
xor ebx, ebx
cmp edx, ecx
mov esi, 0xff
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 8
and edx, esi
mov ebx, edx
shl ebx, cl
mov dword [esp + 0x20], ebx
add eax, 8
xor ebx, ebx
cmp edx, esi
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 0x10
and edx, esi
mov esi, edi
mov edi, edx
shl edi, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or edi, dword [esp + 0x20]
or edi, dword [esp + 0x10]
shr esi, 0x18
lea ecx, [eax + 8]
mov edx, esi
shl edx, cl
or edi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x10], edx
xor edx, edx
mov ebx, 0xff
cmp esi, ebx
sete dl
mov dword [esp + 0x1c], edx
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or dword [esp + 0x24], edx
or edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add eax, ecx
add eax, 0x10
mov dword [esp + 0xc], eax
mov ebx, edi
mov esi, dword [esp + 0x2c]
mov eax, esi
shl eax, 0x13
sar eax, 0x1f
add eax, dword [esp + 0x28]
mov ecx, eax
mov edx, dword [esp + 0x24]
shrd ebx, edx, cl
shr edx, cl
test al, 0x20
cmovne ebx, edx
mov dword [esp + 0x18], ebx
mov ebx, esi
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x24], edx
xor edx, edx
dec edx
mov ecx, eax
shl edx, cl
not edx
shr esi, 8
and esi, 1
shl esi, cl
and edx, edi
or esi, edx
or esi, 1
add esi, 2
mov ecx, dword [esp + 0x78]
shl esi, cl
sub dword [esp + 0xc], eax
mov eax, edi
shl eax, 0x1f
or esi, eax
mov eax, ebx
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 8], esi
test al, 0x20
mov dword [esp + 0x60], ebx
jne 0x10162531
test byte [esp + 0x4c], 0x20
je 0x1016283e
mov edx, eax
mov eax, dword [esp + 0x40]
mov dword [ebx + eax*4 + 8], 0
mov eax, edx
jmp 0x1016283e
cmp dword [esp + 0xc], 0x20
mov edx, dword [esp + 0x18]
jae 0x1016255f
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x1016256c
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x101625ad
mov esi, edx
mov ebx, eax
mov eax, dword [esp + 0x24]
jmp 0x101627b8
test eax, eax
jle 0x101625aa
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x10162576
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x101625ad
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edx, esi
mov edi, 0xff
and edx, edi
mov dword [esp + 0x20], edx
xor eax, eax
cmp edx, edi
sete al
mov edx, esi
shr edx, 8
and edx, edi
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edi, edx
shl edi, cl
xor eax, eax
mov ecx, 0xff
cmp edx, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x10], ebx
mov edx, esi
shr edx, 0x10
mov eax, 0xff
and edx, eax
mov ebx, edx
shl ebx, cl
xor eax, eax
mov ecx, 0xff
cmp edx, ecx
sete al
or ebx, edi
or ebx, dword [esp + 0x20]
shr esi, 0x18
mov ecx, dword [esp + 0x10]
add ecx, 8
mov edx, esi
shl edx, cl
or ebx, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, eax
mov eax, 0xff
cmp esi, eax
sete byte [esp + 0x20]
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
mov edx, dword [esp + 0x24]
or edx, eax
mov eax, edx
or ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add ecx, edi
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
ja 0x10162693
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x24], eax
jl 0x101626ae
mov eax, dword [esp + 4]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x101626f5
xor ecx, ecx
mov dl, byte [esp + 0x20]
mov cl, dl
mov dword [esp + 0x1c], ecx
mov edx, ebx
mov ecx, dword [esp + 0x2c]
mov esi, ebx
mov ebx, ecx
jmp 0x101627b8
test ecx, ecx
jle 0x101626f2
lea eax, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor edi, edi
dec edi
mov dword [esp + 0x10], edi
movzx edi, byte [ebx]
mov edx, 0xff
shl edx, cl
shl edi, cl
not edx
and edx, dword [esp + 0x10]
or edi, edx
inc ebx
add ecx, 8
dec eax
cmp eax, 1
ja 0x101626be
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x101626f5
xor edi, edi
dec edi
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
setne al
add eax, 7
mov edx, edi
and edx, ecx
mov dword [esp + 0x10], edx
xor ebx, ebx
cmp edx, ecx
mov esi, 0xff
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 8
and edx, esi
mov ebx, edx
shl ebx, cl
mov dword [esp + 0x18], ebx
add eax, 8
xor ebx, ebx
cmp edx, esi
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 0x10
and edx, esi
mov esi, edi
mov edi, edx
shl edi, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or edi, dword [esp + 0x18]
or edi, dword [esp + 0x10]
shr esi, 0x18
lea ecx, [eax + 8]
mov edx, esi
shl edx, cl
or edi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x10], edx
xor edx, edx
mov ebx, 0xff
cmp esi, ebx
sete dl
mov dword [esp + 0x1c], edx
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
mov ecx, dword [esp + 0x24]
or ecx, edx
or edi, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
add eax, edx
add eax, 0x10
mov dword [esp + 0xc], eax
mov edx, edi
mov eax, ecx
mov esi, edi
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
shl ecx, 0x12
sar ecx, 0x1f
add ecx, dword [esp + 0x28]
shrd edx, eax, cl
shr eax, cl
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x18], edx
mov edx, 0
cmovne eax, edx
mov dword [esp + 0x24], eax
xor edx, edx
dec edx
shl edx, cl
sub dword [esp + 0xc], ecx
not edx
and edx, esi
mov eax, ebx
shr eax, 9
and eax, 1
shl eax, cl
or eax, edx
or eax, 1
lea edx, [eax + 2]
mov ecx, dword [esp + 0x78]
shl edx, cl
shl esi, 0x1f
or edx, esi
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov dword [esi + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
movzx ecx, byte [edx + 1]
and ecx, 0x7f
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x21
cmp eax, ecx
cmovbe eax, ecx
or al, 0x80
mov byte [edx + 1], al
mov ecx, dword [esp + 0x84]
mov eax, ebx
mov ebx, esi
test al, 0x40
jne 0x10162854
xor esi, esi
test byte [esp + 0x4c], 0x40
jne 0x10162b33
jmp 0x10162b36
cmp dword [esp + 0xc], 0x20
jae 0x1016287e
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x10162889
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x101628ca
mov esi, dword [esp + 0x18]
mov edi, esi
jmp 0x10162ace
test eax, eax
jle 0x101628c7
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x10162893
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x101628ca
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edx, esi
mov edi, 0xff
and edx, edi
mov dword [esp + 0x20], edx
xor eax, eax
cmp edx, edi
sete al
mov edx, esi
shr edx, 8
and edx, edi
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edi, edx
shl edi, cl
xor eax, eax
mov ecx, 0xff
cmp edx, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x10], ebx
mov edx, esi
shr edx, 0x10
mov eax, 0xff
and edx, eax
mov eax, edx
shl eax, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or eax, edi
or eax, dword [esp + 0x20]
shr esi, 0x18
mov ecx, dword [esp + 0x10]
add ecx, 8
mov edx, esi
shl edx, cl
or eax, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, ebx
mov edx, 0xff
cmp esi, edx
sete byte [esp + 0x20]
xor ebx, ebx
shld ebx, eax, cl
shl eax, cl
test cl, 0x20
cmovne ebx, eax
mov ecx, 0
cmovne eax, ecx
mov edx, dword [esp + 0x24]
or edx, ebx
mov ebx, eax
or ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
lea ecx, [eax + edi]
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
mov dword [esp + 0x24], edx
ja 0x101629b1
mov ecx, dword [esp + 8]
cmp ecx, 4
mov dword [esp + 0x18], ebx
jl 0x101629ca
mov eax, dword [esp + 4]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x10162a11
xor eax, eax
mov cl, byte [esp + 0x20]
mov al, cl
mov dword [esp + 0x1c], eax
mov esi, ebx
mov eax, dword [esp + 0x2c]
mov edi, ebx
jmp 0x10162ace
test ecx, ecx
jle 0x10162a0e
lea eax, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor edi, edi
dec edi
mov dword [esp + 0x10], edi
movzx edi, byte [ebx]
mov edx, 0xff
shl edx, cl
shl edi, cl
not edx
and edx, dword [esp + 0x10]
or edi, edx
inc ebx
add ecx, 8
dec eax
cmp eax, 1
ja 0x101629da
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x10162a11
xor edi, edi
dec edi
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
setne al
add eax, 7
mov edx, edi
and edx, ecx
mov dword [esp + 0x10], edx
xor ebx, ebx
cmp edx, ecx
mov esi, 0xff
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 8
and edx, esi
mov ebx, edx
shl ebx, cl
mov dword [esp + 0x20], ebx
add eax, 8
xor ebx, ebx
cmp edx, esi
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 0x10
and edx, esi
mov esi, edi
mov edi, edx
shl edi, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or edi, dword [esp + 0x20]
or edi, dword [esp + 0x10]
shr esi, 0x18
lea ecx, [eax + 8]
mov edx, esi
shl edx, cl
or edi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x10], edx
xor edx, edx
mov ebx, 0xff
cmp esi, ebx
sete dl
mov dword [esp + 0x1c], edx
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or dword [esp + 0x24], edx
or edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add eax, ecx
add eax, 0x10
mov dword [esp + 0xc], eax
mov esi, edi
mov eax, dword [esp + 0x2c]
mov ebx, eax
shl eax, 0x11
sar eax, 0x1f
add eax, dword [esp + 0x28]
mov ecx, eax
mov edx, dword [esp + 0x24]
shrd esi, edx, cl
shr edx, cl
test al, 0x20
cmovne esi, edx
mov dword [esp + 0x18], esi
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x24], edx
xor edx, edx
dec edx
mov ecx, eax
shl edx, cl
not edx
mov esi, ebx
shr esi, 0xa
and esi, 1
shl esi, cl
and edx, edi
or esi, edx
or esi, 1
add esi, 2
mov ecx, dword [esp + 0x78]
shl esi, cl
sub dword [esp + 0xc], eax
shl edi, 0x1f
or esi, edi
mov eax, ebx
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0xc], esi
and dword [esp + 0x30], 4
add dword [esp + 0x14], 2
test al, al
js 0x10162b57
cmp dword [esp + 0x4c], 0x80
jae 0x10162b85
mov esi, dword [esp + 0x40]
jmp 0x10162e61
cmp dword [esp + 0xc], 0x20
mov edx, dword [esp + 0x18]
jae 0x10162b96
mov eax, dword [esp + 8]
cmp eax, 4
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jl 0x10162b9f
mov esi, dword [edx]
add edx, 4
mov dword [esp + 4], edx
add eax, 0xfffffffc
mov dword [esp + 8], eax
jmp 0x10162be0
mov esi, dword [esp + 0x40]
mov dword [ebx + esi*4 + 0xc], 0
jmp 0x10162e61
mov dword [esp + 0x20], edx
jmp 0x10162ddf
test eax, eax
jle 0x10162bdd
inc eax
xor ecx, ecx
xor esi, esi
dec esi
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x10162ba9
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x1c]
jmp 0x10162be0
xor esi, esi
dec esi
cmp ecx, 1
mov ecx, 0
adc ecx, 7
mov edx, esi
mov edi, 0xff
and edx, edi
mov dword [esp + 0x20], edx
xor eax, eax
cmp edx, edi
sete al
mov edx, esi
shr edx, 8
and edx, edi
neg eax
lea ebx, [ecx + eax]
add ebx, 8
mov edi, edx
shl edi, cl
xor eax, eax
mov ecx, 0xff
cmp edx, ecx
sete al
mov ecx, ebx
sub ebx, eax
mov dword [esp + 0x10], ebx
mov edx, esi
shr edx, 0x10
mov eax, 0xff
and edx, eax
mov eax, edx
shl eax, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or eax, edi
or eax, dword [esp + 0x20]
shr esi, 0x18
mov ecx, dword [esp + 0x10]
add ecx, 8
mov edx, esi
shl edx, cl
or eax, edx
mov ecx, dword [esp + 0xc]
mov edi, ecx
sub edi, ebx
mov edx, 0xff
cmp esi, edx
sete byte [esp + 0x4c]
xor ebx, ebx
shld ebx, eax, cl
shl eax, cl
test cl, 0x20
cmovne ebx, eax
mov ecx, 0
cmovne eax, ecx
mov edx, dword [esp + 0x24]
or edx, ebx
or eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add ecx, edi
add ecx, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, 0x1f
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
ja 0x10162cc4
mov ecx, dword [esp + 8]
cmp ecx, 4
jl 0x10162cd7
mov eax, dword [esp + 4]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 4], eax
add ecx, 0xfffffffc
mov dword [esp + 8], ecx
jmp 0x10162d1e
xor ecx, ecx
mov dl, byte [esp + 0x4c]
mov cl, dl
mov dword [esp + 0x1c], ecx
mov edx, eax
jmp 0x10162ddb
test ecx, ecx
jle 0x10162d1b
lea eax, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 4]
xor edi, edi
dec edi
mov dword [esp + 0x10], edi
movzx edi, byte [ebx]
mov edx, 0xff
shl edx, cl
shl edi, cl
not edx
and edx, dword [esp + 0x10]
or edi, edx
inc ebx
add ecx, 8
dec eax
cmp eax, 1
ja 0x10162ce7
mov eax, dword [esp + 8]
add dword [esp + 4], eax
mov dword [esp + 8], 0
jmp 0x10162d1e
xor edi, edi
dec edi
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
setne al
add eax, 7
mov edx, edi
and edx, ecx
mov dword [esp + 0x10], edx
xor ebx, ebx
cmp edx, ecx
mov esi, 0xff
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 8
and edx, esi
mov ebx, edx
shl ebx, cl
mov dword [esp + 0x4c], ebx
add eax, 8
xor ebx, ebx
cmp edx, esi
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 0x10
and edx, esi
mov esi, edi
mov edi, edx
shl edi, cl
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
or edi, dword [esp + 0x4c]
or edi, dword [esp + 0x10]
shr esi, 0x18
lea ecx, [eax + 8]
mov edx, esi
shl edx, cl
or edi, edx
mov ecx, dword [esp + 0xc]
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x10], edx
xor edx, edx
mov ebx, 0xff
cmp esi, ebx
sete dl
mov dword [esp + 0x1c], edx
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or dword [esp + 0x24], edx
or edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
add eax, ecx
add eax, 0x10
mov dword [esp + 0xc], eax
mov edx, edi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x2c]
mov esi, eax
movsx eax, si
sar eax, 0xf
mov ebx, dword [esp + 0x28]
add ebx, eax
mov ecx, ebx
mov eax, dword [esp + 0x24]
shrd edx, eax, cl
shr eax, cl
test bl, 0x20
cmovne edx, eax
mov dword [esp + 0x18], edx
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x24], eax
xor eax, eax
dec eax
mov ecx, ebx
shl eax, cl
shr esi, 0xb
and esi, 1
shl esi, cl
sub dword [esp + 0xc], ebx
not eax
mov ebx, dword [esp + 0x20]
and eax, ebx
or esi, eax
or esi, 1
lea eax, [esi + 2]
bsr ecx, esi
xor ecx, 0x1f
mov dl, 0xa0
sub dl, cl
mov ecx, dword [esp + 0x78]
shl eax, cl
mov ecx, ebx
shl ecx, 0x1f
or eax, ecx
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x60]
mov dword [ecx + esi*4 + 0xc], eax
mov eax, dword [esp + 0x14]
mov byte [eax], dl
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0x30]
add dword [esp + 0xe4], eax
mov edx, dword [esp + 0x80]
sub edx, dword [esp + 0xf4]
xor dword [esp + 0x108], 0x10
add dword [esp + 0x60], 0x10
mov eax, dword [esp + 0x10c]
cmp eax, esi
jl 0x1016074e
mov dword [esp + 0x80], edx
jmp 0x10162eb0
lea eax, [ebx + 2]
mov dword [esp + 0x110], eax
cmp dword [esp + 0x12c], 2
mov edx, dword [esp + 0x118]
mov ebx, dword [esp + 0xc]
jb 0x10163e26
mov eax, dword [esp + 0x110]
and eax, 3
jne 0x10163e26
cmp byte [esp + 0x134], 0
je 0x1016342f
mov edx, dword [esp + 0x40]
test edx, edx
jle 0x1016351d
mov eax, dword [esp + 0x100]
add eax, 0xfffffffe
mov esi, dword [esp + 0x13c]
imul esi, eax
imul eax, edx
lea eax, [ecx + eax*4]
mov dword [esp + 0x10], eax
test byte [esp + 0x110], 4
mov eax, dword [esp + 0xc0]
cmove eax, dword [esp + 0xfc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x158]
add eax, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x144]
add eax, esi
mov dword [esp + 0x28], eax
add esi, dword [esp + 0x140]
mov dword [esp + 0x14], esi
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xa4], eax
cmp eax, 0x20
mov dword [esp + 0xd0], edx
jae 0x10162fa6
mov edi, dword [esp + 0xdc]
cmp edi, 4
jl 0x10162fad
mov eax, dword [esp + 0xa0]
mov ebx, dword [eax - 3]
add eax, 0xfffffffc
mov dword [esp + 0xa0], eax
add edi, 0xfffffffc
mov dword [esp + 0xdc], edi
jmp 0x10162feb
mov esi, edx
jmp 0x101632b0
test edi, edi
jle 0x10162fe9
mov eax, edi
neg eax
inc edi
mov ecx, 0x18
xor ebx, ebx
mov edx, dword [esp + 0xa0]
movzx esi, byte [edx]
shl esi, cl
or ebx, esi
dec edx
add ecx, 0xfffffff8
dec edi
cmp edi, 1
ja 0x10162fc4
add dword [esp + 0xa0], eax
mov dword [esp + 0xdc], 0
jmp 0x10162feb
xor ebx, ebx
mov eax, ebx
shr eax, 0x18
cmp dword [esp + 0x104], 0
setne cl
mov edx, ebx
not edx
test edx, 0x7f000000
mov dword [esp + 0x60], edx
sete ch
and ch, cl
movzx esi, ch
mov ecx, 8
sub ecx, esi
cmp ebx, 0x90000000
setae byte [esp + 0x2c]
mov edi, ebx
shr edi, 0x10
mov esi, 0xff
and edi, esi
mov esi, edi
shl esi, cl
or esi, eax
test edx, 0x7f0000
sete al
and al, byte [esp + 0x2c]
movzx eax, al
neg eax
lea edx, [ecx + eax]
add edx, 8
mov eax, 0x90
cmp edi, eax
setae ch
mov edi, ebx
shr edi, 8
mov eax, 0xff
and edi, eax
mov eax, edi
mov cl, dl
shl eax, cl
or eax, esi
test dword [esp + 0x60], 0x7f00
sete cl
and cl, ch
movzx ecx, cl
sub edx, ecx
mov dword [esp + 0x2c], edx
mov ecx, 0x90
cmp edi, ecx
setae byte [esp + 0xe4]
mov ecx, 0xff
and ebx, ecx
mov esi, ebx
lea ecx, [edx + 8]
shl esi, cl
or esi, eax
test byte [esp + 0x60], 0x7f
sete al
and al, byte [esp + 0xe4]
movzx eax, al
mov ecx, dword [esp + 0xa4]
mov edi, ecx
sub edi, eax
xor edx, edx
mov eax, 0x90
cmp ebx, eax
setae byte [esp + 0x60]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
or esi, dword [esp + 0xd0]
or dword [esp + 0xec], eax
mov eax, dword [esp + 0x2c]
add eax, edi
add eax, 0x10
mov dword [esp + 0xa4], eax
cmp eax, 0x1f
ja 0x10163136
mov edx, dword [esp + 0xdc]
cmp edx, 4
mov dword [esp + 0xe4], esi
jl 0x1016314f
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx - 3]
add ecx, 0xfffffffc
mov dword [esp + 0xa0], ecx
add edx, 0xfffffffc
mov dword [esp + 0xdc], edx
jmp 0x10163195
mov al, byte [esp + 0x60]
mov dl, al
mov dword [esp + 0x104], edx
mov dword [esp + 0xd0], esi
jmp 0x101632ac
test edx, edx
jle 0x10163193
mov eax, edx
neg eax
mov dword [esp + 0x60], eax
inc edx
mov ecx, 0x18
xor eax, eax
mov edi, dword [esp + 0xa0]
movzx esi, byte [edi]
shl esi, cl
or eax, esi
dec edi
add ecx, 0xfffffff8
dec edx
cmp edx, 1
ja 0x1016316a
mov ecx, dword [esp + 0x60]
add dword [esp + 0xa0], ecx
mov dword [esp + 0xdc], 0
jmp 0x10163195
xor eax, eax
mov ecx, 0x90
cmp ebx, ecx
setae cl
mov edi, eax
shr edi, 0x18
mov edx, eax
not edx
test edx, 0x7f000000
mov ebx, edx
mov dword [esp + 0x60], edx
sete dl
and dl, cl
movzx edx, dl
mov ecx, 8
sub ecx, edx
cmp eax, 0x90000000
setae byte [esp + 0x2c]
mov edx, eax
shr edx, 0x10
mov esi, 0xff
and edx, esi
mov esi, edx
shl esi, cl
or esi, edi
test ebx, 0x7f0000
sete bl
and bl, byte [esp + 0x2c]
movzx edi, bl
neg edi
lea ebx, [ecx + edi]
add ebx, 8
mov ecx, 0x90
cmp edx, ecx
setae ch
mov edx, eax
shr edx, 8
mov edi, 0xff
and edx, edi
mov edi, edx
mov cl, bl
shl edi, cl
or edi, esi
test dword [esp + 0x60], 0x7f00
sete cl
and cl, ch
movzx ecx, cl
sub ebx, ecx
mov dword [esp + 0x2c], ebx
mov ecx, 0x90
cmp edx, ecx
setae dl
mov ecx, 0xff
and eax, ecx
lea ecx, [ebx + 8]
mov ebx, eax
shl ebx, cl
or ebx, edi
test byte [esp + 0x60], 0x7f
sete cl
and cl, dl
movzx esi, cl
mov ecx, dword [esp + 0xa4]
mov edi, ecx
sub edi, esi
xor edx, edx
mov esi, 0x90
cmp eax, esi
setae dl
mov dword [esp + 0x104], edx
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0xec], eax
or ebx, dword [esp + 0xe4]
mov eax, dword [esp + 0x2c]
add eax, edi
add eax, 0x10
mov dword [esp + 0xa4], eax
mov dword [esp + 0xd0], ebx
mov esi, ebx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
test eax, eax
je 0x10163395
mov edx, 0xf
xor edi, edi
mov dword [esp + 0x60], eax
test edx, eax
je 0x10163386
mov ebx, edx
and ebx, 0x11111111
test ebx, eax
je 0x10163300
mov eax, esi
not esi
and esi, 1
mov ecx, dword [esp + 0x78]
shl esi, cl
mov ecx, dword [esp + 0x10]
xor esi, dword [ecx + edi]
or esi, dword [esp + 0x3c]
mov dword [ecx + edi], esi
mov esi, eax
mov eax, dword [esp + 0x60]
shr esi, 1
lea ecx, [ebx + ebx]
test ecx, eax
je 0x1016332a
mov eax, esi
not esi
and esi, 1
mov ecx, dword [esp + 0x78]
shl esi, cl
mov ecx, dword [esp + 0x20]
xor esi, dword [ecx + edi]
or esi, dword [esp + 0x3c]
mov dword [ecx + edi], esi
mov esi, eax
mov eax, dword [esp + 0x60]
shr esi, 1
lea ecx, [ebx*4]
test ecx, eax
je 0x10163358
mov eax, esi
not esi
and esi, 1
mov ecx, dword [esp + 0x78]
shl esi, cl
mov ecx, dword [esp + 0x28]
xor esi, dword [ecx + edi]
or esi, dword [esp + 0x3c]
mov dword [ecx + edi], esi
mov esi, eax
mov eax, dword [esp + 0x60]
shr esi, 1
shl ebx, 3
test ebx, eax
je 0x10163382
mov eax, esi
not esi
and esi, 1
mov ecx, dword [esp + 0x78]
shl esi, cl
mov ecx, dword [esp + 0x14]
xor esi, dword [ecx + edi]
or esi, dword [esp + 0x3c]
mov dword [ecx + edi], esi
mov esi, eax
mov eax, dword [esp + 0x60]
shr esi, 1
mov ebx, dword [esp + 0xc]
shl edx, 4
add edi, 4
cmp edi, 0x20
jne 0x101632c9
mov ecx, eax
shr ecx, 1
and ecx, 0x55555555
sub eax, ecx
mov ecx, eax
mov edx, 0x33333333
and ecx, edx
shr eax, 2
and eax, edx
add eax, ecx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xd0]
shrd edx, eax, cl
add dword [esp + 0x30], 4
shr eax, cl
test cl, 0x20
cmovne edx, eax
mov esi, 0
cmovne eax, esi
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xa4]
sub eax, ecx
mov ecx, dword [esp + 0x4c]
add ecx, 8
add dword [esp + 0x20], 0x20
add dword [esp + 0x28], 0x20
add dword [esp + 0x14], 0x20
add dword [esp + 0x10], 0x20
mov dword [esp + 0x4c], ecx
cmp ecx, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
jl 0x10162f67
jmp 0x1016343d
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xa4], eax
cmp dword [esp + 0x100], 1
mov dword [esp + 0xd0], edx
jle 0x10163514
test byte [esp + 0x110], 4
sete cl
mov esi, dword [esp + 0xc0]
cmove esi, dword [esp + 0xfc]
mov eax, dword [esp + 0x124]
cmove eax, dword [esp + 0x120]
mov dword [esp + 0xd8], eax
cmp dword [esp + 0x40], 0
mov dword [esp + 0x10c], esi
mov byte [esp + 0x60], cl
jle 0x10163564
xor ecx, ecx
xor edx, edx
xor edi, edi
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0x10c]
mov esi, dword [esi + ecx]
shrd edi, esi, 0x1c
mov ebx, esi
shr ebx, 4
or ebx, esi
or ebx, edi
mov dword [eax + ecx], ebx
mov eax, dword [esp + 0x10c]
mov eax, dword [eax + ecx + 4]
shl eax, 0x1c
or eax, ebx
lea ebx, [eax + eax]
and ebx, 0xeeeeeeee
mov edi, eax
shr edi, 1
and edi, 0x77777777
or edi, ebx
or edi, eax
mov eax, esi
not eax
and eax, edi
mov edi, dword [esp + 0xd8]
mov dword [edi + ecx], eax
mov eax, dword [esp + 0xd8]
mov edi, esi
add edx, 8
add ecx, 4
cmp edx, dword [esp + 0x40]
jl 0x101634ac
jmp 0x10163564
mov dword [esp + 0xc], ebx
jmp 0x10163e1f
cmp dword [esp + 0x100], 2
jl 0x10163e18
test byte [esp + 0x110], 4
mov eax, dword [esp + 0xc0]
cmove eax, dword [esp + 0xfc]
mov dword [esp + 0x10c], eax
sete byte [esp + 0x60]
mov eax, dword [esp + 0x124]
cmove eax, dword [esp + 0x120]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x100]
cmp eax, 6
jl 0x10163e18
cmp byte [esp + 0x60], 0
mov eax, dword [esp + 0xfc]
cmovne eax, dword [esp + 0xc0]
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x120]
cmovne eax, dword [esp + 0x124]
mov dword [esp + 0x11c], eax
cmp dword [esp + 0x40], 0
jle 0x10163dea
xor eax, eax
xor ecx, ecx
xor edi, edi
mov esi, dword [esp + 0x10c]
mov edx, dword [esi + eax]
mov ebx, dword [ebp + 0x18]
test bl, 8
jne 0x101635f3
mov ebx, dword [esi + eax + 4]
shl ebx, 0x1c
mov esi, edx
shr esi, 4
or esi, ebx
shrd edi, edx, 0x1c
or esi, edi
or esi, edx
shl esi, 3
and esi, 0x88888888
mov ebx, dword [esp + 0x11c]
or esi, dword [ebx + eax]
jmp 0x101635fd
mov ebx, dword [esp + 0x11c]
mov esi, dword [ebx + eax]
mov edi, dword [esp + 0x138]
mov edi, dword [edi + eax]
not edi
and edi, esi
mov dword [ebx + eax], edi
add ecx, 8
add eax, 4
mov edi, edx
cmp ecx, dword [esp + 0x40]
jl 0x101635b6
cmp dword [esp + 0x40], 0
jle 0x10163dea
mov ecx, dword [esp + 0x100]
add ecx, 0xfffffffa
imul ecx, dword [esp + 0x13c]
mov eax, dword [esp + 0x150]
add eax, ecx
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x144]
add eax, ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x140]
add eax, ecx
mov dword [esp + 0x148], eax
add ecx, dword [esp + 0x84]
mov dword [esp + 0x100], ecx
mov dword [esp + 0xcc], 0
mov eax, dword [esp + 0x138]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x11c], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x60], ecx
test ecx, ecx
mov edx, dword [esp + 0x8c]
je 0x10163d1f
sub eax, dword [esp + 0xcc]
mov dword [esp + 0xf0], eax
xor eax, eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x8c], edx
cmp edx, 0x20
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xc4], eax
jae 0x10163724
cmp ecx, 4
mov dword [esp + 0x7c], esi
jl 0x10163730
mov eax, dword [esp + 0xa8]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0xa8], eax
add ecx, 0xfffffffc
mov dword [esp + 0xb4], ecx
jmp 0x10163795
mov edi, dword [esp + 0x88]
jmp 0x101639c0
test ecx, ecx
jle 0x1016378e
mov dword [esp + 0xe0], ebx
lea eax, [ecx + 1]
xor ecx, ecx
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x98]
movzx edi, byte [edx]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, esi
mov esi, edi
or esi, ebx
inc edx
add ecx, 8
dec eax
cmp eax, 1
ja 0x1016374e
mov eax, dword [esp + 0xb4]
add dword [esp + 0xa8], eax
mov dword [esp + 0xb4], 0
mov ebx, dword [esp + 0xe0]
jmp 0x10163795
mov esi, dword [esp + 0x98]
cmp ebx, 1
mov ecx, 0
adc ecx, 7
mov edx, esi
mov ebx, 0xff
and edx, ebx
mov dword [esp + 0x14], edx
xor eax, eax
cmp edx, ebx
sete al
mov edx, esi
shr edx, 8
and edx, ebx
mov edi, edx
shl edi, cl
mov dword [esp + 0x20], edi
neg eax
add ecx, eax
add ecx, 8
xor ebx, ebx
mov edi, 0xff
cmp edx, edi
sete bl
mov eax, esi
shr eax, 0x10
and eax, edi
mov edx, eax
shl edx, cl
sub ecx, ebx
mov edi, ecx
mov dword [esp + 0x28], ecx
xor ebx, ebx
mov ecx, 0xff
cmp eax, ecx
sete bl
shr esi, 0x18
mov eax, esi
lea ecx, [edi + 8]
shl eax, cl
or edx, dword [esp + 0x20]
or edx, dword [esp + 0x14]
or edx, eax
mov ecx, dword [esp + 0x8c]
mov edi, ecx
sub edi, ebx
xor ebx, ebx
mov eax, 0xff
cmp esi, eax
sete byte [esp + 0x14]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
cmovne eax, edx
mov ecx, 0
cmovne edx, ecx
or dword [esp + 0x7c], eax
or edx, dword [esp + 0x88]
mov eax, dword [esp + 0x28]
add eax, edi
add eax, 0x10
mov dword [esp + 0x8c], eax
cmp eax, 0x1f
mov dword [esp + 0x20], edx
ja 0x10163886
mov ecx, dword [esp + 0xb4]
cmp ecx, 4
jl 0x1016389c
mov eax, dword [esp + 0xa8]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0xa8], eax
add ecx, 0xfffffffc
mov dword [esp + 0xb4], ecx
jmp 0x101638f7
mov al, byte [esp + 0x14]
mov bl, al
mov dword [esp + 0x88], edx
mov esi, dword [esp + 0x7c]
jmp 0x101639c4
test ecx, ecx
jle 0x101638f0
lea eax, [ecx + 1]
xor ecx, ecx
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x98]
mov dword [esp + 0x14], edi
movzx edi, byte [ebx]
mov edx, 0xff
shl edx, cl
shl edi, cl
not edx
and edx, dword [esp + 0x14]
or edi, edx
inc ebx
add ecx, 8
dec eax
cmp eax, 1
ja 0x101638b3
mov eax, dword [esp + 0xb4]
add dword [esp + 0xa8], eax
mov dword [esp + 0xb4], 0
jmp 0x101638f7
mov edi, dword [esp + 0x98]
xor eax, eax
mov ecx, 0xff
cmp esi, ecx
setne al
add eax, 7
mov edx, edi
and edx, ecx
mov dword [esp + 0x14], edx
xor ebx, ebx
cmp edx, ecx
mov esi, 0xff
sete bl
mov ecx, eax
sub eax, ebx
mov edx, edi
shr edx, 8
and edx, esi
mov esi, edx
shl esi, cl
mov dword [esp + 0x28], esi
add eax, 8
xor ebx, ebx
mov ecx, 0xff
cmp edx, ecx
sete bl
mov esi, edi
shr edi, 0x10
and edi, ecx
mov edx, edi
mov ecx, eax
shl edx, cl
sub eax, ebx
xor ebx, ebx
mov ecx, 0xff
cmp edi, ecx
mov edi, edx
sete bl
shr esi, 0x18
mov edx, esi
lea ecx, [eax + 8]
shl edx, cl
or edi, dword [esp + 0x28]
or edi, dword [esp + 0x14]
or edi, edx
mov ecx, dword [esp + 0x8c]
mov edx, ecx
sub edx, ebx
mov dword [esp + 0x14], edx
xor ebx, ebx
mov edx, 0xff
cmp esi, edx
sete bl
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
mov ecx, dword [esp + 0x7c]
or ecx, edx
or edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
add eax, edx
add eax, 0x10
mov esi, ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], edi
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x4c]
lea ecx, [edx*4]
mov eax, 0xf
shl eax, cl
mov dword [esp + 0xf4], eax
lea edi, [edx + 4]
mov eax, dword [esp + 0xcc]
add eax, edx
add eax, 4
cmp eax, dword [esp + 0x40]
cmovge edi, dword [esp + 0xf0]
xor eax, eax
mov dword [esp + 0x28], edi
cmp edx, edi
jge 0x10163c82
mov dword [esp + 0xe0], ebx
mov eax, dword [esp + 0xb8]
mov eax, dword [eax]
not eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
mov ebx, edx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0xf4]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
test esi, eax
je 0x10163b30
mov edi, esi
and edi, 0x11111111
test edi, eax
je 0x10163a7f
test dl, 1
je 0x10163a73
mov dword [esp + 0x20], edx
mov edx, eax
mov eax, 0x32
shl eax, cl
and eax, dword [esp + 0x30]
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x20]
or dword [esp + 0x10], edi
mov dword [esp + 0x60], eax
shr edx, 1
inc dword [esp + 0x14]
jmp 0x10163a83
mov dword [esp + 0x60], eax
lea eax, [edi + edi]
test dword [esp + 0x60], eax
je 0x10163ab2
test dl, 1
je 0x10163aac
mov dword [esp + 0x20], edx
mov edx, 0x74
shl edx, cl
or dword [esp + 0x10], eax
and edx, dword [esp + 0x30]
or dword [esp + 0x60], edx
mov edx, dword [esp + 0x20]
shr edx, 1
inc dword [esp + 0x14]
lea eax, [edi*4]
test dword [esp + 0x60], eax
je 0x10163aca
test dl, 1
jne 0x10163ad0
mov eax, dword [esp + 0x60]
jmp 0x10163aed
mov eax, dword [esp + 0x60]
jmp 0x10163af3
mov dword [esp + 0x20], edx
mov edx, 0xe8
shl edx, cl
or dword [esp + 0x10], eax
and edx, dword [esp + 0x30]
mov eax, dword [esp + 0x60]
or eax, edx
mov edx, dword [esp + 0x20]
shr edx, 1
inc dword [esp + 0x14]
shl edi, 3
test eax, edi
je 0x10163b30
test dl, 1
je 0x10163b1c
mov dword [esp + 0x20], edx
mov edx, eax
mov eax, 0xc0
shl eax, cl
or dword [esp + 0x10], edi
and eax, dword [esp + 0x30]
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x88], edi
shr edx, 1
inc dword [esp + 0x14]
inc ebx
shl esi, 4
add ecx, 4
cmp ebx, dword [esp + 0x28]
jl 0x10163a3d
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
shr eax, cl
test ax, ax
je 0x10163c8b
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x88]
jge 0x10163c79
mov eax, dword [esp + 0x128]
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14c]
add eax, ecx
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x148]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0xcc]
add eax, ebx
mov ecx, dword [esp + 0x100]
lea eax, [ecx + eax*4]
mov dword [esp + 0xe4], eax
xor ebx, ebx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xf4]
test esi, ecx
je 0x10163c5d
mov eax, ecx
mov ecx, esi
and ecx, 0x11111111
test ecx, eax
je 0x10163beb
mov eax, edx
shl eax, 0x1f
mov edi, dword [esp + 0xe4]
or eax, dword [edi + ebx*4]
or eax, dword [esp + 0x38]
mov dword [edi + ebx*4], eax
shr edx, 1
inc dword [esp + 0x14]
lea eax, [ecx + ecx]
test dword [esp + 0x10], eax
je 0x10163c0d
mov eax, edx
shl eax, 0x1f
mov edi, dword [esp + 0x20]
or eax, dword [edi + ebx*4]
or eax, dword [esp + 0x38]
mov dword [edi + ebx*4], eax
shr edx, 1
inc dword [esp + 0x14]
lea eax, [ecx*4]
test dword [esp + 0x10], eax
je 0x10163c33
mov eax, edx
shl eax, 0x1f
mov edi, dword [esp + 0x30]
or eax, dword [edi + ebx*4]
or eax, dword [esp + 0x38]
mov dword [edi + ebx*4], eax
shr edx, 1
inc dword [esp + 0x14]
shl ecx, 3
mov eax, dword [esp + 0x10]
test ecx, eax
mov ecx, eax
je 0x10163c5d
mov eax, edx
shl eax, 0x1f
mov edi, esi
mov esi, dword [esp + 0x2c]
or eax, dword [esi + ebx*4]
or eax, dword [esp + 0x38]
mov dword [esi + ebx*4], eax
mov esi, edi
shr edx, 1
inc dword [esp + 0x14]
shl esi, 4
mov eax, dword [esp + 0x4c]
add eax, ebx
inc eax
inc ebx
cmp eax, dword [esp + 0x28]
jl 0x10163bb9
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0xe0]
jmp 0x10163c99
mov edi, dword [esp + 0x88]
jmp 0x10163ca1
mov ebx, dword [esp + 0xe0]
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
mov ecx, eax
shrd edi, esi, cl
shr esi, cl
test cl, 0x20
cmovne edi, esi
mov dword [esp + 0x88], edi
mov eax, 0
cmovne esi, eax
mov edx, dword [esp + 0x8c]
sub edx, ecx
mov dword [esp + 0x4c], 4
test byte [esp + 0xc4], 1
mov al, 1
je 0x101636e2
mov dword [esp + 0x8c], edx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x10]
mov eax, esi
shr eax, 0x1c
mov ecx, esi
shr ecx, 0x1d
or ecx, eax
mov eax, esi
shr eax, 0x1b
and eax, 0xe
or eax, ecx
mov edx, dword [esp + 0xb8]
mov ecx, dword [edx + 4]
not ecx
and ecx, eax
mov eax, dword [esp + 0x11c]
or dword [eax + 4], ecx
mov ecx, esi
jmp 0x10163d2c
mov dword [esp + 0x7c], esi
xor ecx, ecx
mov edx, dword [esp + 0xb8]
or ecx, dword [edx]
mov dword [esp + 0x10], ecx
shr ecx, 3
and ecx, 0x11111111
mov edx, ecx
shl edx, 4
mov eax, ecx
shr eax, 4
or eax, edx
or eax, ecx
cmp dword [esp + 0xcc], 0
mov esi, dword [esp + 0x10c]
mov edi, dword [esp + 0xd8]
je 0x10163d6e
shl ecx, 0x1c
mov edx, dword [esi - 4]
not edx
and edx, ecx
or dword [edi - 4], edx
mov ecx, dword [esi]
not ecx
and eax, ecx
or dword [edi], eax
mov ecx, dword [esp + 0x10]
shr ecx, 0x1f
mov eax, dword [esi + 4]
not eax
and eax, ecx
or dword [edi + 4], eax
add esi, 4
mov dword [esp + 0x10c], esi
add edi, 4
mov dword [esp + 0xd8], edi
mov esi, dword [esp + 0xcc]
add esi, 8
add dword [esp + 0xb8], 4
mov ecx, dword [esp + 0x11c]
add ecx, 4
add dword [esp + 0x128], 0x20
add dword [esp + 0x14c], 0x20
add dword [esp + 0x148], 0x20
mov eax, dword [esp + 0x40]
mov edx, esi
mov dword [esp + 0xcc], esi
cmp eax, esi
mov esi, dword [esp + 0x7c]
jg 0x101636a6
jmp 0x10163df5
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x7c], esi
push dword [esp + 0x154]
push 0
push dword [esp + 0x140]
call fcn.1023abb0
add esp, 0xc
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x110]
cmp eax, dword [esp + 0xf8]
jl 0x101606d9
jmp 0x10163e61
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x10164e87
push esi
call fcn.1000a450
add esp, 4
push str.Malformed_HT_codeblock._VLC_code_produces_significant_samples_outside_the_codeblock_area._n
jmp 0x1015cb27
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0x12c], 2
mov esi, dword [esp + 0xf8]
jb 0x10164dff
and esi, 3
dec esi
mov dword [esp + 0x24], esi
cmp esi, 2
setb al
mov ecx, dword [esp + 0x134]
and cl, al
cmp cl, 1
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0xa4]
jne 0x101643e9
test eax, eax
jle 0x10164486
mov ecx, dword [esp + 0xf8]
mov eax, ecx
and eax, 0xfffffc
imul eax, dword [esp + 0x40]
mov dword [esp + 0x60], eax
test cl, 4
mov edx, dword [esp + 0xfc]
cmove edx, dword [esp + 0xc0]
mov dword [esp + 0x54], edx
shr ecx, 2
and ecx, 0x3fffff
imul ecx, dword [esp + 0x40]
shl ecx, 4
mov esi, dword [esp + 0x114]
lea eax, [ecx + esi*8]
mov edi, dword [esp + 0x130]
lea edx, [edi*8]
sub eax, edx
lea edx, [esi + esi*2]
lea edx, [ecx + edx*4]
lea esi, [ecx + esi*4]
lea ecx, [edi*4]
sub esi, ecx
lea ecx, [ecx + ecx*2]
sub edx, ecx
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x60]
lea edi, [ecx + edi*4]
mov dword [esp + 0x28], edi
add esi, ecx
mov dword [esp + 0x20], esi
add eax, ecx
mov dword [esp + 0x14], eax
add edx, ecx
mov dword [esp + 0x10], edx
xor ecx, ecx
mov edx, dword [esp + 0xd0]
cmp ebx, 0x20
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xc], ecx
jae 0x10163f88
mov eax, dword [esp + 0xdc]
cmp eax, 4
mov ebx, dword [esp + 0xa0]
jl 0x10163f8f
mov esi, dword [ebx - 3]
add ebx, 0xfffffffc
mov dword [esp + 0xa0], ebx
add eax, 0xfffffffc
mov dword [esp + 0xdc], eax
jmp 0x10163fd0
mov edi, edx
jmp 0x1016427f
test eax, eax
jle 0x10163fce
mov ecx, eax
neg ecx
mov dword [esp + 0x60], ecx
inc eax
mov ecx, 0x18
xor esi, esi
mov edx, ebx
movzx edi, byte [edx]
shl edi, cl
or esi, edi
dec edx
add ecx, 0xfffffff8
dec eax
cmp eax, 1
ja 0x10163fa5
add ebx, dword [esp + 0x60]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xdc], 0
jmp 0x10163fd0
xor esi, esi
mov eax, esi
shr eax, 0x18
cmp dword [esp + 0x104], 0
setne cl
mov edx, esi
not edx
test edx, 0x7f000000
mov dword [esp + 0x60], edx
sete ch
and ch, cl
movzx edi, ch
mov ecx, 8
sub ecx, edi
cmp esi, 0x90000000
setae byte [esp + 4]
mov ebx, esi
shr ebx, 0x10
mov edi, 0xff
and ebx, edi
mov edi, ebx
shl edi, cl
or edi, eax
test edx, 0x7f0000
sete al
and al, byte [esp + 4]
movzx eax, al
neg eax
lea edx, [ecx + eax]
add edx, 8
mov eax, 0x90
cmp ebx, eax
setae ch
mov ebx, esi
shr ebx, 8
mov eax, 0xff
and ebx, eax
mov eax, ebx
mov cl, dl
shl eax, cl
or eax, edi
test dword [esp + 0x60], 0x7f00
sete cl
and cl, ch
movzx ecx, cl
sub edx, ecx
mov dword [esp + 4], edx
mov ecx, 0x90
cmp ebx, ecx
setae bl
mov ecx, 0xff
and esi, ecx
mov edi, esi
lea ecx, [edx + 8]
shl edi, cl
or edi, eax
test byte [esp + 0x60], 0x7f
sete al
and al, bl
movzx eax, al
mov ecx, dword [esp + 0xa4]
mov ebx, ecx
sub ebx, eax
xor edx, edx
mov eax, 0x90
cmp esi, eax
setae byte [esp + 0x60]
xor eax, eax
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0xd0]
or dword [esp + 0xec], eax
mov eax, dword [esp + 4]
add eax, ebx
add eax, 0x10
cmp eax, 0x1f
mov dword [esp + 0xa4], eax
ja 0x1016410e
mov edx, dword [esp + 0xdc]
cmp edx, 4
mov dword [esp + 0x30], edi
jl 0x10164120
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx - 3]
add ecx, 0xfffffffc
mov dword [esp + 0xa0], ecx
add edx, 0xfffffffc
mov dword [esp + 0xdc], edx
jmp 0x10164166
mov al, byte [esp + 0x60]
mov dl, al
mov dword [esp + 0x104], edx
jmp 0x10164278
test edx, edx
mov ebx, dword [esp + 0xa0]
jle 0x10164164
mov eax, edx
neg eax
mov dword [esp + 0x60], eax
inc edx
mov ecx, 0x18
xor eax, eax
movzx edi, byte [ebx]
shl edi, cl
or eax, edi
dec ebx
add ecx, 0xfffffff8
dec edx
cmp edx, 1
ja 0x1016413b
mov ecx, dword [esp + 0x60]
add dword [esp + 0xa0], ecx
mov dword [esp + 0xdc], 0
jmp 0x10164166
xor eax, eax
mov ecx, 0x90
cmp esi, ecx
setae cl
mov ebx, eax
shr ebx, 0x18
mov edx, eax
not edx
mov dword [esp + 0x60], edx
test edx, 0x7f000000
sete dl
and dl, cl
movzx edx, dl
mov ecx, 8
sub ecx, edx
cmp eax, 0x90000000
setae byte [esp + 4]
mov esi, eax
shr esi, 0x10
mov edx, 0xff
and esi, edx
mov edx, esi
shl edx, cl
or edx, ebx
test dword [esp + 0x60], 0x7f0000
sete bl
and bl, byte [esp + 4]
movzx edi, bl
neg edi
add edi, ecx
add edi, 8
mov ecx, 0x90
cmp esi, ecx
setae byte [esp + 4]
mov esi, eax
shr esi, 8
mov ecx, 0xff
and esi, ecx
mov ebx, esi
mov ecx, edi
shl ebx, cl
or ebx, edx
test dword [esp + 0x60], 0x7f00
sete cl
and cl, byte [esp + 4]
movzx ecx, cl
sub edi, ecx
mov dword [esp + 4], edi
mov ecx, 0x90
cmp esi, ecx
setae byte [esp + 8]
mov ecx, 0xff
and eax, ecx
lea ecx, [edi + 8]
mov edi, eax
shl edi, cl
or edi, ebx
test byte [esp + 0x60], 0x7f
sete cl
and cl, byte [esp + 8]
movzx esi, cl
mov ecx, dword [esp + 0xa4]
mov edx, ecx
sub edx, esi
xor ebx, ebx
mov esi, 0x90
cmp eax, esi
setae bl
mov dword [esp + 0x104], ebx
xor eax, eax
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
or dword [esp + 0xec], eax
or edi, dword [esp + 0x30]
mov eax, dword [esp + 4]
add eax, edx
add eax, 0x10
mov dword [esp + 0xa4], eax
mov dword [esp + 0xd0], edi
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
test eax, eax
je 0x1016435a
mov edx, 0xf
xor ebx, ebx
mov dword [esp + 0x60], eax
test edx, eax
je 0x1016434b
mov esi, edx
and esi, 0x11111111
test esi, eax
je 0x101642cf
mov eax, edi
not edi
and edi, 1
mov ecx, dword [esp + 0x78]
shl edi, cl
mov ecx, dword [esp + 0x28]
xor edi, dword [ecx + ebx]
or edi, dword [esp + 0x3c]
mov dword [ecx + ebx], edi
mov edi, eax
mov eax, dword [esp + 0x60]
shr edi, 1
lea ecx, [esi + esi]
test ecx, eax
je 0x101642f9
mov eax, edi
not edi
and edi, 1
mov ecx, dword [esp + 0x78]
shl edi, cl
mov ecx, dword [esp + 0x20]
xor edi, dword [ecx + ebx]
or edi, dword [esp + 0x3c]
mov dword [ecx + ebx], edi
mov edi, eax
mov eax, dword [esp + 0x60]
shr edi, 1
lea ecx, [esi*4]
test ecx, eax
je 0x10164327
mov eax, edi
not edi
and edi, 1
mov ecx, dword [esp + 0x78]
shl edi, cl
mov ecx, dword [esp + 0x14]
xor edi, dword [ecx + ebx]
or edi, dword [esp + 0x3c]
mov dword [ecx + ebx], edi
mov edi, eax
mov eax, dword [esp + 0x60]
shr edi, 1
shl esi, 3
test esi, eax
je 0x1016434b
mov esi, edi
not esi
and esi, 1
mov ecx, dword [esp + 0x78]
shl esi, cl
mov ecx, dword [esp + 0x10]
xor esi, dword [ecx + ebx]
or esi, dword [esp + 0x3c]
mov dword [ecx + ebx], esi
shr edi, 1
shl edx, 4
add ebx, 4
cmp ebx, 0x20
jne 0x10164298
mov ecx, eax
shr ecx, 1
and ecx, 0x55555555
sub eax, ecx
mov ecx, eax
mov edx, 0x33333333
and ecx, edx
shr eax, 2
and eax, edx
add eax, ecx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xd0]
shrd edx, eax, cl
add dword [esp + 0x54], 4
shr eax, cl
test cl, 0x20
cmovne edx, eax
mov esi, 0
cmovne eax, esi
mov dword [esp + 0xec], eax
mov ebx, dword [esp + 0xa4]
sub ebx, ecx
mov ecx, dword [esp + 0xc]
add ecx, 8
add dword [esp + 0x20], 0x20
add dword [esp + 0x14], 0x20
add dword [esp + 0x10], 0x20
add dword [esp + 0x28], 0x20
mov eax, dword [esp + 0x40]
cmp ecx, eax
jl 0x10163f45
cmp dword [esp + 0x24], 1
ja 0x10164486
test eax, eax
jle 0x10164486
test byte [esp + 0xf8], 4
mov eax, dword [esp + 0x120]
cmove eax, dword [esp + 0x124]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xfc]
cmove eax, dword [esp + 0xc0]
mov dword [esp + 0x14], eax
xor edx, edx
xor esi, esi
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edx]
shrd ebx, eax, 0x1c
mov edi, eax
shr edi, 4
or edi, eax
or edi, ebx
mov ebx, dword [esp + 0x60]
mov dword [ebx + edx], edi
mov ecx, dword [ecx + edx + 4]
shl ecx, 0x1c
or ecx, edi
lea edi, [ecx + ecx]
and edi, 0xeeeeeeee
mov ebx, ecx
shr ebx, 1
and ebx, 0x77777777
or ebx, edi
or ebx, ecx
mov ecx, eax
not ecx
and ecx, ebx
mov edi, dword [esp + 0x60]
mov dword [edi + edx], ecx
mov ebx, eax
add esi, 8
add edx, 4
cmp esi, dword [esp + 0x40]
jl 0x10164430
mov esi, dword [esp + 0xf8]
lea eax, [esi + 1]
and eax, 3
neg eax
xor ecx, ecx
cmp esi, 7
lea eax, [esi + eax - 3]
cmovl eax, ecx
cmp esi, eax
mov ecx, dword [esp + 0x84]
jle 0x10164dff
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
imul eax, dword [esp + 0x40]
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x114]
lea ecx, [edx*4]
lea eax, [ecx + eax*4]
mov dword [esp + 0x94], eax
mov eax, edx
shl eax, 4
mov ebx, dword [esp + 0x130]
mov ecx, ebx
shl ecx, 4
sub eax, ecx
mov dword [esp + 0x1c], eax
lea ecx, [edx*8]
mov eax, dword [esp + 0x60]
lea edi, [ecx + eax*4]
lea ecx, [ebx*8]
sub edi, ecx
lea ecx, [ebx*4]
mov ebx, dword [esp + 0x88]
sub dword [esp + 0x94], ecx
lea edx, [edx + edx*2]
shl edx, 2
mov eax, dword [esp + 0x60]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x7c]
lea ecx, [ecx + ecx*2]
sub eax, ecx
mov ecx, dword [esp + 0x84]
add dword [esp + 0x94], ecx
add edi, ecx
mov dword [esp + 0x9c], edi
add eax, ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
lea eax, [ecx + eax*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov ecx, eax
mov eax, esi
mov dword [esp + 0x44], ecx
sub eax, ecx
lea ecx, [eax - 1]
cmp ecx, 3
jae 0x10164587
mov eax, dword [eax*4 + 0x10319b04]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x84]
jmp 0x10164664
xor ecx, ecx
dec ecx
mov dword [esp + 0x74], ecx
cmp eax, 5
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x44]
jl 0x10164668
cmp dword [esp + 0x40], 0
jle 0x10164dcf
mov dword [esp + 0x88], ebx
mov dword [esp + 0x7c], edx
test al, 4
mov eax, dword [esp + 0xc0]
mov ebx, eax
mov ecx, dword [esp + 0xfc]
cmove ebx, ecx
mov edx, dword [esp + 0x120]
cmove edx, dword [esp + 0x124]
mov dword [esp + 0x10], edx
cmove ecx, eax
mov dword [esp + 0x14], ecx
xor esi, esi
xor edi, edi
xor edx, edx
mov dword [esp + 0x60], ebx
mov eax, dword [ebx + esi]
mov ecx, dword [ebp + 0x18]
test cl, 8
jne 0x10164624
mov ecx, dword [ebx + esi + 4]
shl ecx, 0x1c
mov ebx, eax
shr ebx, 4
or ebx, ecx
shrd edx, eax, 0x1c
or ebx, edx
or ebx, eax
shl ebx, 3
and ebx, 0x88888888
mov edx, dword [esp + 0x10]
or ebx, dword [edx + esi]
jmp 0x1016462b
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + esi]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + esi]
not ecx
and ecx, ebx
mov dword [edx + esi], ecx
add edi, 8
add esi, 4
mov edx, eax
cmp edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
jl 0x101645f1
xor eax, eax
dec eax
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x40], 0
jle 0x10164dcf
test al, 4
mov dword [esp + 0x88], ebx
mov ebx, edx
mov edx, dword [esp + 0x124]
mov edi, edx
mov eax, dword [esp + 0x120]
cmove edi, eax
mov esi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xfc]
cmove esi, ecx
cmove eax, edx
mov edx, ebx
mov ebx, dword [esp + 0x88]
cmove ecx, dword [esp + 0xc0]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0x80], edi
mov ecx, dword [eax]
and ecx, dword [esp + 0x74]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x48], eax
je 0x10164d23
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov dword [esp + 0x54], 0
xor esi, esi
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x8c], eax
cmp eax, 0x20
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x10], esi
jae 0x10164a11
cmp ecx, 4
jl 0x10164777
mov eax, dword [esp + 0xa8]
mov edx, dword [eax]
add eax, 4
mov dword [esp + 0xa8], eax
add ecx, 0xfffffffc
mov dword [esp + 0xb4], ecx
jmp 0x101647ce
test ecx, ecx
jle 0x101647c7
lea eax, [ecx + 1]
xor ecx, ecx
mov esi, dword [esp + 0xa8]
mov edx, dword [esp + 0x98]
movzx edi, byte [esi]
mov ebx, 0xff
shl ebx, cl
shl edi, cl
not ebx
and ebx, edx
mov edx, edi
or edx, ebx
inc esi
add ecx, 8
dec eax
cmp eax, 1
ja 0x1016478e
mov eax, dword [esp + 0xb4]
add dword [esp + 0xa8], eax
mov dword [esp + 0xb4], 0
jmp 0x101647ce
mov edx, dword [esp + 0x98]
cmp dword [esp + 0xe0], 1
mov ecx, 0
adc ecx, 7
mov esi, edx
mov edi, 0xff
and esi, edi
xor eax, eax
cmp esi, edi
sete al
mov ebx, edx
shr ebx, 8
and ebx, edi
mov edi, ebx
shl edi, cl
neg eax
add eax, ecx
add eax, 8
mov dword [esp + 0x14], eax
xor ecx, ecx
mov eax, 0xff
cmp ebx, eax
sete cl
mov dword [esp + 0x20], ecx
mov ebx, edx
shr ebx, 0x10
and ebx, eax
mov eax, ebx
mov ecx, dword [esp + 0x14]
shl eax, cl
mov ecx, dword [esp + 0x20]
sub dword [esp + 0x14], ecx
mov ecx, 0xff
cmp ebx, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x20], ecx
shr edx, 0x18
mov ebx, edx
mov ecx, dword [esp + 0x14]
add ecx, 8
shl ebx, cl
or eax, edi
or eax, esi
or eax, ebx
mov ecx, dword [esp + 0x8c]
mov esi, ecx
sub esi, dword [esp + 0x20]
xor ebx, ebx
mov edi, 0xff
cmp edx, edi
sete byte [esp + 0x20]
xor edi, edi
shld edi, eax, cl
shl eax, cl
test cl, 0x20
cmovne edi, eax
mov ecx, 0
cmovne eax, ecx
or dword [esp + 0x7c], edi
or eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x14]
add ecx, esi
add ecx, 0x10
mov dword [esp + 0x8c], ecx
cmp ecx, 0x1f
ja 0x101648d1
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0xb4]
cmp ecx, 4
jl 0x101648ec
mov eax, dword [esp + 0xa8]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0xa8], eax
add ecx, 0xfffffffc
mov dword [esp + 0xb4], ecx
jmp 0x10164947
mov cl, byte [esp + 0x20]
mov bl, cl
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x88], eax
mov ebx, eax
jmp 0x10164a11
test ecx, ecx
jle 0x10164940
lea eax, [ecx + 1]
xor ecx, ecx
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0x98]
mov dword [esp + 0x14], esi
movzx esi, byte [edi]
mov ebx, 0xff
shl ebx, cl
shl esi, cl
not ebx
and ebx, dword [esp + 0x14]
or esi, ebx
inc edi
add ecx, 8
dec eax
cmp eax, 1
ja 0x10164903
mov eax, dword [esp + 0xb4]
add dword [esp + 0xa8], eax
mov dword [esp + 0xb4], 0
jmp 0x10164947
mov esi, dword [esp + 0x98]
xor eax, eax
mov ecx, 0xff
cmp edx, ecx
setne al
add eax, 7
mov edi, esi
and edi, ecx
mov dword [esp + 0x14], edi
xor edx, edx
cmp edi, ecx
mov ebx, 0xff
sete dl
mov ecx, eax
sub eax, edx
mov edi, esi
shr esi, 8
and esi, ebx
mov edx, esi
shl edx, cl
mov dword [esp + 0x28], edx
add eax, 8
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
mov esi, edi
shr esi, 0x10
and esi, ecx
mov ebx, esi
mov ecx, eax
shl ebx, cl
sub eax, edx
xor edx, edx
mov ecx, 0xff
cmp esi, ecx
sete dl
shr edi, 0x18
mov esi, edi
lea ecx, [eax + 8]
shl esi, cl
or ebx, dword [esp + 0x28]
or ebx, dword [esp + 0x14]
or ebx, esi
mov ecx, dword [esp + 0x8c]
mov esi, ecx
sub esi, edx
mov dword [esp + 0x14], esi
xor edx, edx
mov esi, 0xff
cmp edi, esi
sete dl
mov dword [esp + 0xe0], edx
xor edx, edx
shld edx, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
or dword [esp + 0x7c], edx
or ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
add eax, ecx
add eax, 0x10
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], ebx
mov edx, dword [esp + 0x54]
lea ecx, [edx*4]
mov edi, 0xf
mov esi, ecx
shl edi, cl
lea ecx, [edx + 4]
mov eax, dword [esp + 0x34]
add eax, edx
add eax, 4
cmp eax, dword [esp + 0x40]
cmovge ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], ecx
cmp edx, ecx
jge 0x10164c9b
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
not eax
and eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x50], esi
mov ecx, esi
mov eax, edx
mov dword [esp + 0x30], edi
mov edx, edi
mov edi, eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x10]
test edx, eax
je 0x10164b81
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
mov edi, edx
and edi, 0x11111111
test edi, eax
je 0x10164ac8
test bl, 1
je 0x10164abc
mov dword [esp + 0x20], ebx
mov ebx, eax
mov eax, 0x32
shl eax, cl
and eax, dword [esp + 4]
or ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0x20]
or dword [esp + 0x10], edi
mov dword [esp + 0x60], eax
shr ebx, 1
inc dword [esp + 0x14]
jmp 0x10164acc
mov dword [esp + 0x60], eax
lea eax, [edi + edi]
test dword [esp + 0x60], eax
je 0x10164afb
test bl, 1
je 0x10164af5
mov dword [esp + 0x20], ebx
mov ebx, 0x74
shl ebx, cl
or dword [esp + 0x10], eax
and ebx, dword [esp + 4]
or dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x20]
shr ebx, 1
inc dword [esp + 0x14]
lea eax, [edi*4]
test dword [esp + 0x60], eax
je 0x10164b13
test bl, 1
jne 0x10164b19
mov eax, dword [esp + 0x60]
jmp 0x10164b36
mov eax, dword [esp + 0x60]
jmp 0x10164b3c
mov dword [esp + 0x20], ebx
mov ebx, 0xe8
shl ebx, cl
or dword [esp + 0x10], eax
and ebx, dword [esp + 4]
mov eax, dword [esp + 0x60]
or eax, ebx
mov ebx, dword [esp + 0x20]
shr ebx, 1
inc dword [esp + 0x14]
shl edi, 3
test eax, edi
je 0x10164b4e
test bl, 1
jne 0x10164b58
mov esi, dword [esp + 0x10]
jmp 0x10164b77
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
jmp 0x10164b81
mov dword [esp + 0x20], ebx
mov ebx, eax
mov eax, 0xc0
shl eax, cl
mov esi, dword [esp + 0x10]
or esi, edi
and eax, dword [esp + 4]
or ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
shr ebx, 1
inc dword [esp + 0x14]
inc edi
shl edx, 4
add ecx, 4
cmp edi, dword [esp + 0x28]
jl 0x10164a7e
mov dword [esp + 0x60], eax
mov eax, esi
mov ecx, dword [esp + 0x50]
shr eax, cl
test ax, ax
je 0x10164ce1
mov edx, dword [esp + 0x54]
cmp edx, dword [esp + 0x28]
jge 0x10164c92
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x30]
test ecx, esi
je 0x10164c84
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], ecx
and ecx, 0x11111111
test ecx, esi
je 0x10164bf8
mov eax, ebx
shl eax, 0x1f
mov edx, ebx
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x78]
or eax, dword [edi + ebx*4]
or eax, dword [esp + 0x38]
mov dword [edi + ebx*4], eax
mov ebx, edx
shr ebx, 1
inc dword [esp + 0x14]
lea eax, [ecx + ecx]
test eax, esi
je 0x10164c24
mov eax, ebx
shl eax, 0x1f
mov esi, ebx
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
or eax, dword [ebx + edx*4]
or eax, dword [esp + 0x38]
mov dword [ebx + edx*4], eax
mov ebx, esi
mov esi, dword [esp + 0x10]
shr ebx, 1
inc dword [esp + 0x14]
lea eax, [ecx*4]
test eax, esi
je 0x10164c54
mov eax, ebx
shl eax, 0x1f
mov esi, ebx
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
or eax, dword [ebx + edx*4]
or eax, dword [esp + 0x38]
mov dword [ebx + edx*4], eax
mov ebx, esi
mov esi, dword [esp + 0x10]
shr ebx, 1
inc dword [esp + 0x14]
shl ecx, 3
test ecx, esi
je 0x10164c7c
mov eax, ebx
shl eax, 0x1f
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x54]
or eax, dword [ecx + edi*4]
or eax, dword [esp + 0x38]
mov dword [ecx + edi*4], eax
mov edx, edi
shr ebx, 1
inc dword [esp + 0x14]
jmp 0x10164c80
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
inc edx
shl ecx, 4
cmp edx, dword [esp + 0x28]
jl 0x10164bbd
mov ebx, dword [esp + 0x88]
jmp 0x10164ca6
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x14]
shrd ebx, edx, cl
shr edx, cl
test cl, 0x20
cmovne ebx, edx
mov eax, 0
cmovne edx, eax
mov eax, dword [esp + 0x8c]
sub eax, ecx
mov dword [esp + 0x54], 4
test byte [esp + 0x18], 1
mov cl, 1
je 0x10164729
jmp 0x10164cee
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x88]
jmp 0x10164caa
mov dword [esp + 0x8c], eax
mov dword [esp + 0x7c], edx
mov eax, esi
shr eax, 0x1c
mov ecx, esi
shr ecx, 0x1d
or ecx, eax
mov eax, esi
shr eax, 0x1b
and eax, 0xe
or eax, ecx
mov edx, dword [esp + 0x58]
mov ecx, dword [edx + 4]
not ecx
and ecx, eax
mov eax, dword [esp + 0x48]
or dword [eax + 4], ecx
jmp 0x10164d2d
mov dword [esp + 0x7c], edx
xor esi, esi
mov edx, dword [esp + 0x58]
or esi, dword [edx]
mov dword [esp + 0x10], esi
mov ecx, esi
shr ecx, 3
and ecx, 0x11111111
mov edx, ecx
shl edx, 4
mov eax, ecx
shr eax, 4
or eax, edx
or eax, ecx
cmp dword [esp + 0x34], 0
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x90]
je 0x10164d6e
shl ecx, 0x1c
mov edx, dword [esi - 4]
not edx
and edx, ecx
or dword [edi - 4], edx
mov ecx, dword [esi]
not ecx
and eax, ecx
or dword [edi], eax
mov ecx, dword [esp + 0x10]
shr ecx, 0x1f
mov eax, dword [esi + 4]
not eax
and eax, ecx
or dword [edi + 4], eax
add esi, 4
add edi, 4
mov ecx, dword [esp + 0x34]
add ecx, 8
add dword [esp + 0x58], 4
mov eax, dword [esp + 0x48]
add eax, 4
add dword [esp + 0x4c], 0x20
add dword [esp + 0x24], 0x20
add dword [esp + 8], 0x20
add dword [esp + 0x78], 0x20
mov edx, ecx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
jg 0x101646e8
mov eax, dword [esp + 0x44]
add eax, 4
mov esi, dword [esp + 0x1c]
add dword [esp + 0x94], esi
add dword [esp + 0x9c], esi
add dword [esp + 0x5c], esi
add dword [esp + 0x2c], esi
mov esi, dword [esp + 0xf8]
cmp esi, eax
jg 0x1016455e
test esi, esi
jle 0x10164e65
mov eax, dword [esp + 0x114]
shl eax, 2
mov edx, dword [esp + 0x130]
shl edx, 2
sub eax, edx
mov dword [esp + 0x114], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
test eax, eax
mov ebx, ecx
jle 0x10164e4e
xor ecx, ecx
mov edx, dword [ebx + ecx*4]
mov esi, edx
and esi, 0x7fffffff
mov edi, esi
neg edi
test edx, edx
cmovns edi, esi
mov dword [ebx + ecx*4], edi
inc ecx
cmp eax, ecx
jne 0x10164e32
mov eax, dword [esp + 0x60]
inc eax
add ebx, dword [esp + 0x114]
cmp eax, dword [esp + 0xf8]
mov ecx, ebx
jne 0x10164e22
xor eax, eax
inc eax
jmp 0x1015c69f
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x10164e9b
push esi
call fcn.1000a450
add esp, 4
push 0x10319a6e
jmp 0x1015cb27
push str.Malformed_HT_codeblock._VLC_code_produces_significant_samples_outside_the_codeblock_area._n
jmp 0x1015cdf2
push str.Malformed_HT_codeblock._Decoding_this_codeblock_is_stopped._U_q_is_larger_than_zero_bitplanes__1__n
jmp 0x1015cdf2
push 0x10319a6e
jmp 0x1015cdf2