Function at 0x102dcba
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov edi, edi
mov ebp, esp
sub esp, 0x180
mov eax, dword [0x12d3ad4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov dword [ebp - 0x108], eax
mov eax, dword [ebp + 0xc]
mov esi, 0x1000000
cmp ecx, esi
push edi
mov edi, 0xfffffff
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x94], ecx
jb 0x1029df1
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp ecx, eax
jae 0x102891c
mov eax, dword [0x10dd6fc]
and dword [ebp - 0x7c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x1027e9c
mov edx, dword [ebp - 0x7c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x11ded70]
mov dword [ebp - 0x5c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ecx, edx
jae 0x1027e8a
dec eax
mov dword [ebp - 0x60], eax
jmp 0x1027e97
jbe 0x102801f
inc eax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x7c]
jge 0x1027e67
xor eax, eax
test eax, eax
je 0x1028916
mov ecx, dword [eax + 4]
and ecx, 7
lea ecx, [ecx + eax + 8]
mov eax, dword [eax]
shr eax, 2
and eax, edi
lea edx, [ecx + eax]
mov dword [ebp - 0x74], ecx
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
mov dword [ebp - 0x8c], eax
sub ecx, eax
mov dword [ebp - 0x68], edx
inc ecx
mov dword [ebp - 0x7c], ecx
xor eax, eax
test ecx, ecx
je 0x1027f0b
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x7c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x7c], 0
jne 0x1027ee1
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x8c]
mov dword [ebp - 0x88], eax
push dword [ebp - 0x74]
mov eax, 0x869bc3e0
mov eax, dword [ebp - 0x68]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x138]
push eax
mov dword [ebp - 0x138], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x33f88b9
mov ecx, dword [0x11e47bc]
mov eax, dword [ebp - 0x134]
and dword [ebp - 0xe8], 0
and dword [ebp - 0xe4], 0
and eax, edi
and ebx, edi
mov dword [ebp - 0x80], eax
mov eax, esi
add ebx, esi
add esp, 0x10
mov dword [ebp - 0x84], ebx
sub eax, ecx
mov dword [ebp - 0x7c], eax
jne 0x1028038
and dword [ebp - 0x84], 0
cmp dword [ebp - 0x80], 0
jbe 0x102834e
mov edi, 0x2becbda7
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x84]
movzx edx, byte [ebx + eax]
add edx, edi
add dword [ebp - 0xe8], edx
add edx, dword [ebp - 0xe4]
mov eax, edx
imul eax, eax, 0x70ec
rol eax, 7
ror edx, 7
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xe8], eax
inc dword [ebp - 0x84]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x80]
jb 0x1027f9f
jmp 0x102834e
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea eax, [eax + ecx + 0x1000000]
jmp 0x1027e9e
mov ecx, ebx
mov eax, dword [ebp - 0x80]
add eax, ebx
sub ecx, esi
mov edi, ecx
mov edx, dword [0x100003c]
lea edx, [edx + 0x10000a0]
mov dword [ebp - 0x98], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x60], edx
mov edx, ecx
and edx, 0xfffff000
sub edi, edx
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x80]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
sub ecx, edi
mov dword [ebp - 0xb0], edi
add eax, esi
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0xac], ecx
mov ecx, eax
add edi, eax
cmp eax, edi
mov dword [ebp - 0xa8], edi
jmp 0x10280a1
cmp dword [ecx], edx
jae 0x10280a9
add ecx, dword [ecx + 4]
cmp ecx, edi
mov dword [ebp - 0xa4], ecx
jne 0x1028098
and dword [ebp - 0xa0], 0
cmp ecx, edi
je 0x10280e3
cmp dword [ecx], edx
jne 0x10280e3
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x10280e3
add ecx, 8
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x5c]
jae 0x10280e3
inc dword [ebp - 0xa0]
inc ecx
inc ecx
cmp dword [ebp - 0xa0], eax
jne 0x10280c5
mov ecx, 0x7fffffff
mov edi, 0x2becbda7
mov eax, dword [ebp - 0xa4]
jmp 0x10280fb
mov ebx, dword [ebp - 0x84]
cmp eax, dword [ebp - 0xa8]
je 0x10282bf
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x10282bf
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa4]
jne 0x1028157
add eax, dword [eax + 4]
mov dword [ebp - 0xa4], eax
cmp eax, dword [ebp - 0xa8]
je 0x10282bf
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x10282bf
and dword [ebp - 0xa0], 0
jmp 0x1028115
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
jne 0x102817e
mov edx, dword [ebp - 0xa0]
movzx edx, word [eax + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0xac]
jae 0x10282bf
mov edx, dword [ebp - 0xa0]
mov ebx, 0xf000
inc dword [ebp - 0xa0]
test word [eax + edx*2 + 8], bx
je 0x10280f5
lea edx, [eax + edx*2 + 8]
movzx edx, word [edx]
and edx, 0xfff
xor ebx, ebx
mov eax, dword [eax]
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x60], eax
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x5c], eax
je 0x1028230
mov eax, dword [ebp - 0x84]
movzx edx, byte [ebx + eax]
add edx, edi
add dword [ebp - 0xe8], edx
add edx, dword [ebp - 0xe4]
mov eax, edx
imul eax, eax, 0x70ec
rol eax, 7
ror edx, 7
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xe8], eax
inc ebx
mov dword [ebp - 0xe4], eax
cmp ebx, dword [ebp - 0x5c]
jb 0x10281c0
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
sub eax, dword [ebp - 0x7c]
mov dword [ebp - 0x12c], eax
xor ebx, ebx
movzx edx, byte [ebp + ebx - 0x12c]
add edx, edi
add dword [ebp - 0xe8], edx
add edx, dword [ebp - 0xe4]
mov eax, edx
imul eax, eax, 0x70ec
rol eax, 7
ror edx, 7
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xe8], eax
inc ebx
mov dword [ebp - 0xe4], eax
cmp ebx, 4
jb 0x1028240
mov ebx, dword [ebp - 0x60]
add ebx, 4
mov dword [ebp - 0x84], ebx
jmp 0x10280ed
mov eax, dword [ebp - 0x98]
and dword [ebp - 0x84], 0
sub eax, ebx
mov dword [ebp - 0x60], eax
je 0x102834e
mov eax, dword [ebp - 0x84]
movzx edx, byte [ebx + eax]
add edx, edi
add dword [ebp - 0xe8], edx
add edx, dword [ebp - 0xe4]
mov eax, edx
imul eax, eax, 0x70ec
rol eax, 7
ror edx, 7
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xe8], eax
inc dword [ebp - 0x84]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x60]
jb 0x10282d3
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xe8]
mov byte [ebp + eax - 0x34], cl
inc eax
cmp eax, 8
jb 0x1028352
mov eax, 0xfbcdd0e2
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x94]
and edx, 7
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x60], edx
je 0x102856d
mov dword [ebp - 0x90], ebx
cmp edx, ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x6c], ebx
not eax
jle 0x10283e4
mov dword [ebp - 0x84], 0x38
mov ecx, dword [ebp - 0x84]
movzx ebx, byte [edi]
cmp dword [ebp - 0x6c], 4
jge 0x10283cc
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x9c], ebx
jmp 0x10283d4
shl ebx, cl
or dword [ebp - 0x90], ebx
sub dword [ebp - 0x84], 8
inc edi
inc dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], edx
jl 0x10283b0
movzx ebx, word [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
xor ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x34]
sub edx, ecx
xor eax, edx
movzx edx, word [ebp - 0x32]
mov ecx, eax
mov dword [ebp - 0x64], eax
xor ecx, edx
rol ecx, 6
imul ecx, ebx
ror eax, 0xc
xor eax, ecx
xor eax, dword [ebp - 0x74]
mov ebx, eax
mov ecx, eax
sub ecx, dword [ebp - 0x30]
ror ecx, 6
imul ecx, edx
rol ebx, 0xf
movzx edx, word [ebp - 0x34]
xor ebx, ecx
xor dword [ebp - 0x64], ebx
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x64]
ror ecx, 7
mov ebx, dword [ebp - 0x64]
imul ecx, edx
ror ebx, 1
sub ecx, ebx
xor eax, ecx
movzx ecx, word [ebp - 0x2e]
mov dword [ebp - 0x84], edx
movzx edx, word [ebp - 0x30]
mov ebx, eax
sub ebx, edx
imul ebx, ecx
mov ecx, eax
shr ecx, 5
sub ebx, ecx
xor dword [ebp - 0x64], ebx
movzx ebx, word [ebp - 0x2e]
mov ecx, dword [ebp - 0x64]
xor ecx, ebx
mov ebx, dword [ebp - 0x64]
rol ecx, 4
imul ecx, edx
movzx edx, word [ebp - 0x32]
ror ebx, 4
sub ecx, ebx
xor eax, ecx
mov ecx, dword [ebp - 0x30]
xor ecx, eax
mov ebx, eax
rol ecx, 4
imul ecx, edx
ror ebx, 0xd
sub ecx, ebx
xor dword [ebp - 0x64], ecx
movzx ecx, word [ebp - 0x30]
mov ebx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x64]
xor ebx, ecx
imul ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x34]
ror edx, 1
sub ebx, edx
xor eax, ebx
sub ecx, eax
mov ebx, eax
movzx edx, word [ebp - 0x2e]
ror ecx, 3
imul ecx, edx
mov edx, dword [ebp - 0x64]
ror ebx, 4
add ebx, ecx
xor edx, ebx
movzx ecx, word [ebp - 0x30]
mov ebx, edx
ror ebx, 0xe
sub ebx, ecx
imul ebx, dword [ebp - 0x84]
xor eax, ebx
movzx ecx, word [ebp - 0x32]
mov ebx, eax
xor ebx, dword [ebp - 0x84]
and dword [ebp - 0x6c], 0
imul ebx, ecx
mov ecx, eax
shr ecx, 6
xor ebx, ecx
xor edx, ebx
mov ecx, edx
mov ebx, dword [ebp - 0x60]
sub ecx, dword [ebp - 0x30]
xor edx, dword [ebp - 0x90]
sub ecx, dword [ebp - 0x84]
mov dword [ebp - 0x64], edx
xor ecx, dword [ebp - 0x9c]
xor eax, ecx
mov dword [ebp - 0x78], eax
test ebx, ebx
jle 0x1028545
mov ebx, dword [ebp - 0x70]
inc dword [ebp - 0x70]
cmp dword [ebp - 0x6c], 4
jge 0x102852e
rol dword [ebp - 0x78], 8
mov cl, byte [ebp - 0x78]
mov byte [ebx], cl
jmp 0x1028537
rol dword [ebp - 0x64], 8
mov cl, byte [ebp - 0x64]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x60]
cmp dword [ebp - 0x6c], ebx
jl 0x1028517
add ebx, 0xfffffffc
test ebx, ebx
jle 0x102855a
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edx, cl
shl edx, cl
jmp 0x102857f
xor edx, edx
test ebx, ebx
jge 0x102857f
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x102857f
mov dword [ebp - 0x9c], eax
xor edx, edx
not eax
mov dword [ebp - 0x90], eax
xor eax, eax
mov ecx, dword [ebp - 0x8c]
shr ecx, 3
test ecx, ecx
jbe 0x102876f
movzx ebx, word [ebp - 0x2e]
mov dword [ebp - 0x7c], ebx
movzx ebx, word [ebp - 0x30]
mov dword [ebp - 0x60], ebx
movzx ebx, word [ebp - 0x32]
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x5c], ecx
jmp 0x10285b3
mov edi, dword [ebp - 0x98]
movzx ecx, byte [edi]
shl ecx, 8
movzx ebx, byte [edi + 1]
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 2]
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x78], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 6]
xor eax, dword [ebp - 0x78]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 7]
or ecx, ebx
add edi, 8
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x98], edi
mov edi, dword [ebp - 0x30]
xor edi, eax
sub ebx, edi
xor ebx, ecx
xor edx, ebx
mov ecx, edx
mov edi, edx
xor ecx, dword [ebp - 0x84]
rol ecx, 6
imul ecx, dword [ebp - 0x60]
ror edi, 0xc
xor edi, ecx
xor eax, edi
mov edi, eax
mov ecx, eax
sub ecx, dword [ebp - 0x30]
ror ecx, 6
imul ecx, dword [ebp - 0x84]
rol edi, 0xf
xor edi, ecx
mov ecx, dword [ebp - 0x30]
xor edx, edi
sub ecx, edx
mov ebx, edx
movzx edi, word [ebp - 0x34]
ror ecx, 7
imul ecx, edi
movzx edi, word [ebp - 0x30]
ror ebx, 1
sub ecx, ebx
xor eax, ecx
mov ebx, eax
mov ecx, eax
sub ecx, edi
imul ecx, dword [ebp - 0x7c]
shr ebx, 5
sub ecx, ebx
xor edx, ecx
mov ecx, edx
xor ecx, dword [ebp - 0x7c]
rol ecx, 4
mov ebx, edx
imul ecx, edi
ror ebx, 4
sub ecx, ebx
xor eax, ecx
mov ecx, dword [ebp - 0x30]
xor ecx, eax
mov edi, eax
rol ecx, 4
imul ecx, dword [ebp - 0x84]
ror edi, 0xd
sub ecx, edi
xor edx, ecx
mov edi, edx
ror edi, 1
movzx ecx, word [ebp - 0x30]
mov ebx, edx
xor ebx, ecx
movzx ecx, word [ebp - 0x34]
imul ebx, ecx
mov ecx, dword [ebp - 0x34]
sub ebx, edi
xor eax, ebx
mov edi, eax
sub ecx, eax
ror ecx, 3
imul ecx, dword [ebp - 0x7c]
ror edi, 4
add edi, ecx
xor edx, edi
movzx ecx, word [ebp - 0x30]
mov edi, edx
mov dword [ebp - 0x60], ecx
ror edi, 0xe
sub edi, ecx
movzx ecx, word [ebp - 0x34]
imul edi, ecx
xor eax, edi
mov ebx, eax
mov edi, eax
xor edi, ecx
imul edi, dword [ebp - 0x84]
shr ebx, 6
xor edi, ebx
xor edx, edi
mov edi, edx
sub edi, dword [ebp - 0x30]
xor edx, dword [ebp - 0x90]
sub edi, ecx
mov cl, byte [ebp - 0x55]
xor edi, dword [ebp - 0x9c]
xor eax, edi
mov edi, dword [ebp - 0x70]
mov byte [edi + 3], al
xor cl, al
mov byte [edi + 7], dl
xor cl, dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
mov byte [edi + 1], al
xor cl, al
ror edx, 8
xor cl, dl
mov byte [edi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x78]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x9c], ecx
add edi, 8
mov ecx, dword [ebp - 0x64]
dec dword [ebp - 0x5c]
ror eax, 8
ror edx, 8
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x70], edi
jne 0x10285ad
mov ecx, dword [ebp - 0x68]
movzx eax, byte [ebp - 0x55]
movzx ecx, byte [ecx + 8]
sub eax, ecx
je 0x1028810
call 0x1244f80
mov ecx, 0xfffff000
and eax, ecx
mov esi, 0x10d8814
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [eax + 8], esi
mov dword [ebp - 0x7c], ecx
xor eax, eax
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x7c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x7c], 0
jne 0x10287b7
xor edx, edx
div ecx
inc edx
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x104]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x1028805
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x10287fd
mov eax, esi
jmp 0x102e508
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x88]
mov eax, dword [0x11e47bc]
mov dword [ebp - 0x60], ebx
sub esi, eax
mov dword [ebp - 0x5c], esi
jne 0x1028833
test ebx, ebx
je 0x1028901
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x8c]
sub edi, dword [ebp - 0x94]
add eax, ecx
xor esi, esi
mov ecx, dword [0x11efd70]
mov dword [ebp - 0x12c], eax
dec ecx
js 0x1028886
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102887a
lea ecx, [eax - 1]
jmp 0x102887f
jbe 0x102888e
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102885b
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x90], esi
jmp 0x10288f3
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x90], eax
jmp 0x10288f3
mov eax, dword [ebp - 0x90]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x12c]
jae 0x1028901
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x10288e2
dec ecx
je 0x10288de
dec ecx
jne 0x10288e7
mov edx, dword [ebp - 0x5c]
jmp 0x10288e7
mov edx, ebx
jmp 0x10288e7
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x10288ed
add dword [esi], edx
inc dword [ebp - 0x90]
mov eax, dword [ebp - 0x90]
cmp eax, dword [0x11efd70]
jb 0x1028899
mov eax, dword [0x1116588]
mov eax, 0x89e38103
mov eax, dword [ebp - 0x88]
jmp 0x102e508
mov ecx, dword [ebp - 0x94]
cmp ecx, esi
jb 0x1029df1
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp ecx, eax
jae 0x1029384
mov eax, dword [0x12acc68]
and dword [ebp - 0x7c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x102897f
mov edx, dword [ebp - 0x7c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1007050]
mov dword [ebp - 0x5c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ecx, edx
jae 0x102896d
dec eax
mov dword [ebp - 0x60], eax
jmp 0x102897a
jbe 0x1028ae3
inc eax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x7c]
jge 0x102894a
xor eax, eax
test eax, eax
je 0x102937e
mov ecx, dword [eax]
and ecx, 7
lea edx, [ecx + eax + 8]
mov ecx, dword [eax + 4]
and ecx, edi
lea eax, [ecx + edx]
mov dword [ebp - 0x68], eax
mov eax, dword [0x1116588]
sub eax, ecx
mov dword [ebp - 0x74], edx
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], edx
lea edx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x60], edx
test edx, edx
mov dword [ebp - 0x7c], edx
je 0x10289ef
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x7c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x7c], 0
jne 0x10289c5
xor edx, edx
div dword [ebp - 0x60]
lea eax, [ebx + edx]
push eax
push ecx
push dword [ebp - 0x74]
mov dword [ebp - 0x80], eax
mov eax, 0xef03a6e5
mov eax, dword [ebp - 0x68]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x17c], eax
lea eax, [ebp - 0x180]
push eax
mov dword [ebp - 0x180], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x4ff4c5bb
mov ecx, dword [0x11e47bc]
mov eax, dword [ebp - 0x17c]
and dword [ebp - 0xc8], 0
and dword [ebp - 0xc4], 0
and eax, edi
and ebx, edi
add ebx, esi
mov dword [ebp - 0x88], eax
add esp, 0x10
mov dword [ebp - 0x78], ebx
mov ebx, 0xfffff000
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x7c], eax
jne 0x1028afc
xor ebx, ebx
cmp dword [ebp - 0x88], ebx
jbe 0x1028dd3
mov edi, 0x6004f7c8
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x78]
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0xc8], eax
add eax, dword [ebp - 0xc4]
imul eax, eax, 0x9ffb0838
ror eax, 1
mov edx, eax
imul eax, eax, 0x6581
rol eax, 8
ror edx, 8
xor eax, edx
mov edx, 0x9ffb0838
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc8], eax
inc ebx
mov dword [ebp - 0xc4], eax
cmp ebx, dword [ebp - 0x88]
jb 0x1028a7e
jmp 0x1028dd3
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 4]
and ecx, edi
mov eax, dword [eax]
and eax, 0x3f
lea eax, [eax + ecx + 0x1000000]
jmp 0x1028981
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x88]
mov edx, dword [0x100003c]
add eax, ecx
lea edx, [edx + 0x10000a0]
sub ecx, esi
mov dword [ebp - 0x84], eax
mov edi, ecx
and edi, ebx
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x60], edx
mov edx, ecx
sub edx, edi
mov dword [ebp - 0x5c], edx
mov edx, dword [ebp - 0x88]
add ecx, edx
mov edx, ecx
and edx, ebx
sub ecx, edx
mov dword [ebp - 0xac], ecx
add eax, esi
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0xb0], edx
mov ebx, eax
add ecx, eax
mov dword [ebp - 0xa8], ecx
cmp eax, ecx
je 0x1028b66
cmp dword [ebx], edi
jae 0x1028b66
add ebx, dword [ebx + 4]
cmp ebx, ecx
jne 0x1028b5b
and dword [ebp - 0xa0], 0
cmp ebx, ecx
je 0x1028b9f
cmp dword [ebx], edi
jne 0x1028b9f
mov ecx, dword [ebx + 4]
sub ecx, 8
shr ecx, 1
je 0x1028b9f
lea edi, [ebx + 8]
movzx eax, word [edi]
and eax, 0xfff
cmp eax, dword [ebp - 0x5c]
jae 0x1028b9f
inc dword [ebp - 0xa0]
inc edi
inc edi
cmp dword [ebp - 0xa0], ecx
jne 0x1028b82
mov ecx, 0x7fffffff
mov edi, 0x6004f7c8
jmp 0x1028bb1
mov edx, dword [ebp - 0xb0]
cmp ebx, dword [ebp - 0xa8]
je 0x1028d66
cmp dword [ebx], edx
ja 0x1028d66
mov eax, dword [ebx + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0xa0], eax
jne 0x1028bfb
add ebx, dword [ebx + 4]
cmp ebx, dword [ebp - 0xa8]
je 0x1028d66
mov eax, dword [ebp - 0xb0]
cmp dword [ebx], eax
ja 0x1028d66
and dword [ebp - 0xa0], 0
jmp 0x1028bc5
mov eax, dword [ebp - 0xb0]
cmp dword [ebx], eax
jne 0x1028c21
mov eax, dword [ebp - 0xa0]
movzx eax, word [ebx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0xac]
jae 0x1028d66
mov edx, dword [ebp - 0xa0]
inc dword [ebp - 0xa0]
mov eax, 0xf000
test word [ebx + edx*2 + 8], ax
je 0x1028bab
lea eax, [ebx + edx*2 + 8]
and dword [ebp - 0x88], 0
mov edx, dword [ebx]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x60], eax
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x5c], eax
je 0x1028cd4
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x78]
movzx eax, byte [eax + edx]
sub eax, edi
add dword [ebp - 0xc8], eax
add eax, dword [ebp - 0xc4]
imul eax, eax, 0x9ffb0838
ror eax, 1
mov edx, eax
imul edx, edx, 0x6581
rol edx, 8
ror eax, 8
xor edx, eax
mov eax, edx
mov edx, 0x9ffb0838
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc8], eax
inc dword [ebp - 0x88]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x5c]
jb 0x1028c64
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
sub eax, dword [ebp - 0x7c]
and dword [ebp - 0x88], 0
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x88]
movzx eax, byte [ebp + eax - 0x114]
sub eax, edi
add dword [ebp - 0xc8], eax
add eax, dword [ebp - 0xc4]
imul eax, eax, 0x9ffb0838
ror eax, 1
mov edx, eax
imul edx, edx, 0x6581
rol edx, 8
ror eax, 8
xor edx, eax
mov eax, edx
mov edx, 0x9ffb0838
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc8], eax
inc dword [ebp - 0x88]
cmp dword [ebp - 0x88], 4
mov dword [ebp - 0xc4], eax
jb 0x1028ce9
mov eax, dword [ebp - 0x60]
add eax, 4
mov dword [ebp - 0x78], eax
jmp 0x1028bab
xor ebx, ebx
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x60], eax
je 0x1028dd3
mov eax, dword [ebp - 0x78]
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0xc8], eax
add eax, dword [ebp - 0xc4]
imul eax, eax, 0x9ffb0838
ror eax, 1
mov edx, eax
imul eax, eax, 0x6581
rol eax, 8
ror edx, 8
xor eax, edx
mov edx, 0x9ffb0838
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
inc ebx
cmp ebx, dword [ebp - 0x60]
jb 0x1028d76
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xc8]
mov byte [ebp + eax - 0x1c], cl
inc eax
cmp eax, 8
jb 0x1028dd5
mov eax, 0x76bc4795
mov eax, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x98]
and eax, 7
mov dword [ebp - 0x60], eax
je 0x1028fe9
mov edi, dword [ebp - 0x74]
xor ecx, ecx
not edi
cmp eax, ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x6c], ecx
jle 0x1028e66
mov dword [ebp - 0x88], 0x38
cmp dword [ebp - 0x6c], 4
movzx edx, byte [ebx]
mov ecx, dword [ebp - 0x88]
jge 0x1028e4e
add ecx, 0xffffffe0
shl edx, cl
or dword [ebp - 0x90], edx
jmp 0x1028e56
shl edx, cl
or dword [ebp - 0x9c], edx
sub dword [ebp - 0x88], 8
inc ebx
inc dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], eax
jl 0x1028e32
mov edx, dword [ebp - 0x74]
movzx ecx, word [ebp - 0x16]
movzx eax, word [ebp - 0x18]
xor eax, dword [ebp - 0x74]
rol eax, 6
imul ecx, eax
mov eax, dword [ebp - 0x1c]
rol edx, 7
xor edx, ecx
xor edi, edx
mov edx, dword [ebp - 0x18]
movzx ecx, dx
sub eax, edi
rol eax, 1
mov dword [ebp - 0x5c], eax
mov eax, edi
imul ecx, dword [ebp - 0x5c]
ror eax, 3
add eax, ecx
xor eax, dword [ebp - 0x74]
lea ecx, [eax + edx]
ror ecx, 2
movzx edx, word [ebp - 0x1a]
mov dword [ebp - 0x6c], eax
imul ecx, edx
rol eax, 0xe
sub ecx, eax
xor edi, ecx
mov eax, edi
movzx ecx, word [ebp - 0x1c]
sub eax, ecx
xor eax, dword [ebp - 0x6c]
xor eax, dword [ebp - 0x18]
mov dword [ebp - 0x6c], eax
mov edx, eax
movzx eax, word [ebp - 0x16]
not edx
ror edx, 0xa
add edx, eax
imul edx, ecx
xor edi, edx
mov edx, edi
xor edx, eax
movzx eax, word [ebp - 0x18]
mov ecx, edi
imul edx, eax
ror ecx, 8
xor ecx, edx
xor dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
movzx ecx, word [ebp - 0x1c]
xor eax, ecx
rol eax, 6
movzx ecx, word [ebp - 0x1a]
imul eax, ecx
ror edx, 3
add edx, eax
xor edi, edx
mov ecx, edi
movzx eax, word [ebp - 0x18]
mov edx, edi
xor edx, eax
movzx eax, word [ebp - 0x1c]
imul edx, eax
movzx eax, word [ebp - 0x16]
ror ecx, 0xb
sub edx, ecx
xor dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x6c]
ror edx, 0xc
movzx ecx, word [ebp - 0x18]
sub edx, eax
imul edx, ecx
xor edi, edx
mov eax, edi
xor eax, dword [ebp - 0x1c]
mov edx, edi
rol eax, 6
rol edx, 3
imul eax, ecx
xor edx, eax
movzx ecx, word [ebp - 0x1a]
mov eax, edx
mov edx, dword [ebp - 0x6c]
xor edx, eax
mov eax, edx
and dword [ebp - 0x6c], 0
xor eax, dword [ebp - 0x18]
rol eax, 3
imul eax, ecx
mov ecx, edx
shr ecx, 0xa
sub eax, ecx
mov ecx, dword [ebp - 0x60]
xor edi, eax
mov eax, dword [ebp - 0x90]
xor eax, edi
xor edi, dword [ebp - 0x9c]
xor eax, edx
xor eax, dword [ebp - 0x18]
mov dword [ebp - 0x64], edi
xor eax, dword [ebp - 0x1c]
test ecx, ecx
mov dword [ebp - 0x78], eax
jle 0x1028fbf
mov edx, dword [ebp - 0x70]
inc dword [ebp - 0x70]
cmp dword [ebp - 0x6c], 4
jge 0x1028fa8
rol dword [ebp - 0x78], 8
mov cl, byte [ebp - 0x78]
mov byte [edx], cl
jmp 0x1028fb1
rol dword [ebp - 0x64], 8
mov cl, byte [ebp - 0x64]
mov byte [edx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x60]
cmp dword [ebp - 0x6c], ecx
jl 0x1028f91
add ecx, 0xfffffffc
test ecx, ecx
jle 0x1028fd8
push 4
pop edx
sub edx, ecx
shl edx, 3
mov ecx, edx
shr edi, cl
shl edi, cl
mov edx, edi
jmp 0x1028ffe
xor edx, edx
test ecx, ecx
jge 0x1028ffe
neg ecx
shl ecx, 3
shr eax, cl
shl eax, cl
jmp 0x1028ffe
xor edx, edx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x90], eax
not eax
mov dword [ebp - 0x9c], eax
xor eax, eax
mov ecx, dword [ebp - 0x98]
shr ecx, 3
test ecx, ecx
jbe 0x10291f7
movzx edi, word [ebp - 0x16]
mov dword [ebp - 0x88], edi
movzx edi, word [ebp - 0x18]
mov dword [ebp - 0x84], edi
movzx edi, word [ebp - 0x1a]
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x60], ecx
jmp 0x1029032
mov ebx, dword [ebp - 0x5c]
movzx edi, byte [ebx]
shl edi, 8
movzx ecx, byte [ebx + 1]
or ecx, edi
shl ecx, 8
movzx edi, byte [ebx + 2]
or ecx, edi
movzx edi, byte [ebx + 3]
shl ecx, 8
or ecx, edi
movzx edi, byte [ebx + 5]
mov dword [ebp - 0x78], ecx
xor eax, dword [ebp - 0x78]
movzx ecx, byte [ebx + 4]
shl ecx, 8
or ecx, edi
shl ecx, 8
movzx edi, byte [ebx + 6]
or ecx, edi
shl ecx, 8
movzx edi, byte [ebx + 7]
or ecx, edi
add ebx, 8
mov edi, eax
mov dword [ebp - 0x64], ecx
mov ecx, eax
xor ecx, dword [ebp - 0x84]
rol ecx, 6
imul ecx, dword [ebp - 0x88]
rol edi, 7
xor edi, ecx
mov ecx, dword [ebp - 0x1c]
xor edi, dword [ebp - 0x64]
xor edx, edi
sub ecx, edx
movzx edi, word [ebp - 0x18]
mov dword [ebp - 0x5c], ebx
mov ebx, edx
rol ecx, 1
imul ecx, edi
ror ebx, 3
add ebx, ecx
mov ecx, dword [ebp - 0x18]
xor eax, ebx
add ecx, eax
mov edi, eax
ror ecx, 2
imul ecx, dword [ebp - 0x7c]
rol edi, 0xe
sub ecx, edi
movzx edi, word [ebp - 0x1c]
xor edx, ecx
mov ecx, edx
sub ecx, edi
xor ecx, eax
xor ecx, dword [ebp - 0x18]
mov eax, ecx
not eax
ror eax, 0xa
add eax, dword [ebp - 0x88]
imul eax, edi
xor edx, eax
mov ebx, edx
mov edi, edx
movzx eax, word [ebp - 0x18]
xor ebx, dword [ebp - 0x88]
imul ebx, eax
ror edi, 8
xor edi, ebx
xor ecx, edi
movzx edi, word [ebp - 0x1c]
mov dword [ebp - 0x84], eax
mov eax, ecx
xor eax, edi
mov edi, ecx
rol eax, 6
imul eax, dword [ebp - 0x7c]
ror edi, 3
add edi, eax
movzx eax, word [ebp - 0x1c]
xor edx, edi
mov edi, edx
mov ebx, edx
xor ebx, dword [ebp - 0x84]
ror edi, 0xb
imul ebx, eax
sub ebx, edi
xor ecx, ebx
mov eax, ecx
ror eax, 0xc
sub eax, dword [ebp - 0x88]
imul eax, dword [ebp - 0x84]
xor edx, eax
mov eax, edx
xor eax, dword [ebp - 0x1c]
rol eax, 6
mov edi, edx
imul eax, dword [ebp - 0x84]
rol edi, 3
xor edi, eax
xor ecx, edi
mov edi, ecx
mov eax, ecx
xor eax, dword [ebp - 0x18]
rol eax, 3
imul eax, dword [ebp - 0x7c]
shr edi, 0xa
sub eax, edi
mov edi, dword [ebp - 0x70]
xor edx, eax
mov eax, dword [ebp - 0x90]
xor eax, edx
xor edx, dword [ebp - 0x9c]
xor eax, ecx
xor eax, dword [ebp - 0x18]
mov cl, byte [ebp - 0x55]
xor eax, dword [ebp - 0x1c]
xor cl, al
mov byte [edi + 3], al
mov byte [edi + 7], dl
xor cl, dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
xor cl, al
mov byte [edi + 1], al
ror edx, 8
xor cl, dl
ror eax, 8
mov byte [edi + 5], dl
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x78]
mov byte [edi], al
mov byte [edi + 4], dl
add edi, 8
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x64]
dec dword [ebp - 0x60]
mov dword [ebp - 0x9c], ecx
ror eax, 8
ror edx, 8
mov dword [ebp - 0x70], edi
jne 0x102902f
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + 8]
movzx ecx, byte [ebp - 0x55]
sub ecx, eax
je 0x102929e
call 0x1244f80
mov esi, 0x10d8814
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x7c], ecx
xor eax, eax
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x7c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x7c], 0
jne 0x102923f
xor edx, edx
div ecx
mov eax, dword [ebp - 0x104]
inc edx
mov ecx, dword [ebp - 0x60]
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
mov eax, edi
jae 0x1028809
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x102928d
jmp 0x1028809
mov ecx, dword [0x11e47bc]
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x80]
mov dword [ebp - 0x5c], eax
sub esi, ecx
mov dword [ebp - 0x60], esi
jne 0x10292bf
test eax, eax
je 0x102936c
mov ebx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x80]
mov ecx, dword [0x11efd70]
mov eax, dword [ebp - 0x98]
sub edi, dword [ebp - 0x94]
add eax, ebx
xor esi, esi
mov dword [ebp - 0x114], eax
dec ecx
js 0x102930b
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp ebx, edx
jae 0x1029302
lea ecx, [eax - 1]
jmp 0x1029307
jbe 0x102930f
lea esi, [eax + 1]
cmp ecx, esi
jge 0x10292e4
mov ebx, esi
jmp 0x1029364
mov ebx, eax
jmp 0x1029364
mov eax, dword [ebx*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x114]
jae 0x102936c
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1029357
dec ecx
je 0x1029352
dec ecx
jne 0x102935d
mov edx, dword [ebp - 0x60]
jmp 0x102935d
mov edx, dword [ebp - 0x5c]
jmp 0x102935d
mov edx, dword [ebp - 0x60]
sub edx, dword [ebp - 0x5c]
dec eax
dec eax
jne 0x1029363
add dword [esi], edx
inc ebx
cmp ebx, dword [0x11efd70]
jb 0x1029313
mov eax, dword [0x1116588]
mov eax, 0x41caff7
mov eax, dword [ebp - 0x80]
jmp 0x102e508
mov ecx, dword [ebp - 0x94]
cmp ecx, esi
jb 0x1029df1
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp dword [ebp - 0x94], eax
jae 0x1029df1
mov ecx, dword [ebp - 0x94]
mov eax, dword [0x1297bd8]
and dword [ebp - 0x7c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x10293f2
mov edx, dword [ebp - 0x7c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x105b128]
mov dword [ebp - 0x5c], edx
mov edx, dword [edx]
shr edx, 1
and edx, edi
cmp ecx, edx
jae 0x10293e0
dec eax
mov dword [ebp - 0x60], eax
jmp 0x10293ed
jbe 0x102954e
inc eax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x7c]
jge 0x10293bc
xor ecx, ecx
test ecx, ecx
je 0x1029df1
mov eax, dword [ecx]
mov edx, eax
shr edx, 1
and edx, 7
shr eax, 4
lea ecx, [edx + ecx + 8]
mov dword [ebp - 0x74], ecx
lea edx, [ecx + eax]
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
sub ecx, eax
inc ecx
mov dword [ebp - 0x98], eax
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x7c], ecx
je 0x1029460
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x7c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x7c], 0
jne 0x1029436
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x98]
mov dword [ebp - 0x68], eax
push dword [ebp - 0x74]
mov eax, 0xa05ea89c
mov eax, dword [ebp - 0x5c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x148]
push eax
mov dword [ebp - 0x148], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x232a8b49
mov eax, dword [ebp - 0x144]
mov ecx, dword [0x11e47bc]
and dword [ebp - 0xb8], 0
and dword [ebp - 0xb4], 0
and eax, edi
mov dword [ebp - 0x88], eax
mov eax, esi
and ebx, edi
add ebx, esi
add esp, 0x10
sub eax, ecx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x84], eax
jne 0x1029569
xor ebx, ebx
cmp dword [ebp - 0x88], ebx
jbe 0x1029826
mov ecx, 0x7fffffff
mov edi, 0x356b911
mov eax, dword [ebp - 0x78]
movzx edx, byte [ebx + eax]
sub edx, edi
add dword [ebp - 0xb8], edx
add edx, dword [ebp - 0xb4]
mov eax, edx
imul eax, eax, 0x7fd3
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xfca946ef
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
inc ebx
cmp ebx, dword [ebp - 0x88]
jb 0x10294f1
jmp 0x1029826
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shr ecx, 1
and ecx, edi
and eax, 0x3f
lea ecx, [eax + ecx + 0x1000000]
jmp 0x10293f4
mov ecx, dword [ebp - 0x78]
mov edx, dword [0x100003c]
mov ebx, 0xfffff000
mov eax, dword [ebp - 0x88]
add eax, ecx
sub ecx, esi
mov dword [ebp - 0x80], eax
lea edx, [edx + 0x10000a0]
mov edi, ecx
and edi, ebx
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x60], edx
mov edx, ecx
sub edx, edi
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x88]
add ecx, edx
mov edx, ecx
and edx, ebx
sub ecx, edx
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0xb0], edx
add eax, esi
add ecx, eax
mov dword [ebp - 0xa8], ecx
cmp eax, ecx
mov ebx, eax
je 0x10295d5
cmp dword [ebx], edi
jae 0x10295d5
add ebx, dword [ebx + 4]
cmp ebx, ecx
jne 0x10295ca
and dword [ebp - 0xa0], 0
cmp ebx, ecx
je 0x102960e
cmp dword [ebx], edi
jne 0x102960e
mov ecx, dword [ebx + 4]
sub ecx, 8
shr ecx, 1
je 0x102960e
lea edi, [ebx + 8]
movzx eax, word [edi]
and eax, 0xfff
cmp eax, dword [ebp - 0x7c]
jae 0x102960e
inc dword [ebp - 0xa0]
inc edi
inc edi
cmp dword [ebp - 0xa0], ecx
jne 0x10295f1
mov ecx, 0x7fffffff
mov edi, 0x356b911
jmp 0x1029620
mov edx, dword [ebp - 0xb0]
cmp ebx, dword [ebp - 0xa8]
je 0x10297c4
cmp dword [ebx], edx
ja 0x10297c4
mov eax, dword [ebx + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0xa0], eax
jne 0x102966a
add ebx, dword [ebx + 4]
cmp ebx, dword [ebp - 0xa8]
je 0x10297c4
mov eax, dword [ebp - 0xb0]
cmp dword [ebx], eax
ja 0x10297c4
and dword [ebp - 0xa0], 0
jmp 0x1029634
mov eax, dword [ebp - 0xb0]
cmp dword [ebx], eax
jne 0x1029690
mov eax, dword [ebp - 0xa0]
movzx eax, word [ebx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0xac]
jae 0x10297c4
mov eax, 0xf000
mov edx, dword [ebp - 0xa0]
inc dword [ebp - 0xa0]
test word [ebx + edx*2 + 8], ax
je 0x102961a
and dword [ebp - 0x88], 0
lea eax, [ebx + edx*2 + 8]
mov edx, dword [ebx]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x60], eax
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x7c], eax
je 0x1029739
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x78]
movzx edx, byte [eax + edx]
sub edx, edi
add dword [ebp - 0xb8], edx
add edx, dword [ebp - 0xb4]
mov eax, edx
imul eax, eax, 0x7fd3
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xfca946ef
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xb8], eax
inc dword [ebp - 0x88]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x7c]
jb 0x10296d3
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
sub eax, dword [ebp - 0x84]
and dword [ebp - 0x88], 0
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x88]
movzx edx, byte [ebp + eax - 0x124]
sub edx, edi
add dword [ebp - 0xb8], edx
add edx, dword [ebp - 0xb4]
mov eax, edx
imul eax, eax, 0x7fd3
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xfca946ef
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xb8], eax
inc dword [ebp - 0x88]
cmp dword [ebp - 0x88], 4
mov dword [ebp - 0xb4], eax
jb 0x1029751
mov eax, dword [ebp - 0x60]
add eax, 4
mov dword [ebp - 0x78], eax
jmp 0x102961a
mov eax, dword [ebp - 0x80]
xor ebx, ebx
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x60], eax
je 0x1029826
mov eax, dword [ebp - 0x78]
movzx edx, byte [ebx + eax]
sub edx, edi
add dword [ebp - 0xb8], edx
add edx, dword [ebp - 0xb4]
mov eax, edx
imul eax, eax, 0x7fd3
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xfca946ef
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
inc ebx
cmp ebx, dword [ebp - 0x60]
jb 0x10297d1
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xb8]
mov byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 8
jb 0x102982a
mov eax, 0x129186e0
mov eax, dword [ebp - 0x68]
mov edi, dword [ebp - 0x94]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x98]
and eax, 7
mov dword [ebp - 0x84], eax
je 0x1029a4d
mov edx, dword [ebp - 0x74]
cmp eax, ebx
not edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x6c], ebx
jle 0x10298bf
mov dword [ebp - 0x88], 0x38
movzx ebx, byte [edi]
cmp dword [ebp - 0x6c], 4
mov ecx, dword [ebp - 0x88]
jge 0x10298a7
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x90], ebx
jmp 0x10298af
shl ebx, cl
or dword [ebp - 0x8c], ebx
sub dword [ebp - 0x88], 8
inc edi
inc dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], eax
jl 0x102988b
mov ecx, edx
movzx eax, word [ebp - 0x40]
sub ecx, dword [ebp - 0x44]
rol ecx, 5
mov dword [ebp - 0x7c], eax
imul eax, ecx
movzx ecx, word [ebp - 0x44]
ror edx, 0x10
sub eax, edx
movzx edx, word [ebp - 0x42]
xor eax, dword [ebp - 0x74]
mov ebx, eax
mov dword [ebp - 0x80], ecx
xor ecx, eax
imul ecx, edx
ror ebx, 0xc
add ebx, ecx
xor dword [ebp - 0x64], ebx
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
add ecx, edx
mov ebx, dword [ebp - 0x80]
ror ecx, 5
imul ebx, ecx
movzx ecx, word [ebp - 0x3e]
rol edx, 0xa
sub ebx, edx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x88], ecx
xor eax, ebx
xor edx, eax
imul edx, ecx
mov ebx, dword [ebp - 0x7c]
mov ecx, eax
shr ecx, 0xb
xor edx, ecx
xor dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x44]
xor ecx, dword [ebp - 0x64]
ror ecx, 5
imul ebx, ecx
rol edx, 8
xor edx, ebx
mov ecx, dword [ebp - 0x40]
xor eax, edx
movzx edx, word [ebp - 0x42]
mov ebx, edx
xor ecx, eax
rol ecx, 1
imul ebx, ecx
mov ecx, eax
shr ecx, 0xd
sub ebx, ecx
xor dword [ebp - 0x64], ebx
mov ecx, edx
mov edx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x80]
xor ecx, dword [ebp - 0x64]
rol ecx, 3
imul ebx, ecx
mov ecx, dword [ebp - 0x40]
rol edx, 0xb
xor edx, ebx
xor eax, edx
mov edx, dword [ebp - 0x44]
xor ecx, edx
xor ecx, dword [ebp - 0x64]
xor ecx, eax
mov ebx, ecx
mov dword [ebp - 0x64], ecx
xor edx, ecx
mov ecx, dword [ebp - 0x7c]
rol edx, 8
imul ecx, edx
ror ebx, 5
movzx edx, word [ebp - 0x42]
sub ecx, ebx
xor eax, ecx
mov ecx, dword [ebp - 0x88]
xor ecx, eax
imul ecx, edx
mov edx, eax
shr edx, 9
add ecx, edx
xor dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x80]
sub edx, dword [ebp - 0x40]
and dword [ebp - 0x6c], 0
ror edx, 7
imul ecx, edx
mov edx, dword [ebp - 0x64]
xor edx, dword [ebp - 0x8c]
rol ebx, 9
xor ebx, ecx
xor ebx, dword [ebp - 0x90]
mov dword [ebp - 0x9c], edx
xor eax, ebx
mov ebx, dword [ebp - 0x84]
test ebx, ebx
mov dword [ebp - 0x78], eax
jle 0x1029a25
mov ebx, dword [ebp - 0x70]
inc dword [ebp - 0x70]
cmp dword [ebp - 0x6c], 4
jge 0x1029a05
rol dword [ebp - 0x78], 8
mov cl, byte [ebp - 0x78]
mov byte [ebx], cl
jmp 0x1029a14
rol dword [ebp - 0x9c], 8
mov cl, byte [ebp - 0x9c]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x84]
cmp dword [ebp - 0x6c], ebx
jl 0x10299ee
add ebx, 0xfffffffc
test ebx, ebx
jle 0x1029a3a
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edx, cl
shl edx, cl
jmp 0x1029a62
xor edx, edx
test ebx, ebx
jge 0x1029a62
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x1029a62
xor edx, edx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x90], eax
not eax
mov dword [ebp - 0x8c], eax
xor eax, eax
mov ecx, dword [ebp - 0x98]
shr ecx, 3
mov dword [ebp - 0x84], ecx
test ecx, ecx
jbe 0x1029c55
mov ecx, dword [ebp - 0x40]
xor ecx, dword [ebp - 0x44]
mov dword [ebp - 0x6c], ecx
movzx ecx, word [ebp - 0x3e]
mov dword [ebp - 0x88], ecx
movzx ecx, word [ebp - 0x42]
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x60], ecx
jmp 0x1029aa1
mov edi, dword [ebp - 0x7c]
movzx ecx, byte [edi + 1]
movzx ebx, byte [edi]
shl ebx, 8
or ecx, ebx
movzx ebx, byte [edi + 2]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x78], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 6]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 7]
shl ecx, 8
or ecx, ebx
mov dword [ebp - 0x9c], ecx
xor edx, ecx
add edi, 8
mov ecx, edx
mov ebx, edx
mov dword [ebp - 0x7c], edi
sub ecx, dword [ebp - 0x44]
movzx edi, word [ebp - 0x40]
rol ecx, 5
imul ecx, edi
ror ebx, 0x10
sub ecx, ebx
xor ecx, dword [ebp - 0x78]
xor eax, ecx
mov edi, eax
movzx ecx, word [ebp - 0x44]
xor ecx, eax
imul ecx, dword [ebp - 0x80]
ror edi, 0xc
add edi, ecx
mov ecx, dword [ebp - 0x40]
xor edx, edi
mov ebx, edx
add ecx, edx
ror ecx, 5
movzx edi, word [ebp - 0x44]
imul ecx, edi
movzx edi, word [ebp - 0x40]
rol ebx, 0xa
sub ecx, ebx
xor eax, ecx
mov ecx, edi
xor ecx, eax
mov ebx, eax
imul ecx, dword [ebp - 0x88]
shr ebx, 0xb
xor ecx, ebx
xor edx, ecx
mov ebx, edx
mov ecx, dword [ebp - 0x44]
xor ecx, edx
ror ecx, 5
imul ecx, edi
rol ebx, 8
xor ebx, ecx
xor eax, ebx
mov edi, eax
mov ecx, dword [ebp - 0x40]
xor ecx, eax
rol ecx, 1
imul ecx, dword [ebp - 0x80]
shr edi, 0xd
sub ecx, edi
xor edx, ecx
movzx edi, word [ebp - 0x44]
mov ebx, edx
mov ecx, dword [ebp - 0x80]
xor ecx, edx
rol ecx, 3
rol ebx, 0xb
imul ecx, edi
movzx edi, word [ebp - 0x40]
xor ebx, ecx
mov ecx, dword [ebp - 0x6c]
xor ecx, edx
xor eax, ebx
xor ecx, eax
mov edx, ecx
mov ecx, dword [ebp - 0x44]
xor ecx, edx
mov ebx, edx
rol ecx, 8
imul ecx, edi
ror ebx, 5
sub ecx, ebx
xor eax, ecx
mov edi, eax
mov ecx, dword [ebp - 0x88]
xor ecx, eax
imul ecx, dword [ebp - 0x80]
shr edi, 9
add ecx, edi
movzx edi, word [ebp - 0x44]
xor edx, ecx
mov ecx, edx
mov ebx, edx
sub ecx, dword [ebp - 0x40]
xor edx, dword [ebp - 0x8c]
ror ecx, 7
imul ecx, edi
mov edi, dword [ebp - 0x70]
rol ebx, 9
xor ebx, ecx
mov cl, byte [ebp - 0x55]
xor ebx, dword [ebp - 0x90]
xor eax, ebx
mov byte [edi + 3], al
xor cl, al
xor cl, dl
mov byte [edi + 7], dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
xor cl, dl
mov byte [edi + 6], dl
ror eax, 8
mov byte [edi + 1], al
xor cl, al
ror edx, 8
mov byte [edi + 5], dl
xor cl, dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x78]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x90], ecx
add edi, 8
mov ecx, dword [ebp - 0x9c]
dec dword [ebp - 0x60]
ror eax, 8
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x70], edi
ror edx, 8
jne 0x1029a9e
movzx ecx, byte [ebp - 0x55]
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 8]
sub ecx, eax
je 0x1029cf4
call 0x1244f80
mov esi, 0x10d8814
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x1029c9d
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, dword [ebp - 0x104]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x1029ceb
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x1029ce3
jmp 0x1028809
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x68]
mov eax, dword [0x11e47bc]
mov dword [ebp - 0x60], ebx
sub esi, eax
mov dword [ebp - 0x5c], esi
jne 0x1029d14
test ebx, ebx
je 0x1029ddf
mov edi, dword [ebp - 0x68]
sub edi, dword [ebp - 0x94]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x98]
add eax, ecx
xor esi, esi
mov ecx, dword [0x11efd70]
dec ecx
mov dword [ebp - 0x124], eax
js 0x1029d64
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x1029d58
lea ecx, [eax - 1]
jmp 0x1029d5d
jbe 0x1029d6c
lea esi, [eax + 1]
cmp ecx, esi
jge 0x1029d39
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x8c], esi
jmp 0x1029dd1
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x8c], eax
jmp 0x1029dd1
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x124]
jae 0x1029ddf
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1029dc0
dec ecx
je 0x1029dbc
dec ecx
jne 0x1029dc5
mov edx, dword [ebp - 0x5c]
jmp 0x1029dc5
mov edx, ebx
jmp 0x1029dc5
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x1029dcb
add dword [esi], edx
inc dword [ebp - 0x8c]
mov eax, dword [ebp - 0x8c]
cmp eax, dword [0x11efd70]
jb 0x1029d77
mov eax, dword [0x1116588]
mov eax, 0xca0aee9
mov eax, dword [ebp - 0x68]
jmp 0x102e508
cmp dword [ebp - 0x94], esi
jb 0x102d0ec
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp dword [ebp - 0x94], eax
jae 0x102a832
mov ecx, dword [ebp - 0x94]
mov eax, dword [0x1211b74]
and dword [ebp - 0x5c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x1029e61
mov edx, dword [ebp - 0x5c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x10e26c0]
mov dword [ebp - 0x7c], edx
mov edx, dword [edx]
and edx, edi
cmp ecx, edx
jae 0x1029e4f
dec eax
mov dword [ebp - 0x60], eax
jmp 0x1029e5c
jbe 0x1029fbb
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jge 0x1029e2d
xor ecx, ecx
test ecx, ecx
je 0x102a832
mov eax, dword [ecx]
mov edx, eax
and edx, 7
shr eax, 3
lea ecx, [edx + ecx + 8]
and eax, edi
lea edx, [ecx + eax]
mov dword [ebp - 0x74], ecx
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
sub ecx, eax
mov dword [ebp - 0x88], eax
inc ecx
xor eax, eax
mov dword [ebp - 0x7c], edx
test ecx, ecx
mov dword [ebp - 0x5c], ecx
je 0x1029ecf
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x1029ea5
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
push dword [ebp - 0x74]
mov eax, 0x3650c118
mov eax, dword [ebp - 0x7c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x168]
push eax
mov dword [ebp - 0x168], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x98c238d6
mov ecx, dword [0x11e47bc]
mov eax, dword [ebp - 0x164]
and dword [ebp - 0xd8], 0
and dword [ebp - 0xd4], 0
and eax, edi
and ebx, edi
add ebx, esi
mov dword [ebp - 0x98], eax
mov eax, esi
add esp, 0x10
sub eax, ecx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x80], eax
jne 0x1029fd4
and dword [ebp - 0x68], 0
cmp dword [ebp - 0x98], 0
jbe 0x102a272
mov edi, 0xe7acf032
mov ecx, 0x7fffffff
mov edx, edi
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + ebx]
sub eax, 0x18530fce
add dword [ebp - 0xd8], eax
add eax, dword [ebp - 0xd4]
mul edx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xd8], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x98]
jb 0x1029f63
jmp 0x102a272
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 4]
and ecx, 0x3f
mov eax, dword [eax]
and eax, edi
lea ecx, [eax + ecx + 0x1000000]
jmp 0x1029e63
mov ecx, ebx
mov eax, dword [ebp - 0x98]
add eax, ebx
mov edx, dword [0x100003c]
sub ecx, esi
mov edi, ecx
mov dword [ebp - 0x8c], eax
lea edx, [edx + 0x10000a0]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x60], edx
mov edx, ecx
and edx, 0xfffff000
sub edi, edx
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x98]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
sub ecx, edi
mov dword [ebp - 0xb0], edi
add eax, esi
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0xac], ecx
mov ecx, eax
add edi, eax
cmp eax, edi
mov dword [ebp - 0xa8], edi
jmp 0x102a043
cmp dword [ecx], edx
jae 0x102a04b
add ecx, dword [ecx + 4]
cmp ecx, edi
mov dword [ebp - 0xa4], ecx
jne 0x102a03a
and dword [ebp - 0xa0], 0
cmp ecx, edi
je 0x102a085
cmp dword [ecx], edx
jne 0x102a085
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x102a085
add ecx, 8
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x5c]
jae 0x102a085
inc dword [ebp - 0xa0]
inc ecx
inc ecx
cmp dword [ebp - 0xa0], eax
jne 0x102a067
mov ecx, 0x7fffffff
mov edi, 0xe7acf032
mov eax, dword [ebp - 0xa4]
jmp 0x102a09a
mov ebx, dword [ebp - 0x68]
cmp eax, dword [ebp - 0xa8]
je 0x102a211
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x102a211
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa4]
jne 0x102a0f6
add eax, dword [eax + 4]
mov dword [ebp - 0xa4], eax
cmp eax, dword [ebp - 0xa8]
je 0x102a211
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x102a211
and dword [ebp - 0xa0], 0
jmp 0x102a0b4
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
jne 0x102a11d
mov edx, dword [ebp - 0xa0]
movzx edx, word [eax + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0xac]
jae 0x102a211
mov edx, dword [ebp - 0xa0]
mov ebx, 0xf000
inc dword [ebp - 0xa0]
test word [eax + edx*2 + 8], bx
je 0x102a097
lea edx, [eax + edx*2 + 8]
mov eax, dword [eax]
movzx edx, word [edx]
and edx, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x60], eax
xor ebx, ebx
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x5c], eax
je 0x102a1a7
mov edx, edi
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + ebx]
sub eax, 0x18530fce
add dword [ebp - 0xd8], eax
add eax, dword [ebp - 0xd4]
mul edx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xd8], eax
inc ebx
mov dword [ebp - 0xd4], eax
cmp ebx, dword [ebp - 0x5c]
jb 0x102a15c
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
sub eax, dword [ebp - 0x80]
mov dword [ebp - 0x11c], eax
xor ebx, ebx
mov edx, edi
movzx eax, byte [ebp + ebx - 0x11c]
sub eax, 0x18530fce
add dword [ebp - 0xd8], eax
add eax, dword [ebp - 0xd4]
mul edx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xd8], eax
inc ebx
mov dword [ebp - 0xd4], eax
cmp ebx, 4
jb 0x102a1b7
mov ebx, dword [ebp - 0x60]
add ebx, 4
mov dword [ebp - 0x68], ebx
jmp 0x102a08f
mov eax, dword [ebp - 0x8c]
and dword [ebp - 0x68], 0
sub eax, ebx
mov dword [ebp - 0x60], eax
je 0x102a272
mov edx, edi
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + ebx]
sub eax, 0x18530fce
add dword [ebp - 0xd8], eax
add eax, dword [ebp - 0xd4]
mul edx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xd8], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x60]
jb 0x102a222
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xd8]
mov byte [ebp + eax - 0x4c], cl
inc eax
cmp eax, 8
jb 0x102a276
mov eax, 0x37875cd4
mov edi, dword [ebp - 0x94]
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
and eax, 7
mov dword [ebp - 0x60], eax
je 0x102a48e
mov edx, dword [ebp - 0x74]
not edx
cmp eax, ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x6c], ebx
jle 0x102a2ff
mov dword [ebp - 0x68], 0x38
mov ecx, dword [ebp - 0x68]
movzx ebx, byte [edi]
cmp dword [ebp - 0x6c], 4
jge 0x102a2ea
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x8c], ebx
jmp 0x102a2f2
shl ebx, cl
or dword [ebp - 0x9c], ebx
sub dword [ebp - 0x68], 8
inc edi
inc dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], eax
jl 0x102a2d1
mov eax, edx
movzx ecx, word [ebp - 0x46]
xor eax, dword [ebp - 0x48]
mov dword [ebp - 0x70], ecx
xor eax, dword [ebp - 0x4c]
xor eax, dword [ebp - 0x74]
mov ebx, eax
sub ebx, ecx
movzx ecx, word [ebp - 0x4c]
sub ebx, dword [ebp - 0x4c]
xor edx, ebx
movzx ebx, word [ebp - 0x48]
xor ecx, edx
imul ecx, ebx
mov dword [ebp - 0x5c], ebx
mov ebx, edx
shr ebx, 1
add ecx, ebx
xor eax, ecx
movzx ecx, word [ebp - 0x4a]
mov ebx, eax
mov dword [ebp - 0x6c], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x70]
imul ecx, dword [ebp - 0x6c]
shr ebx, 2
sub ecx, ebx
xor edx, ecx
mov ecx, dword [ebp - 0x6c]
mov ebx, edx
xor ecx, edx
mov dword [ebp - 0x68], ecx
movzx ecx, word [ebp - 0x4c]
mov dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x68]
imul edx, ecx
ror ebx, 0xe
mov ecx, dword [ebp - 0x4c]
sub edx, ebx
mov ebx, dword [ebp - 0x70]
xor eax, edx
mov edx, eax
sub ecx, eax
rol ecx, 8
imul ebx, ecx
rol edx, 0xa
sub ebx, edx
xor dword [ebp - 0x64], ebx
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x6c]
xor edx, dword [ebp - 0x64]
imul edx, dword [ebp - 0x5c]
ror ecx, 5
xor ecx, edx
xor eax, ecx
mov edx, eax
mov ecx, dword [ebp - 0x48]
add ecx, eax
ror ecx, 2
imul ebx, ecx
rol edx, 0xc
add edx, ebx
xor dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x64]
xor ecx, dword [ebp - 0x4c]
sub edx, ecx
mov ecx, dword [ebp - 0x70]
xor eax, edx
movzx edx, word [ebp - 0x4c]
mov ebx, eax
ror ebx, 5
xor ebx, ecx
imul ebx, edx
xor dword [ebp - 0x64], ebx
xor ecx, dword [ebp - 0x64]
imul ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x64]
shr edx, 0xf
xor ecx, edx
xor eax, ecx
mov ebx, eax
mov ecx, dword [ebp - 0x48]
lea edx, [ecx + eax]
ror edx, 0xe
mov ecx, dword [ebp - 0x6c]
imul ecx, edx
movzx edx, word [ebp - 0x4c]
and dword [ebp - 0x6c], 0
rol ebx, 0xa
sub ecx, ebx
xor dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x64]
xor ecx, dword [ebp - 0x64]
imul ecx, edx
mov edx, dword [ebp - 0x64]
xor edx, dword [ebp - 0x9c]
ror ebx, 3
add ebx, ecx
xor ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x90], edx
xor eax, ebx
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
test ebx, ebx
jle 0x102a466
mov ebx, dword [ebp - 0x78]
inc dword [ebp - 0x78]
cmp dword [ebp - 0x6c], 4
jge 0x102a449
rol dword [ebp - 0x64], 8
mov cl, byte [ebp - 0x64]
mov byte [ebx], cl
jmp 0x102a458
rol dword [ebp - 0x90], 8
mov cl, byte [ebp - 0x90]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x60]
cmp dword [ebp - 0x6c], ebx
jl 0x102a432
add ebx, 0xfffffffc
test ebx, ebx
jle 0x102a47b
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edx, cl
shl edx, cl
jmp 0x102a4a3
xor edx, edx
test ebx, ebx
jge 0x102a4a3
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x102a4a3
xor edx, edx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x8c], eax
not eax
mov dword [ebp - 0x9c], eax
xor eax, eax
mov ecx, dword [ebp - 0x88]
shr ecx, 3
test ecx, ecx
jbe 0x102a68d
movzx ebx, word [ebp - 0x46]
mov dword [ebp - 0x70], ebx
movzx ebx, word [ebp - 0x4a]
mov dword [ebp - 0x6c], ebx
movzx ebx, word [ebp - 0x4c]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], ecx
jmp 0x102a4d1
mov edi, dword [ebp - 0x68]
movzx ebx, byte [edi]
shl ebx, 8
movzx ecx, byte [edi + 1]
or ecx, ebx
movzx ebx, byte [edi + 2]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x64], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 6]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 7]
or ecx, ebx
mov dword [ebp - 0x90], ecx
xor edx, ecx
mov ecx, dword [ebp - 0x64]
xor ecx, edx
xor ecx, eax
xor ecx, dword [ebp - 0x48]
add edi, 8
xor ecx, dword [ebp - 0x4c]
mov eax, ecx
mov dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x70]
sub ecx, dword [ebp - 0x70]
sub ecx, dword [ebp - 0x4c]
xor edx, ecx
xor edi, edx
movzx ecx, word [ebp - 0x48]
imul edi, ecx
mov ecx, edx
shr ecx, 1
add edi, ecx
xor eax, edi
mov edi, eax
mov ecx, eax
sub ecx, dword [ebp - 0x70]
imul ecx, dword [ebp - 0x6c]
shr edi, 2
sub ecx, edi
xor edx, ecx
mov ecx, edx
mov edi, dword [ebp - 0x6c]
xor edi, edx
imul edi, dword [ebp - 0x5c]
ror ecx, 0xe
sub edi, ecx
xor eax, edi
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov edi, eax
rol ecx, 8
imul ebx, ecx
rol edi, 0xa
movzx ecx, word [ebp - 0x48]
sub ebx, edi
xor edx, ebx
mov edi, edx
mov ebx, dword [ebp - 0x6c]
xor ebx, edx
imul ebx, ecx
mov ecx, dword [ebp - 0x48]
ror edi, 5
xor edi, ebx
mov ebx, dword [ebp - 0x6c]
xor eax, edi
mov edi, eax
add ecx, eax
ror ecx, 2
imul ebx, ecx
mov ecx, dword [ebp - 0x48]
rol edi, 0xc
add edi, ebx
xor edx, edi
mov edi, edx
mov ebx, ecx
xor edi, dword [ebp - 0x4c]
sub ebx, edi
xor eax, ebx
mov ebx, eax
movzx edi, word [ebp - 0x4c]
ror ebx, 5
xor ebx, dword [ebp - 0x70]
imul ebx, edi
movzx edi, cx
xor edx, ebx
mov ebx, dword [ebp - 0x70]
xor ebx, edx
imul ebx, edi
mov edi, edx
shr edi, 0xf
xor ebx, edi
xor eax, ebx
mov ebx, dword [ebp - 0x6c]
add ecx, eax
mov edi, eax
ror ecx, 0xe
imul ebx, ecx
rol edi, 0xa
movzx ecx, word [ebp - 0x48]
sub ebx, edi
xor edx, ebx
mov edi, edx
mov ebx, ecx
xor ebx, edx
movzx ecx, word [ebp - 0x4c]
imul ebx, ecx
xor edx, dword [ebp - 0x9c]
ror edi, 3
add edi, ebx
xor edi, dword [ebp - 0x8c]
mov dword [ebp - 0x5c], ecx
mov cl, byte [ebp - 0x55]
xor eax, edi
mov edi, dword [ebp - 0x78]
mov byte [edi + 3], al
xor cl, al
mov byte [edi + 7], dl
xor cl, dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
xor cl, dl
ror eax, 8
xor cl, al
mov byte [edi + 6], dl
mov byte [edi + 1], al
ror edx, 8
mov byte [edi + 5], dl
xor cl, dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x64]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x8c], ecx
add edi, 8
mov ecx, dword [ebp - 0x90]
dec dword [ebp - 0x60]
ror eax, 8
mov dword [ebp - 0x9c], ecx
ror edx, 8
mov dword [ebp - 0x78], edi
jne 0x102a4ce
movzx ecx, byte [ebp - 0x55]
mov eax, dword [ebp - 0x7c]
movzx eax, byte [eax + 8]
sub ecx, eax
je 0x102a72c
call 0x1244f80
mov esi, 0x10d8814
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102a6d5
xor edx, edx
div ecx
inc edx
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x60]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x102a723
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x102a71b
jmp 0x1028809
mov eax, dword [0x11e47bc]
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x84]
mov dword [ebp - 0x60], ebx
sub esi, eax
mov dword [ebp - 0x5c], esi
jne 0x102a74f
test ebx, ebx
je 0x102a81d
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x88]
mov edi, dword [ebp - 0x84]
sub edi, dword [ebp - 0x94]
add eax, ecx
xor esi, esi
mov ecx, dword [0x11efd70]
mov dword [ebp - 0x11c], eax
dec ecx
js 0x102a7a2
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102a796
lea ecx, [eax - 1]
jmp 0x102a79b
jbe 0x102a7aa
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102a777
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x8c], esi
jmp 0x102a80f
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x8c], eax
jmp 0x102a80f
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x11c]
jae 0x102a81d
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x102a7fe
dec ecx
je 0x102a7fa
dec ecx
jne 0x102a803
mov edx, dword [ebp - 0x5c]
jmp 0x102a803
mov edx, ebx
jmp 0x102a803
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x102a809
add dword [esi], edx
inc dword [ebp - 0x8c]
mov eax, dword [ebp - 0x8c]
cmp eax, dword [0x11efd70]
jb 0x102a7b5
mov eax, dword [0x1116588]
mov eax, 0xba7447bf
mov eax, dword [ebp - 0x84]
jmp 0x102e508
cmp dword [ebp - 0x94], esi
jb 0x102d0ec
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp dword [ebp - 0x94], eax
jae 0x102b2da
mov ecx, dword [ebp - 0x94]
mov eax, dword [0x10ebd34]
and dword [ebp - 0x5c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x102a8a2
mov edx, dword [ebp - 0x5c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x11e76e0]
mov dword [ebp - 0x7c], edx
mov edx, dword [edx]
and edx, edi
cmp ecx, edx
jae 0x102a890
dec eax
mov dword [ebp - 0x60], eax
jmp 0x102a89d
jbe 0x102aa1a
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jge 0x102a86e
xor ecx, ecx
test ecx, ecx
je 0x102b2da
mov eax, dword [ecx]
mov edx, eax
shr edx, 1
and edx, 7
lea ecx, [edx + ecx + 8]
mov dword [ebp - 0x74], ecx
shr eax, 4
lea edx, [ecx + eax]
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
sub ecx, eax
mov dword [ebp - 0x88], eax
inc ecx
mov dword [ebp - 0x80], edx
xor eax, eax
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x102a910
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102a8e6
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
push dword [ebp - 0x74]
mov eax, 0x239913f6
mov eax, dword [ebp - 0x80]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x154], eax
lea eax, [ebp - 0x158]
push eax
mov dword [ebp - 0x158], ebx
mov byte [ebp - 0x55], 0
mov eax, 0xc95d5c2d
mov ecx, dword [0x11e47bc]
mov eax, dword [ebp - 0x154]
and dword [ebp - 0xf8], 0
and dword [ebp - 0xf4], 0
and eax, edi
and ebx, edi
mov dword [ebp - 0x98], eax
add ebx, esi
add esp, 0x10
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x7c], eax
jne 0x102aa33
and dword [ebp - 0x68], 0
cmp dword [ebp - 0x98], 0
jbe 0x102ad2b
mov ecx, 0x7fffffff
mov edi, 0xed08cdd6
mov edx, edi
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + ebx]
sub eax, 0x12f7322a
add dword [ebp - 0xf8], eax
add eax, dword [ebp - 0xf4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
imul eax, eax, 0xed08cdd6
ror eax, 0xf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xf8], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x98]
jb 0x102a9a4
jmp 0x102ad2b
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, 0x3f
and eax, edi
lea ecx, [eax + ecx + 0x1000000]
jmp 0x102a8a4
mov edx, dword [0x100003c]
lea edx, [edx + 0x10000a0]
mov eax, dword [ebp - 0x98]
mov ecx, ebx
add eax, ebx
mov dword [ebp - 0x8c], eax
mov eax, dword [edx]
sub ecx, esi
mov edx, dword [edx + 4]
mov edi, ecx
mov dword [ebp - 0x60], edx
mov edx, ecx
and edx, 0xfffff000
sub edi, edx
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x98]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
sub ecx, edi
add eax, esi
mov dword [ebp - 0xb0], edi
mov edi, dword [ebp - 0x60]
add edi, eax
cmp eax, edi
mov dword [ebp - 0xac], ecx
mov ecx, eax
mov dword [ebp - 0xa8], edi
jmp 0x102aaa2
cmp dword [ecx], edx
jae 0x102aaaa
add ecx, dword [ecx + 4]
cmp ecx, edi
mov dword [ebp - 0xa4], ecx
jne 0x102aa99
and dword [ebp - 0xa0], 0
cmp ecx, edi
je 0x102aae4
cmp dword [ecx], edx
jne 0x102aae4
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x102aae4
add ecx, 8
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x5c]
jae 0x102aae4
inc dword [ebp - 0xa0]
inc ecx
inc ecx
cmp dword [ebp - 0xa0], eax
jne 0x102aac6
mov ecx, 0x7fffffff
mov edi, 0xed08cdd6
mov eax, dword [ebp - 0xa4]
jmp 0x102aaf9
mov ebx, dword [ebp - 0x68]
cmp eax, dword [ebp - 0xa8]
je 0x102acac
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x102acac
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa4]
jne 0x102ab55
add eax, dword [eax + 4]
mov dword [ebp - 0xa4], eax
cmp eax, dword [ebp - 0xa8]
je 0x102acac
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x102acac
and dword [ebp - 0xa0], 0
jmp 0x102ab13
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
jne 0x102ab7c
mov edx, dword [ebp - 0xa0]
movzx edx, word [eax + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0xac]
jae 0x102acac
mov ebx, 0xf000
mov edx, dword [ebp - 0xa0]
inc dword [ebp - 0xa0]
test word [eax + edx*2 + 8], bx
je 0x102aaf6
lea edx, [eax + edx*2 + 8]
movzx edx, word [edx]
and edx, 0xfff
xor ebx, ebx
mov eax, dword [eax]
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x60], eax
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x5c], eax
je 0x102ac24
mov eax, dword [ebp - 0x68]
mov edx, edi
movzx eax, byte [eax + ebx]
sub eax, 0x12f7322a
add dword [ebp - 0xf8], eax
add eax, dword [ebp - 0xf4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
imul eax, eax, 0xed08cdd6
mov edx, edi
ror eax, 0xf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], eax
inc ebx
cmp ebx, dword [ebp - 0x5c]
jb 0x102abbb
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
sub eax, dword [ebp - 0x7c]
xor ebx, ebx
mov dword [ebp - 0x110], eax
movzx eax, byte [ebp + ebx - 0x110]
sub eax, 0x12f7322a
add dword [ebp - 0xf8], eax
mov edx, edi
add eax, dword [ebp - 0xf4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
imul eax, eax, 0xed08cdd6
mov edx, edi
ror eax, 0xf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xf8], eax
inc ebx
mov dword [ebp - 0xf4], eax
cmp ebx, 4
jb 0x102ac34
mov ebx, dword [ebp - 0x60]
add ebx, 4
mov dword [ebp - 0x68], ebx
jmp 0x102aaee
mov eax, dword [ebp - 0x8c]
and dword [ebp - 0x68], 0
sub eax, ebx
mov dword [ebp - 0x60], eax
je 0x102ad2b
mov eax, dword [ebp - 0x68]
mov edx, edi
movzx eax, byte [eax + ebx]
sub eax, 0x12f7322a
add dword [ebp - 0xf8], eax
add eax, dword [ebp - 0xf4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
imul eax, eax, 0xed08cdd6
ror eax, 0xf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xf8], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x60]
jb 0x102acbd
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xf8]
mov byte [ebp + eax - 0x3c], cl
inc eax
cmp eax, 8
jb 0x102ad2f
mov eax, 0xfb34ab67
mov edi, dword [ebp - 0x94]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
and edx, 7
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x5c], edx
je 0x102af3f
cmp edx, ebx
not eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x70], ebx
jle 0x102adbb
mov dword [ebp - 0x68], 0x38
cmp dword [ebp - 0x70], 4
mov ecx, dword [ebp - 0x68]
movzx ebx, byte [edi]
jge 0x102ada6
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x8c], ebx
jmp 0x102adae
shl ebx, cl
or dword [ebp - 0x9c], ebx
sub dword [ebp - 0x68], 8
inc edi
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], edx
jl 0x102ad8d
mov ebx, dword [ebp - 0x38]
mov ecx, eax
movzx edx, bx
xor ecx, dword [ebp - 0x3c]
ror ecx, 1
imul ecx, edx
ror eax, 8
xor eax, ecx
xor eax, dword [ebp - 0x74]
lea ecx, [ebx + eax]
ror ecx, 0xc
movzx edx, word [ebp - 0x3a]
mov ebx, eax
imul ecx, edx
ror ebx, 0xa
add ebx, ecx
movzx edx, word [ebp - 0x36]
xor dword [ebp - 0x64], ebx
mov ecx, dword [ebp - 0x64]
xor ecx, edx
mov ebx, dword [ebp - 0x64]
rol ecx, 2
movzx edx, word [ebp - 0x3c]
imul ecx, edx
ror ebx, 0x10
mov dword [ebp - 0x60], edx
xor ebx, ecx
xor eax, ebx
mov ecx, eax
movzx edx, word [ebp - 0x36]
xor ecx, dword [ebp - 0x3c]
mov ebx, eax
rol ecx, 8
imul ecx, edx
rol ebx, 6
add ebx, ecx
xor dword [ebp - 0x64], ebx
mov edx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x64]
movzx ecx, word [ebp - 0x3a]
xor ebx, ecx
movzx ecx, word [ebp - 0x38]
imul ebx, ecx
ror edx, 6
add edx, ebx
xor eax, edx
mov ebx, eax
movzx edx, word [ebp - 0x3a]
mov ecx, eax
sub ecx, dword [ebp - 0x38]
ror ecx, 5
imul ecx, edx
movzx edx, word [ebp - 0x38]
ror ebx, 0xb
xor ebx, ecx
xor dword [ebp - 0x64], ebx
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x64]
xor ecx, edx
imul ecx, dword [ebp - 0x60]
shr ebx, 0xf
add ecx, ebx
xor eax, ecx
mov ebx, eax
sub ebx, dword [ebp - 0x3c]
movzx ecx, word [ebp - 0x36]
sub ebx, ecx
xor dword [ebp - 0x64], ebx
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x64]
ror ecx, 0xe
imul edx, ecx
movzx ecx, word [ebp - 0x3a]
rol ebx, 1
add ebx, edx
xor eax, ebx
mov edx, dword [ebp - 0x64]
mov ebx, eax
not ebx
ror ebx, 0xd
add ebx, ecx
movzx ecx, word [ebp - 0x38]
imul ebx, ecx
movzx ecx, word [ebp - 0x36]
and dword [ebp - 0x70], 0
xor edx, ebx
mov ebx, edx
sub ebx, ecx
mov ecx, dword [ebp - 0x60]
rol ebx, 4
imul ecx, ebx
mov ebx, edx
xor edx, dword [ebp - 0x9c]
shr ebx, 0xc
xor ecx, ebx
mov ebx, dword [ebp - 0x5c]
xor ecx, dword [ebp - 0x8c]
xor eax, ecx
test ebx, ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x90], edx
jle 0x102af17
mov ebx, dword [ebp - 0x78]
inc dword [ebp - 0x78]
cmp dword [ebp - 0x70], 4
jge 0x102aefa
rol dword [ebp - 0x6c], 8
mov cl, byte [ebp - 0x6c]
mov byte [ebx], cl
jmp 0x102af09
rol dword [ebp - 0x90], 8
mov cl, byte [ebp - 0x90]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x70]
mov ebx, dword [ebp - 0x5c]
cmp dword [ebp - 0x70], ebx
jl 0x102aee3
add ebx, 0xfffffffc
test ebx, ebx
jle 0x102af2c
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edx, cl
shl edx, cl
jmp 0x102af51
xor edx, edx
test ebx, ebx
jge 0x102af51
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x102af51
xor edx, edx
mov dword [ebp - 0x8c], eax
not eax
mov dword [ebp - 0x9c], eax
xor eax, eax
mov ebx, dword [ebp - 0x88]
shr ebx, 3
test ebx, ebx
jbe 0x102b141
movzx ecx, word [ebp - 0x3a]
mov dword [ebp - 0x68], ecx
movzx ecx, word [ebp - 0x38]
mov dword [ebp - 0x60], ecx
movzx ecx, word [ebp - 0x36]
mov dword [ebp - 0x7c], ecx
neg dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x98], ebx
jmp 0x102af88
mov edi, dword [ebp - 0x70]
movzx ebx, byte [edi]
movzx ecx, byte [edi + 1]
shl ebx, 8
or ecx, ebx
movzx ebx, byte [edi + 2]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x6c], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 6]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 7]
shl ecx, 8
or ecx, ebx
mov ebx, dword [ebp - 0x60]
xor edx, ecx
add edi, 8
mov dword [ebp - 0x90], ecx
mov ecx, edx
mov dword [ebp - 0x70], edi
xor ecx, dword [ebp - 0x3c]
ror ecx, 1
imul ebx, ecx
mov ecx, dword [ebp - 0x38]
mov edi, edx
ror edi, 8
xor edi, ebx
xor edi, dword [ebp - 0x6c]
xor eax, edi
mov ebx, dword [ebp - 0x68]
add ecx, eax
ror ecx, 0xc
imul ebx, ecx
mov edi, eax
ror edi, 0xa
add edi, ebx
xor edx, edi
movzx edi, word [ebp - 0x3c]
mov ecx, edx
xor ecx, dword [ebp - 0x5c]
mov ebx, edx
rol ecx, 2
imul edi, ecx
ror ebx, 0x10
xor ebx, edi
xor eax, ebx
mov edi, eax
mov ecx, eax
xor ecx, dword [ebp - 0x3c]
rol ecx, 8
mov ebx, dword [ebp - 0x5c]
imul ebx, ecx
movzx ecx, word [ebp - 0x38]
rol edi, 6
add edi, ebx
xor edx, edi
mov ebx, edx
xor ebx, dword [ebp - 0x68]
mov edi, edx
imul ebx, ecx
ror edi, 6
add edi, ebx
xor eax, edi
mov ecx, eax
mov ebx, dword [ebp - 0x68]
mov edi, eax
sub ecx, dword [ebp - 0x38]
ror ecx, 5
imul ebx, ecx
movzx ecx, word [ebp - 0x3c]
ror edi, 0xb
xor edi, ebx
xor edx, edi
mov ebx, edx
movzx edi, word [ebp - 0x38]
xor ebx, edi
imul ebx, ecx
mov ecx, edx
shr ecx, 0xf
add ebx, ecx
xor eax, ebx
mov ecx, eax
sub ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x5c]
xor edx, ecx
mov ecx, edx
sub ecx, dword [ebp - 0x3c]
ror ecx, 0xe
mov ebx, edx
imul edi, ecx
movzx ecx, word [ebp - 0x38]
rol ebx, 1
add ebx, edi
xor eax, ebx
mov edi, eax
not edi
ror edi, 0xd
add edi, dword [ebp - 0x68]
mov dword [ebp - 0x60], ecx
imul edi, ecx
xor edx, edi
movzx edi, word [ebp - 0x3c]
mov ecx, dword [ebp - 0x7c]
add ecx, edx
rol ecx, 4
imul edi, ecx
mov ecx, edx
xor edx, dword [ebp - 0x9c]
shr ecx, 0xc
xor edi, ecx
xor edi, dword [ebp - 0x8c]
xor eax, edi
mov cl, byte [ebp - 0x55]
xor cl, al
mov edi, dword [ebp - 0x78]
mov byte [edi + 3], al
xor cl, dl
mov byte [edi + 7], dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
xor cl, dl
ror eax, 8
xor cl, al
mov byte [edi + 6], dl
ror edx, 8
xor cl, dl
mov byte [edi + 1], al
mov byte [edi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x6c]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x90]
add edi, 8
dec dword [ebp - 0x98]
ror eax, 8
ror edx, 8
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x78], edi
jne 0x102af85
movzx eax, byte [ebp - 0x55]
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 8]
sub eax, ecx
je 0x102b1e0
call 0x1244f80
mov ecx, 0xfffff000
mov esi, 0x10d8814
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x5c], ecx
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102b189
xor edx, edx
div ecx
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x60]
inc edx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x102b1d7
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x102b1cf
jmp 0x1028809
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x84]
mov eax, dword [0x11e47bc]
sub esi, eax
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], esi
jne 0x102b203
test ebx, ebx
je 0x102a81d
mov ecx, dword [ebp - 0x88]
mov edi, dword [ebp - 0x84]
mov eax, dword [ebp - 0x74]
sub edi, dword [ebp - 0x94]
add ecx, eax
mov dword [ebp - 0x110], ecx
xor esi, esi
mov ecx, dword [0x11efd70]
dec ecx
js 0x102b256
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102b24a
lea ecx, [eax - 1]
jmp 0x102b24f
jbe 0x102b25e
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102b22b
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x8c], esi
jmp 0x102b2c7
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x8c], eax
jmp 0x102b2c7
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x110]
jae 0x102a81d
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x102b2b6
dec ecx
je 0x102b2b2
dec ecx
jne 0x102b2bb
mov edx, dword [ebp - 0x5c]
jmp 0x102b2bb
mov edx, ebx
jmp 0x102b2bb
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x102b2c1
add dword [esi], edx
inc dword [ebp - 0x8c]
mov eax, dword [ebp - 0x8c]
cmp eax, dword [0x11efd70]
jb 0x102b269
jmp 0x102a81d
cmp dword [ebp - 0x94], esi
jb 0x102d0ec
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp dword [ebp - 0x94], eax
jae 0x102bda2
mov ecx, dword [ebp - 0x94]
mov eax, dword [0x1287508]
and dword [ebp - 0x5c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x102b34c
mov edx, dword [ebp - 0x5c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x12659c0]
mov dword [ebp - 0x7c], edx
mov edx, dword [edx]
shr edx, 1
and edx, edi
cmp ecx, edx
jae 0x102b33a
dec eax
mov dword [ebp - 0x60], eax
jmp 0x102b347
jbe 0x102b4c8
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jge 0x102b316
xor ecx, ecx
test ecx, ecx
je 0x102bda2
mov eax, dword [ecx]
mov edx, eax
and edx, 7
lea ecx, [edx + ecx + 8]
mov dword [ebp - 0x74], ecx
shr eax, 3
and eax, edi
lea edx, [ecx + eax]
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
mov dword [ebp - 0x88], eax
sub ecx, eax
inc ecx
mov dword [ebp - 0x7c], edx
xor eax, eax
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x102b3ba
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102b390
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
push dword [ebp - 0x74]
mov eax, 0x1f2597c8
mov eax, dword [ebp - 0x7c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x174], eax
lea eax, [ebp - 0x178]
push eax
mov dword [ebp - 0x178], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x97d0a85c
mov eax, dword [ebp - 0x174]
mov ecx, dword [0x11e47bc]
and dword [ebp - 0xc0], 0
and dword [ebp - 0xbc], 0
and eax, edi
and ebx, edi
add ebx, esi
mov dword [ebp - 0x98], eax
add esp, 0x10
mov dword [ebp - 0x68], ebx
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x80], eax
jne 0x102b4e3
and dword [ebp - 0x68], 0
cmp dword [ebp - 0x98], 0
jbe 0x102b7e7
mov ecx, 0x7fffffff
mov edi, 0x6b615f7d
mov eax, dword [ebp - 0x68]
movzx edx, byte [ebx + eax]
add edx, edi
add dword [ebp - 0xc0], edx
add edx, dword [ebp - 0xbc]
mov eax, edx
imul eax, eax, 0xfc05
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc0], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x98]
jb 0x102b44e
jmp 0x102b7e7
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
shr ecx, 1
mov eax, dword [eax + 4]
and ecx, edi
and eax, 0x3f
lea ecx, [eax + ecx + 0x1000000]
jmp 0x102b34e
mov ecx, ebx
mov eax, dword [ebp - 0x98]
add eax, ebx
mov edx, dword [0x100003c]
lea edx, [edx + 0x10000a0]
sub ecx, esi
mov edi, ecx
mov dword [ebp - 0x8c], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x60], edx
mov edx, ecx
and edx, 0xfffff000
sub edi, edx
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x98]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
sub ecx, edi
mov dword [ebp - 0xb0], edi
add eax, esi
mov edi, dword [ebp - 0x60]
add edi, eax
mov dword [ebp - 0xac], ecx
cmp eax, edi
mov ecx, eax
mov dword [ebp - 0xa8], edi
jmp 0x102b552
cmp dword [ecx], edx
jae 0x102b55a
add ecx, dword [ecx + 4]
cmp ecx, edi
mov dword [ebp - 0xa4], ecx
jne 0x102b549
and dword [ebp - 0xa0], 0
cmp ecx, edi
je 0x102b594
cmp dword [ecx], edx
jne 0x102b594
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x102b594
add ecx, 8
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x5c]
jae 0x102b594
inc dword [ebp - 0xa0]
inc ecx
inc ecx
cmp dword [ebp - 0xa0], eax
jne 0x102b576
mov edi, 0x6b615f7d
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xa4]
jmp 0x102b5a9
mov ebx, dword [ebp - 0x68]
cmp eax, dword [ebp - 0xa8]
je 0x102b764
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x102b764
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa4]
jne 0x102b605
add eax, dword [eax + 4]
mov dword [ebp - 0xa4], eax
cmp eax, dword [ebp - 0xa8]
je 0x102b764
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
ja 0x102b764
and dword [ebp - 0xa0], 0
jmp 0x102b5c3
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
jne 0x102b62c
mov edx, dword [ebp - 0xa0]
movzx edx, word [eax + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0xac]
jae 0x102b764
mov ebx, 0xf000
mov edx, dword [ebp - 0xa0]
inc dword [ebp - 0xa0]
test word [eax + edx*2 + 8], bx
je 0x102b5a6
lea edx, [eax + edx*2 + 8]
mov eax, dword [eax]
movzx edx, word [edx]
and edx, 0xfff
xor ebx, ebx
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x60], eax
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x5c], eax
je 0x102b6d8
mov eax, dword [ebp - 0x68]
movzx edx, byte [ebx + eax]
add edx, edi
add dword [ebp - 0xc0], edx
add edx, dword [ebp - 0xbc]
mov eax, edx
imul eax, eax, 0xfc05
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
inc ebx
cmp ebx, dword [ebp - 0x5c]
jb 0x102b66b
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
sub eax, dword [ebp - 0x80]
xor ebx, ebx
mov dword [ebp - 0x118], eax
movzx edx, byte [ebp + ebx - 0x118]
add edx, edi
add dword [ebp - 0xc0], edx
add edx, dword [ebp - 0xbc]
mov eax, edx
imul eax, eax, 0xfc05
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
inc ebx
cmp ebx, 4
jb 0x102b6e8
mov ebx, dword [ebp - 0x60]
add ebx, 4
mov dword [ebp - 0x68], ebx
jmp 0x102b59e
mov eax, dword [ebp - 0x8c]
and dword [ebp - 0x68], 0
sub eax, ebx
mov dword [ebp - 0x60], eax
je 0x102b7e7
mov eax, dword [ebp - 0x68]
movzx edx, byte [ebx + eax]
add edx, edi
add dword [ebp - 0xc0], edx
add edx, dword [ebp - 0xbc]
mov eax, edx
imul eax, eax, 0xfc05
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, edi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0xc0], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x60]
jb 0x102b775
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xc0]
mov byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 8
jb 0x102b7eb
mov eax, 0xb4ba95be
mov eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0x94]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x8c], edi
and eax, 7
mov dword [ebp - 0x98], eax
je 0x102ba39
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x80], ebx
cmp eax, ebx
mov dword [ebp - 0x9c], ebx
not edx
mov dword [ebp - 0x70], ebx
jle 0x102b87d
mov dword [ebp - 0x68], 0x38
movzx ebx, byte [edi]
mov ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x70], 4
jge 0x102b865
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x9c], ebx
jmp 0x102b86a
shl ebx, cl
or dword [ebp - 0x80], ebx
sub dword [ebp - 0x68], 8
inc edi
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], eax
jl 0x102b84c
mov dword [ebp - 0x8c], edi
mov edi, dword [ebp - 0x54]
xor edi, dword [ebp - 0x50]
movzx ecx, word [ebp - 0x50]
xor edi, edx
xor edi, dword [ebp - 0x74]
movzx edx, word [ebp - 0x52]
mov eax, edi
mov dword [ebp - 0x5c], ecx
sub eax, ecx
mov dword [ebp - 0x78], edx
xor eax, dword [ebp - 0x54]
xor eax, dword [ebp - 0x74]
mov ecx, eax
sub ecx, dword [ebp - 0x50]
ror ecx, 0xc
mov ebx, eax
imul edx, ecx
ror ebx, 0xb
movzx ecx, word [ebp - 0x54]
sub edx, ebx
xor edi, edx
mov ebx, edi
movzx edx, word [ebp - 0x4e]
mov dword [ebp - 0x90], edx
xor edx, edi
imul edx, ecx
ror ebx, 6
xor ebx, edx
xor eax, ebx
mov ebx, eax
mov edx, dword [ebp - 0x5c]
xor edx, eax
imul edx, dword [ebp - 0x90]
mov dword [ebp - 0x60], ecx
shr ebx, 0xb
xor edx, ebx
mov ebx, dword [ebp - 0x5c]
xor edi, edx
mov edx, edi
xor ecx, edi
rol ecx, 6
imul ebx, ecx
mov ecx, dword [ebp - 0x50]
rol edx, 8
sub ebx, edx
xor eax, ebx
xor ecx, eax
rol ecx, 2
mov edx, eax
mov ebx, dword [ebp - 0x78]
imul ebx, ecx
ror edx, 6
xor edx, ebx
xor edi, edx
mov ecx, edi
mov edx, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x78]
xor edx, edi
imul edx, dword [ebp - 0x60]
ror ecx, 0xe
add ecx, edx
xor eax, ecx
mov edx, dword [ebp - 0x90]
mov ecx, eax
sub ecx, ebx
rol ecx, 7
imul edx, ecx
mov ecx, eax
shr ecx, 5
xor edx, ecx
mov ecx, dword [ebp - 0x54]
xor edi, edx
mov edx, dword [ebp - 0x5c]
xor ecx, edi
rol ecx, 3
imul edx, ecx
mov ecx, edi
shr ecx, 8
sub edx, ecx
mov ecx, dword [ebp - 0x50]
xor eax, edx
sub ecx, eax
ror ecx, 0xc
mov edx, eax
imul ebx, ecx
mov ecx, dword [ebp - 0x60]
and dword [ebp - 0x70], 0
rol edx, 8
add edx, ebx
xor edi, edx
mov edx, dword [ebp - 0x50]
xor edx, edi
mov ebx, edi
rol edx, 4
imul ecx, edx
xor edi, dword [ebp - 0x80]
ror ebx, 0xa
sub ecx, ebx
mov ebx, dword [ebp - 0x98]
xor ecx, dword [ebp - 0x9c]
xor eax, ecx
test ebx, ebx
mov dword [ebp - 0x64], eax
mov ecx, edi
jle 0x102b9d5
cmp dword [ebp - 0x70], 4
jge 0x102b9b9
rol dword [ebp - 0x64], 8
mov ebx, dword [ebp - 0x6c]
mov dl, byte [ebp - 0x64]
inc dword [ebp - 0x6c]
xor byte [ebp - 0x55], dl
mov byte [ebx], dl
jmp 0x102b9c7
mov edx, dword [ebp - 0x6c]
inc dword [ebp - 0x6c]
rol ecx, 8
xor byte [ebp - 0x55], cl
mov byte [edx], cl
inc dword [ebp - 0x70]
mov ebx, dword [ebp - 0x98]
cmp dword [ebp - 0x70], ebx
jl 0x102b99f
add ebx, 0xfffffffc
test ebx, ebx
jle 0x102ba26
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edi, cl
shl edi, cl
mov edx, edi
mov edi, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x88]
shr ecx, 3
test ecx, ecx
jbe 0x102bc18
mov ebx, dword [ebp - 0x54]
xor ebx, dword [ebp - 0x50]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], ebx
movzx ebx, word [ebp - 0x52]
mov dword [ebp - 0x5c], ebx
neg dword [ebp - 0x5c]
mov dword [ebp - 0x78], ebx
movzx ebx, word [ebp - 0x4e]
mov dword [ebp - 0x90], ebx
jmp 0x102ba53
xor edx, edx
test ebx, ebx
jge 0x102b9ea
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x102b9ea
xor edx, edx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x9c], eax
not eax
mov dword [ebp - 0x80], eax
xor eax, eax
jmp 0x102b9f0
mov edi, dword [ebp - 0x8c]
movzx ecx, byte [edi]
movzx ebx, byte [edi + 1]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 2]
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x64], ecx
xor eax, dword [ebp - 0x64]
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 6]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 7]
add edi, 8
mov dword [ebp - 0x8c], edi
shl ecx, 8
mov edi, dword [ebp - 0x68]
or ecx, ebx
xor edi, ecx
mov dword [ebp - 0x98], ecx
mov ebx, dword [ebp - 0x78]
xor edi, edx
xor edi, eax
movzx ecx, word [ebp - 0x50]
mov edx, edi
sub edi, ecx
xor edi, dword [ebp - 0x54]
xor eax, edi
mov edi, eax
mov ecx, eax
sub ecx, dword [ebp - 0x50]
ror ecx, 0xc
imul ebx, ecx
movzx ecx, word [ebp - 0x54]
ror edi, 0xb
sub ebx, edi
xor edx, ebx
mov edi, edx
mov ebx, dword [ebp - 0x90]
xor ebx, edx
imul ebx, ecx
ror edi, 6
xor edi, ebx
xor eax, edi
movzx edi, word [ebp - 0x50]
mov ecx, edi
mov ebx, eax
xor ecx, eax
imul ecx, dword [ebp - 0x90]
shr ebx, 0xb
xor ecx, ebx
xor edx, ecx
movzx ecx, word [ebp - 0x54]
mov ebx, edx
xor ecx, edx
rol ecx, 6
imul edi, ecx
mov ecx, dword [ebp - 0x50]
rol ebx, 8
sub edi, ebx
mov ebx, dword [ebp - 0x78]
xor eax, edi
xor ecx, eax
rol ecx, 2
imul ebx, ecx
movzx ecx, word [ebp - 0x54]
mov edi, eax
ror edi, 6
xor edi, ebx
xor edx, edi
mov ebx, dword [ebp - 0x78]
mov edi, edx
ror edi, 0xe
xor ebx, edx
imul ebx, ecx
mov ecx, dword [ebp - 0x5c]
add edi, ebx
mov ebx, dword [ebp - 0x78]
xor eax, edi
mov edi, dword [ebp - 0x90]
add ecx, eax
rol ecx, 7
imul edi, ecx
mov ecx, eax
shr ecx, 5
xor edi, ecx
xor edx, edi
movzx edi, word [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
xor ecx, edx
rol ecx, 3
imul edi, ecx
mov ecx, edx
shr ecx, 8
sub edi, ecx
xor eax, edi
mov edi, eax
mov ecx, dword [ebp - 0x50]
sub ecx, eax
ror ecx, 0xc
imul ebx, ecx
mov ecx, dword [ebp - 0x50]
rol edi, 8
add edi, ebx
xor edx, edi
movzx edi, word [ebp - 0x54]
mov ebx, edx
xor ecx, edx
rol ecx, 4
imul edi, ecx
xor edx, dword [ebp - 0x80]
mov cl, byte [ebp - 0x55]
ror ebx, 0xa
sub edi, ebx
xor edi, dword [ebp - 0x9c]
xor eax, edi
mov edi, dword [ebp - 0x6c]
mov byte [edi + 3], al
xor cl, al
xor cl, dl
mov byte [edi + 7], dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
xor cl, al
mov byte [edi + 1], al
ror edx, 8
xor cl, dl
mov byte [edi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x64]
mov byte [edi], al
mov byte [edi + 4], dl
add edi, 8
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp - 0x98]
dec dword [ebp - 0x60]
mov dword [ebp - 0x80], ecx
ror eax, 8
ror edx, 8
mov dword [ebp - 0x6c], edi
jne 0x102ba4d
mov eax, dword [ebp - 0x7c]
movzx eax, byte [eax + 8]
movzx ecx, byte [ebp - 0x55]
sub ecx, eax
je 0x102bcb7
call 0x1244f80
mov ecx, 0xfffff000
mov esi, 0x10d8814
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
lea edi, [eax + 0xc]
and edi, 0xfffffffc
mov dword [eax + 8], esi
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
xor eax, eax
mov dword [ebp - 0x5c], ecx
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102bc60
xor edx, edx
div ecx
inc edx
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x104]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x102bcae
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x102bca6
jmp 0x1028809
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x84]
mov eax, dword [0x11e47bc]
mov dword [ebp - 0x60], ebx
sub esi, eax
mov dword [ebp - 0x5c], esi
jne 0x102bcda
test ebx, ebx
je 0x102a81d
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x88]
mov edi, dword [ebp - 0x84]
sub edi, dword [ebp - 0x94]
add eax, ecx
mov ecx, dword [0x11efd70]
xor esi, esi
mov dword [ebp - 0x118], eax
dec ecx
js 0x102bd2d
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102bd21
lea ecx, [eax - 1]
jmp 0x102bd26
jbe 0x102bd32
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102bd02
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], esi
jmp 0x102bd92
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], eax
jmp 0x102bd92
mov eax, dword [ebp - 0x80]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x118]
jae 0x102a81d
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x102bd84
dec ecx
je 0x102bd80
dec ecx
jne 0x102bd89
mov edx, dword [ebp - 0x5c]
jmp 0x102bd89
mov edx, ebx
jmp 0x102bd89
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x102bd8f
add dword [esi], edx
inc dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
cmp eax, dword [0x11efd70]
jb 0x102bd3a
jmp 0x102a81d
cmp dword [ebp - 0x94], esi
jb 0x102d0ec
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp dword [ebp - 0x94], eax
jae 0x102c752
mov eax, dword [0x10e9240]
mov ecx, dword [ebp - 0x94]
and dword [ebp - 0x5c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x102be13
mov edx, dword [ebp - 0x5c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x12984d0]
mov dword [ebp - 0x7c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ecx, edx
jae 0x102be01
dec eax
mov dword [ebp - 0x60], eax
jmp 0x102be0e
jbe 0x102bf4a
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jge 0x102bdde
xor ecx, ecx
test ecx, ecx
je 0x102c752
mov eax, dword [ecx]
mov edx, eax
shr edx, 0x1d
lea ecx, [edx + ecx + 8]
mov dword [ebp - 0x74], ecx
and eax, edi
sub dword [ebp - 0x74], esi
lea edx, [ecx + eax]
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
sub ecx, eax
mov dword [ebp - 0x98], eax
inc ecx
mov dword [ebp - 0x7c], edx
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x5c], ecx
je 0x102be7e
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102be54
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x98]
mov dword [ebp - 0x88], eax
push dword [ebp - 0x74]
mov eax, 0x42074cd3
mov eax, dword [ebp - 0x7c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x140]
push eax
mov dword [ebp - 0x140], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x9ce007f8
mov ecx, dword [0x11e47bc]
mov eax, dword [ebp - 0x13c]
and dword [ebp - 0xd0], 0
and dword [ebp - 0xcc], 0
and eax, edi
mov dword [ebp - 0x68], eax
mov eax, esi
and ebx, edi
add esp, 0x10
add ebx, esi
sub eax, ecx
mov dword [ebp - 0x84], eax
jne 0x102bf63
xor edi, edi
cmp dword [ebp - 0x68], edi
jbe 0x102c1cd
movzx ecx, byte [edi + ebx]
sub ecx, 0x328f5a12
add dword [ebp - 0xd0], ecx
add ecx, dword [ebp - 0xcc]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0xd0], eax
inc edi
mov dword [ebp - 0xcc], eax
cmp edi, dword [ebp - 0x68]
jb 0x102befb
jmp 0x102c1cd
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea ecx, [eax + ecx + 0x1000000]
jmp 0x102be15
mov ecx, ebx
sub ecx, esi
mov edi, ecx
mov eax, dword [ebp - 0x68]
mov edx, dword [0x100003c]
lea edx, [edx + 0x10000a0]
and edi, 0xfffff000
mov dword [ebp - 0x5c], edi
mov edi, ecx
sub edi, dword [ebp - 0x5c]
mov dword [ebp - 0x60], edi
mov edi, dword [ebp - 0x68]
add eax, ebx
mov dword [ebp - 0x80], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
add ecx, edi
mov edi, ecx
add eax, esi
and edi, 0xfffff000
mov dword [ebp - 0xb0], edi
sub ecx, edi
mov edi, eax
add edx, eax
cmp eax, edx
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xa8], edx
je 0x102bfcc
mov eax, dword [ebp - 0x5c]
cmp dword [edi], eax
jae 0x102bfcc
add edi, dword [edi + 4]
cmp edi, edx
jne 0x102bfbe
and dword [ebp - 0xa0], 0
cmp edi, edx
je 0x102c177
mov eax, dword [ebp - 0x5c]
cmp dword [edi], eax
jne 0x102c015
mov eax, dword [edi + 4]
sub eax, 8
shr eax, 1
je 0x102c015
lea ecx, [edi + 8]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
movzx ecx, word [ecx]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x60]
jae 0x102c015
inc dword [ebp - 0xa0]
add dword [ebp - 0x5c], 2
cmp dword [ebp - 0xa0], eax
jne 0x102bff2
cmp edi, edx
je 0x102c177
mov eax, dword [edi]
cmp eax, dword [ebp - 0xb0]
ja 0x102c177
mov ecx, dword [ebp - 0xa0]
mov eax, dword [edi + 4]
add eax, 0xfffffff8
shr eax, 1
cmp ecx, eax
jne 0x102c05a
add edi, dword [edi + 4]
cmp edi, edx
je 0x102c177
mov eax, dword [ebp - 0xb0]
cmp dword [edi], eax
ja 0x102c177
xor ecx, ecx
jmp 0x102c031
mov eax, dword [ebp - 0xb0]
cmp dword [edi], eax
jne 0x102c07a
movzx eax, word [edi + ecx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0xac]
jae 0x102c177
mov eax, ecx
inc ecx
mov dword [ebp - 0xa0], ecx
mov ecx, 0xf000
test word [edi + eax*2 + 8], cx
je 0x102c015
lea eax, [edi + eax*2 + 8]
mov ecx, dword [edi]
and dword [ebp - 0x68], 0
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + ecx + 0x1000000]
mov dword [ebp - 0x5c], eax
sub dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], eax
je 0x102c105
mov eax, dword [ebp - 0x68]
movzx ecx, byte [ebx + eax]
sub ecx, 0x328f5a12
add dword [ebp - 0xd0], ecx
add ecx, dword [ebp - 0xcc]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0xd0], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x5c]
jb 0x102c0b3
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x120], eax
xor ebx, ebx
movzx ecx, byte [ebp + ebx - 0x120]
sub ecx, 0x328f5a12
add dword [ebp - 0xd0], ecx
add ecx, dword [ebp - 0xcc]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
inc ebx
cmp ebx, 4
jb 0x102c118
mov edx, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0x60]
add ebx, 4
jmp 0x102c015
mov eax, dword [ebp - 0x80]
xor edi, edi
sub eax, ebx
mov dword [ebp - 0x60], eax
je 0x102c1cd
movzx ecx, byte [edi + ebx]
sub ecx, 0x328f5a12
add dword [ebp - 0xd0], ecx
add ecx, dword [ebp - 0xcc]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0xd0], eax
inc edi
mov dword [ebp - 0xcc], eax
cmp edi, dword [ebp - 0x60]
jb 0x102c183
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xd0]
mov byte [ebp + eax - 0x14], cl
inc eax
cmp eax, 8
jb 0x102c1d1
mov eax, 0x9bd17289
mov edi, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
and edx, 7
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x60], edx
je 0x102c3db
cmp edx, ebx
not eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x70], ebx
jle 0x102c257
mov dword [ebp - 0x68], 0x38
movzx ebx, byte [edi]
mov ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x70], 4
jge 0x102c242
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x80], ebx
jmp 0x102c24a
shl ebx, cl
or dword [ebp - 0x90], ebx
sub dword [ebp - 0x68], 8
inc edi
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], edx
jl 0x102c22c
movzx edx, word [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
sub ecx, eax
rol ecx, 0xc
imul ecx, edx
ror eax, 0x10
xor eax, ecx
movzx ecx, word [ebp - 0x14]
xor eax, dword [ebp - 0x74]
mov edx, eax
mov ebx, eax
xor ebx, ecx
movzx ecx, word [ebp - 0x12]
imul ebx, ecx
ror edx, 5
xor edx, ebx
xor dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x64]
ror ecx, 0xb
movzx edx, word [ebp - 0x14]
imul ecx, edx
rol ebx, 7
movzx edx, word [ebp - 0x10]
add ebx, ecx
movzx ecx, word [ebp - 0xe]
xor eax, ebx
mov ebx, eax
xor ebx, edx
imul ebx, ecx
mov ecx, eax
shr ecx, 5
xor ebx, ecx
xor dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x14]
rol ecx, 0xb
imul ecx, edx
ror ebx, 0xe
movzx edx, word [ebp - 0x12]
xor ebx, ecx
xor eax, ebx
mov ebx, eax
mov ecx, eax
sub ecx, dword [ebp - 0x10]
ror ecx, 1
imul ecx, edx
rol ebx, 0xb
movzx edx, word [ebp - 0xe]
xor ebx, ecx
xor dword [ebp - 0x64], ebx
mov ecx, dword [ebp - 0x64]
xor ecx, edx
movzx edx, word [ebp - 0x14]
rol ecx, 7
imul ecx, edx
mov ebx, dword [ebp - 0x64]
ror ebx, 2
xor ebx, ecx
mov ecx, dword [ebp - 0x14]
xor eax, ebx
mov edx, eax
mov ebx, ecx
xor edx, dword [ebp - 0x10]
sub ebx, edx
xor dword [ebp - 0x64], ebx
mov edx, dword [ebp - 0x64]
add ecx, edx
mov ebx, edx
rol ecx, 7
movzx edx, word [ebp - 0x10]
imul ecx, edx
ror ebx, 3
movzx edx, word [ebp - 0x12]
sub ecx, ebx
xor eax, ecx
mov ecx, eax
xor ecx, dword [ebp - 0x10]
rol ecx, 6
imul ecx, edx
mov edx, eax
shr edx, 8
sub ecx, edx
xor dword [ebp - 0x64], ecx
movzx edx, word [ebp - 0x14]
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x64]
xor ecx, dword [ebp - 0x10]
and dword [ebp - 0x70], 0
rol ecx, 2
imul ecx, edx
mov edx, dword [ebp - 0x64]
xor edx, dword [ebp - 0x90]
rol ebx, 0xf
add ebx, ecx
xor ebx, dword [ebp - 0x80]
mov dword [ebp - 0x8c], edx
xor eax, ebx
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
test ebx, ebx
jle 0x102c3b3
mov ebx, dword [ebp - 0x78]
inc dword [ebp - 0x78]
cmp dword [ebp - 0x70], 4
jge 0x102c396
rol dword [ebp - 0x6c], 8
mov cl, byte [ebp - 0x6c]
mov byte [ebx], cl
jmp 0x102c3a5
rol dword [ebp - 0x8c], 8
mov cl, byte [ebp - 0x8c]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x70]
mov ebx, dword [ebp - 0x60]
cmp dword [ebp - 0x70], ebx
jl 0x102c37f
add ebx, 0xfffffffc
test ebx, ebx
jle 0x102c3c8
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edx, cl
shl edx, cl
jmp 0x102c3ea
xor edx, edx
test ebx, ebx
jge 0x102c3ea
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x102c3ea
xor edx, edx
mov dword [ebp - 0x80], eax
not eax
mov dword [ebp - 0x90], eax
xor eax, eax
mov ecx, dword [ebp - 0x98]
shr ecx, 3
test ecx, ecx
jbe 0x102c5c8
movzx ebx, word [ebp - 0xe]
mov dword [ebp - 0x60], ebx
movzx ebx, word [ebp - 0x12]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x68], ecx
jmp 0x102c414
mov edi, dword [ebp - 0x84]
movzx ecx, byte [edi + 1]
movzx ebx, byte [edi]
shl ebx, 8
or ecx, ebx
movzx ebx, byte [edi + 2]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x6c], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 6]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 7]
shl ecx, 8
or ecx, ebx
mov dword [ebp - 0x8c], ecx
xor edx, ecx
mov ecx, dword [ebp - 0x14]
sub ecx, edx
add edi, 8
mov ebx, edx
mov dword [ebp - 0x84], edi
rol ecx, 0xc
movzx edi, word [ebp - 0x10]
imul ecx, edi
ror ebx, 0x10
xor ebx, ecx
movzx ecx, word [ebp - 0x14]
xor ebx, eax
xor ebx, dword [ebp - 0x6c]
mov eax, ebx
mov edi, eax
xor ebx, ecx
imul ebx, dword [ebp - 0x5c]
ror edi, 5
xor edi, ebx
xor edx, edi
movzx edi, word [ebp - 0x14]
mov ebx, edx
mov ecx, edx
sub ecx, dword [ebp - 0x10]
ror ecx, 0xb
imul ecx, edi
rol ebx, 7
movzx edi, word [ebp - 0x10]
add ebx, ecx
xor eax, ebx
mov ecx, eax
mov ebx, eax
xor ecx, edi
imul ecx, dword [ebp - 0x60]
shr ebx, 5
xor ecx, ebx
xor edx, ecx
mov ecx, edx
sub ecx, dword [ebp - 0x14]
mov ebx, edx
rol ecx, 0xb
imul ecx, edi
ror ebx, 0xe
xor ebx, ecx
xor eax, ebx
mov edi, eax
mov ecx, eax
mov ebx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x10]
ror ecx, 1
imul ebx, ecx
rol edi, 0xb
xor edi, ebx
xor edx, edi
movzx edi, word [ebp - 0x14]
mov ebx, edx
mov ecx, edx
xor ecx, dword [ebp - 0x60]
rol ecx, 7
imul edi, ecx
mov ecx, dword [ebp - 0x14]
ror ebx, 2
xor ebx, edi
xor eax, ebx
mov ebx, ecx
mov edi, eax
xor edi, dword [ebp - 0x10]
sub ebx, edi
movzx edi, word [ebp - 0x10]
xor edx, ebx
mov ebx, edx
add ecx, edx
rol ecx, 7
imul edi, ecx
ror ebx, 3
sub edi, ebx
xor eax, edi
mov ecx, eax
xor ecx, dword [ebp - 0x10]
rol ecx, 6
mov edi, dword [ebp - 0x5c]
imul edi, ecx
mov ecx, eax
shr ecx, 8
sub edi, ecx
xor edx, edi
mov ecx, edx
xor ecx, dword [ebp - 0x10]
mov ebx, edx
xor edx, dword [ebp - 0x90]
rol ecx, 2
movzx edi, word [ebp - 0x14]
imul edi, ecx
mov cl, byte [ebp - 0x55]
rol ebx, 0xf
add ebx, edi
mov edi, dword [ebp - 0x78]
xor ebx, dword [ebp - 0x80]
xor eax, ebx
xor cl, al
xor cl, dl
mov byte [edi + 3], al
ror eax, 8
mov byte [edi + 7], dl
mov byte [edi + 2], al
xor cl, al
ror edx, 8
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
xor cl, al
ror edx, 8
xor cl, dl
mov byte [edi + 1], al
mov byte [edi + 5], dl
ror eax, 8
ror edx, 8
xor cl, dl
xor cl, al
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x6c]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x80], ecx
add edi, 8
mov ecx, dword [ebp - 0x8c]
dec dword [ebp - 0x68]
ror eax, 8
ror edx, 8
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x78], edi
jne 0x102c40e
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 8]
movzx eax, byte [ebp - 0x55]
sub eax, ecx
je 0x102c667
call 0x1244f80
mov ecx, 0xfffff000
mov esi, 0x10d8814
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x5c], ecx
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102c610
xor edx, edx
div ecx
mov eax, dword [ebp - 0x104]
inc edx
mov ecx, dword [ebp - 0x60]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x102c65e
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x102c656
jmp 0x1028809
mov eax, dword [0x11e47bc]
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x88]
mov dword [ebp - 0x60], ebx
sub esi, eax
mov dword [ebp - 0x5c], esi
jne 0x102c68a
test ebx, ebx
je 0x1028901
mov eax, dword [ebp - 0x98]
mov edi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x74]
sub edi, dword [ebp - 0x94]
add eax, ecx
mov ecx, dword [0x11efd70]
mov dword [ebp - 0x120], eax
xor esi, esi
dec ecx
js 0x102c6dd
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102c6d1
lea ecx, [eax - 1]
jmp 0x102c6d6
jbe 0x102c6e2
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102c6b2
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], esi
jmp 0x102c742
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], eax
jmp 0x102c742
mov eax, dword [ebp - 0x80]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x120]
jae 0x1028901
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x102c734
dec ecx
je 0x102c730
dec ecx
jne 0x102c739
mov edx, dword [ebp - 0x5c]
jmp 0x102c739
mov edx, ebx
jmp 0x102c739
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x102c73f
add dword [esi], edx
inc dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
cmp eax, dword [0x11efd70]
jb 0x102c6ea
jmp 0x1028901
cmp dword [ebp - 0x94], esi
jb 0x102d0ec
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp dword [ebp - 0x94], eax
jae 0x102d0ec
mov ecx, dword [ebp - 0x94]
mov eax, dword [0x128df20]
and dword [ebp - 0x5c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x102c7c3
mov edx, dword [ebp - 0x5c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1291a90]
mov dword [ebp - 0x7c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ecx, edx
jae 0x102c7b1
dec eax
mov dword [ebp - 0x60], eax
jmp 0x102c7be
jbe 0x102c8ee
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jge 0x102c78e
xor eax, eax
test eax, eax
je 0x102d0ec
mov ecx, dword [eax + 4]
and ecx, 7
lea ecx, [ecx + eax + 8]
mov eax, dword [eax]
mov dword [ebp - 0x74], ecx
shr eax, 1
and eax, edi
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
lea edx, [ecx + eax]
mov ecx, dword [0x1116588]
sub ecx, eax
mov dword [ebp - 0x98], eax
inc ecx
mov dword [ebp - 0x7c], edx
xor eax, eax
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x102c831
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102c807
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x98]
mov dword [ebp - 0x88], eax
push dword [ebp - 0x74]
mov eax, 0x3eeceee7
mov eax, dword [ebp - 0x7c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x150]
push eax
mov dword [ebp - 0x150], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x978dd148
mov ecx, dword [ebp - 0x14c]
mov edx, dword [0x11e47bc]
and dword [ebp - 0xe0], 0
and dword [ebp - 0xdc], 0
mov eax, esi
and ebx, edi
add esp, 0x10
and ecx, edi
add ebx, esi
sub eax, edx
mov dword [ebp - 0x84], eax
jne 0x102c907
xor edi, edi
test ecx, ecx
jbe 0x102cb51
mov edx, 0xc64215ab
movzx eax, byte [ebx + edi]
sub eax, 0x39bdea55
add dword [ebp - 0xe0], eax
add eax, dword [ebp - 0xdc]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xe7fa
rol edx, 0xb
ror eax, 0xb
xor edx, eax
add dword [ebp - 0xe0], edx
mov dword [ebp - 0xdc], edx
inc edi
cmp edi, ecx
jb 0x102c8aa
jmp 0x102cb51
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea eax, [eax + ecx + 0x1000000]
jmp 0x102c7c5
mov edx, ebx
mov edi, dword [0x100003c]
lea edi, [edi + 0x10000a0]
sub edx, esi
lea eax, [ecx + ebx]
mov dword [ebp - 0x80], eax
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov dword [ebp - 0x60], edi
mov edi, edx
and edi, 0xfffff000
add ecx, edx
mov dword [ebp - 0x5c], edi
mov edi, edx
mov edx, ecx
sub edi, dword [ebp - 0x5c]
and edx, 0xfffff000
sub ecx, edx
mov dword [ebp - 0xac], ecx
add eax, esi
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x68], edi
mov dword [ebp - 0xb0], edx
add ecx, eax
cmp eax, ecx
mov edi, eax
mov dword [ebp - 0xa8], ecx
je 0x102c975
mov eax, dword [ebp - 0x5c]
cmp dword [edi], eax
jae 0x102c975
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0xa8]
jne 0x102c963
mov ecx, 0xfff
and dword [ebp - 0xa0], 0
cmp edi, dword [ebp - 0xa8]
je 0x102cb05
mov eax, dword [ebp - 0x5c]
cmp dword [edi], eax
jne 0x102c9c3
mov eax, dword [edi + 4]
sub eax, 8
shr eax, 1
je 0x102c9c3
lea edx, [edi + 8]
mov dword [ebp - 0x5c], edx
mov edx, dword [ebp - 0x5c]
movzx edx, word [edx]
and edx, ecx
cmp edx, dword [ebp - 0x68]
jae 0x102c9c3
inc dword [ebp - 0xa0]
add dword [ebp - 0x5c], 2
cmp dword [ebp - 0xa0], eax
jne 0x102c9a4
cmp edi, dword [ebp - 0xa8]
je 0x102cb05
mov eax, dword [edi]
cmp eax, dword [ebp - 0xb0]
ja 0x102cb05
mov edx, dword [ebp - 0xa0]
mov eax, dword [edi + 4]
add eax, 0xfffffff8
shr eax, 1
cmp edx, eax
jne 0x102ca10
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0xa8]
je 0x102cb05
mov eax, dword [ebp - 0xb0]
cmp dword [edi], eax
ja 0x102cb05
xor edx, edx
jmp 0x102c9e3
mov eax, dword [ebp - 0xb0]
cmp dword [edi], eax
jne 0x102ca2d
movzx eax, word [edi + edx*2 + 8]
and eax, ecx
cmp eax, dword [ebp - 0xac]
jae 0x102cb05
mov eax, edx
inc edx
mov dword [ebp - 0xa0], edx
mov edx, 0xf000
test word [edi + eax*2 + 8], dx
je 0x102c9c3
lea eax, [edi + eax*2 + 8]
movzx eax, word [eax]
and eax, ecx
mov ecx, dword [edi]
lea eax, [eax + ecx + 0x1000000]
xor ecx, ecx
mov dword [ebp - 0x5c], eax
sub dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], eax
je 0x102caa1
mov edx, 0xc64215ab
movzx eax, byte [ebx + ecx]
sub eax, 0x39bdea55
add dword [ebp - 0xe0], eax
add eax, dword [ebp - 0xdc]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xe7fa
rol edx, 0xb
ror eax, 0xb
xor edx, eax
add dword [ebp - 0xe0], edx
mov dword [ebp - 0xdc], edx
inc ecx
cmp ecx, dword [ebp - 0x5c]
jb 0x102ca61
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebx]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x128], eax
xor ecx, ecx
mov edx, 0xc64215ab
movzx eax, byte [ebp + ecx - 0x128]
sub eax, 0x39bdea55
add dword [ebp - 0xe0], eax
add eax, dword [ebp - 0xdc]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xe7fa
rol edx, 0xb
ror eax, 0xb
xor edx, eax
add dword [ebp - 0xe0], edx
inc ecx
mov dword [ebp - 0xdc], edx
cmp ecx, 4
jb 0x102cab4
mov ecx, 0xfff
add ebx, 4
jmp 0x102c9c3
xor edi, edi
mov eax, dword [ebp - 0x80]
sub eax, ebx
mov dword [ebp - 0x60], eax
je 0x102cb51
movzx eax, byte [ebx + edi]
mov ecx, 0xc64215ab
sub eax, 0x39bdea55
add dword [ebp - 0xe0], eax
add eax, dword [ebp - 0xdc]
mul ecx
add eax, edx
mov ecx, eax
imul ecx, ecx, 0xe7fa
rol ecx, 0xb
ror eax, 0xb
xor ecx, eax
add dword [ebp - 0xe0], ecx
mov dword [ebp - 0xdc], ecx
inc edi
cmp edi, dword [ebp - 0x60]
jb 0x102cb11
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xe0]
mov byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 8
jb 0x102cb55
mov eax, 0x3afeda78
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x94]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x98]
and eax, 7
mov dword [ebp - 0x60], eax
je 0x102cd62
mov edx, dword [ebp - 0x74]
not edx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x80], ebx
cmp eax, ebx
mov dword [ebp - 0x70], ebx
jle 0x102cbd8
mov dword [ebp - 0x68], 0x38
mov ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x70], 4
movzx ebx, byte [edi]
jge 0x102cbc3
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x80], ebx
jmp 0x102cbcb
shl ebx, cl
or dword [ebp - 0x8c], ebx
sub dword [ebp - 0x68], 8
inc edi
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], eax
jl 0x102cbad
movzx ecx, word [ebp - 6]
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
sub eax, dword [ebp - 0xc]
rol eax, 0xf
imul eax, ecx
movzx ecx, word [ebp - 8]
ror ebx, 0xe
xor ebx, eax
xor edx, ebx
mov eax, edx
sub eax, dword [ebp - 0xc]
rol eax, 4
mov dword [ebp - 0x64], edx
imul eax, ecx
mov ecx, dword [ebp - 8]
rol edx, 0xb
sub eax, edx
xor eax, dword [ebp - 0x74]
xor ecx, eax
mov ebx, eax
ror ecx, 8
movzx edx, word [ebp - 0xa]
imul ecx, edx
rol ebx, 4
xor ebx, ecx
xor dword [ebp - 0x64], ebx
mov edx, dword [ebp - 0x64]
movzx ecx, word [ebp - 6]
mov ebx, dword [ebp - 0x64]
xor ebx, ecx
movzx ecx, word [ebp - 0xc]
imul ebx, ecx
ror edx, 8
add edx, ebx
movzx ebx, word [ebp - 8]
xor eax, edx
movzx edx, word [ebp - 6]
mov ecx, eax
sub ecx, edx
xor ecx, dword [ebp - 0x64]
xor ecx, dword [ebp - 0xc]
mov edx, ecx
xor edx, dword [ebp - 0xc]
rol edx, 4
imul edx, ebx
mov dword [ebp - 0x64], ecx
shr ecx, 7
sub edx, ecx
xor eax, edx
mov ebx, eax
movzx edx, word [ebp - 0xa]
mov ecx, dword [ebp - 8]
sub ecx, eax
ror ecx, 7
imul ecx, edx
rol ebx, 7
add ebx, ecx
xor dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x64]
movzx ecx, word [ebp - 8]
xor ebx, ecx
mov edx, dword [ebp - 0x64]
movzx ecx, word [ebp - 0xc]
imul ebx, ecx
ror edx, 1
sub ebx, edx
xor eax, ebx
mov ecx, eax
mov ebx, eax
movzx edx, word [ebp - 0xa]
xor ecx, edx
rol ecx, 6
movzx edx, word [ebp - 6]
imul ecx, edx
shr ebx, 6
add ecx, ebx
xor dword [ebp - 0x64], ecx
movzx ecx, word [ebp - 8]
mov ebx, dword [ebp - 0x64]
not ebx
ror ebx, 0xc
add ebx, ecx
movzx ecx, word [ebp - 0xa]
imul ebx, edx
xor eax, ebx
mov edx, eax
sub edx, dword [ebp - 8]
and dword [ebp - 0x70], 0
sub edx, ecx
xor dword [ebp - 0x64], edx
movzx edx, word [ebp - 0xc]
mov ecx, dword [ebp - 8]
xor ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x64]
rol ecx, 0xd
imul ecx, edx
mov edx, dword [ebp - 0x64]
xor edx, dword [ebp - 0x8c]
ror ebx, 0xb
add ebx, ecx
xor ebx, dword [ebp - 0x80]
mov dword [ebp - 0x64], edx
xor eax, ebx
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
test ebx, ebx
jle 0x102cd3a
mov ebx, dword [ebp - 0x78]
inc dword [ebp - 0x78]
cmp dword [ebp - 0x70], 4
jge 0x102cd23
rol dword [ebp - 0x6c], 8
mov cl, byte [ebp - 0x6c]
mov byte [ebx], cl
jmp 0x102cd2c
rol dword [ebp - 0x64], 8
mov cl, byte [ebp - 0x64]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x70]
mov ebx, dword [ebp - 0x60]
cmp dword [ebp - 0x70], ebx
jl 0x102cd0c
add ebx, 0xfffffffc
test ebx, ebx
jle 0x102cd4f
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edx, cl
shl edx, cl
jmp 0x102cd74
xor edx, edx
test ebx, ebx
jge 0x102cd74
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x102cd74
xor edx, edx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x80], eax
not eax
mov dword [ebp - 0x8c], eax
xor eax, eax
mov ecx, dword [ebp - 0x98]
shr ecx, 3
test ecx, ecx
jbe 0x102cf62
movzx ebx, word [ebp - 6]
mov dword [ebp - 0x84], ebx
movzx ebx, word [ebp - 0xa]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x60], ecx
jmp 0x102cd9e
mov edi, dword [ebp - 0x5c]
movzx ecx, byte [edi]
movzx ebx, byte [edi + 1]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 2]
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x6c], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
xor eax, dword [ebp - 0x6c]
movzx ebx, byte [edi + 6]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 7]
or ecx, ebx
mov dword [ebp - 0x64], ecx
add edi, 8
mov dword [ebp - 0x5c], edi
mov ecx, eax
sub ecx, dword [ebp - 0xc]
mov edi, eax
rol ecx, 0xf
imul ecx, dword [ebp - 0x84]
ror edi, 0xe
xor edi, ecx
xor edi, dword [ebp - 0x64]
xor edx, edi
mov ecx, edx
movzx edi, word [ebp - 8]
sub ecx, dword [ebp - 0xc]
rol ecx, 4
imul ecx, edi
mov ebx, edx
rol ebx, 0xb
sub ecx, ebx
xor eax, ecx
mov ecx, dword [ebp - 8]
xor ecx, eax
mov edi, eax
ror ecx, 8
imul ecx, dword [ebp - 0x68]
rol edi, 4
xor edi, ecx
xor edx, edi
movzx ecx, word [ebp - 0xc]
mov edi, edx
mov ebx, edx
xor ebx, dword [ebp - 0x84]
imul ebx, ecx
ror edi, 8
add edi, ebx
xor eax, edi
mov ecx, eax
movzx edi, word [ebp - 8]
sub ecx, dword [ebp - 0x84]
xor ecx, edx
xor ecx, dword [ebp - 0xc]
mov edx, ecx
xor ecx, dword [ebp - 0xc]
rol ecx, 4
imul ecx, edi
mov edi, edx
shr edi, 7
sub ecx, edi
xor eax, ecx
mov edi, eax
mov ecx, dword [ebp - 8]
sub ecx, eax
ror ecx, 7
imul ecx, dword [ebp - 0x68]
rol edi, 7
add edi, ecx
xor edx, edi
mov edi, edx
mov ebx, edx
mov ecx, edx
mov dword [ebp - 0x90], ecx
movzx ecx, word [ebp - 8]
xor edi, ecx
mov ecx, edi
movzx edi, word [ebp - 0xc]
ror ebx, 1
imul ecx, edi
sub ecx, ebx
xor eax, ecx
mov ebx, eax
mov ecx, eax
xor ecx, dword [ebp - 0x68]
rol ecx, 6
imul ecx, dword [ebp - 0x84]
shr ebx, 6
add ecx, ebx
xor edx, ecx
mov ebx, edx
not ebx
ror ebx, 0xc
movzx ecx, word [ebp - 8]
add ebx, ecx
imul ebx, dword [ebp - 0x84]
xor eax, ebx
mov ecx, eax
sub ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x68]
xor edx, ecx
mov ebx, edx
mov ecx, dword [ebp - 8]
xor ecx, edx
rol ecx, 0xd
imul ecx, edi
mov edi, dword [ebp - 0x78]
xor edx, dword [ebp - 0x8c]
ror ebx, 0xb
add ebx, ecx
xor ebx, dword [ebp - 0x80]
xor eax, ebx
mov cl, byte [ebp - 0x55]
xor cl, al
xor cl, dl
mov byte [edi + 3], al
ror eax, 8
mov byte [edi + 7], dl
xor cl, al
ror edx, 8
xor cl, dl
mov byte [edi + 2], al
ror eax, 8
xor cl, al
mov byte [edi + 6], dl
ror edx, 8
xor cl, dl
mov byte [edi + 1], al
mov byte [edi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x6c]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x80], ecx
add edi, 8
mov ecx, dword [ebp - 0x64]
dec dword [ebp - 0x60]
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x78], edi
ror eax, 8
ror edx, 8
jne 0x102cd9b
movzx ecx, byte [ebp - 0x55]
mov eax, dword [ebp - 0x7c]
movzx eax, byte [eax + 8]
sub ecx, eax
je 0x102d001
call 0x1244f80
mov esi, 0x10d8814
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
xor eax, eax
mov dword [ebp - 0x5c], ecx
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102cfaa
xor edx, edx
div ecx
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x60]
inc edx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x102cff8
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x102cff0
jmp 0x1028809
mov eax, dword [0x11e47bc]
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x88]
mov dword [ebp - 0x60], ebx
sub esi, eax
mov dword [ebp - 0x5c], esi
jne 0x102d024
test ebx, ebx
je 0x1028901
mov edi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x74]
sub edi, dword [ebp - 0x94]
add eax, ecx
mov ecx, dword [0x11efd70]
xor esi, esi
dec ecx
mov dword [ebp - 0x128], eax
js 0x102d077
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102d06b
lea ecx, [eax - 1]
jmp 0x102d070
jbe 0x102d07c
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102d04c
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], esi
jmp 0x102d0dc
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], eax
jmp 0x102d0dc
mov eax, dword [ebp - 0x80]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x128]
jae 0x1028901
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x102d0ce
dec ecx
je 0x102d0ca
dec ecx
jne 0x102d0d3
mov edx, dword [ebp - 0x5c]
jmp 0x102d0d3
mov edx, ebx
jmp 0x102d0d3
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x102d0d9
add dword [esi], edx
inc dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
cmp eax, dword [0x11efd70]
jb 0x102d084
jmp 0x1028901
mov ecx, dword [ebp - 0x94]
cmp ecx, esi
jb 0x102dab6
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp ecx, eax
jae 0x102dab6
mov eax, dword [0x100cc1c]
and dword [ebp - 0x5c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x102d155
mov edx, dword [ebp - 0x5c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x10c3900]
mov dword [ebp - 0x7c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ecx, edx
jae 0x102d143
dec eax
mov dword [ebp - 0x60], eax
jmp 0x102d150
jbe 0x102d294
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jge 0x102d120
xor eax, eax
test eax, eax
je 0x102dab6
mov ecx, dword [eax]
and ecx, 7
lea ecx, [ecx + eax + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x74], ecx
and eax, edi
lea edx, [ecx + eax]
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x84], edx
sub ecx, eax
inc ecx
mov dword [ebp - 0x5c], ecx
xor eax, eax
test ecx, ecx
je 0x102d1c4
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102d19a
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x98]
mov dword [ebp - 0x88], eax
push dword [ebp - 0x74]
mov eax, 0x74f04cfd
mov eax, dword [ebp - 0x84]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x160]
push eax
mov dword [ebp - 0x160], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x6c182ba2
mov edx, dword [ebp - 0x15c]
mov eax, esi
mov ecx, dword [0x11e47bc]
and dword [ebp - 0xf0], 0
and dword [ebp - 0xec], 0
and ebx, edi
add esp, 0x10
and edx, edi
add ebx, esi
sub eax, ecx
mov dword [ebp - 0x68], eax
jne 0x102d2ad
and dword [ebp - 0x68], 0
test edx, edx
jbe 0x102d523
mov edi, 0x3d5e919b
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + ebx]
add eax, edi
add dword [ebp - 0xf0], eax
add eax, dword [ebp - 0xec]
imul eax, eax, 0x3d5e919b
ror eax, 0x13
imul eax, eax, 0x3d5e919b
ror eax, 0x13
mov ecx, eax
imul eax, eax, 0x5653
rol eax, 0xb
ror ecx, 0xb
xor eax, ecx
add dword [ebp - 0xf0], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0x68], edx
jb 0x102d244
jmp 0x102d523
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea eax, [eax + ecx + 0x1000000]
jmp 0x102d157
mov ecx, ebx
sub ecx, esi
lea eax, [ebx + edx]
mov edi, dword [0x100003c]
mov dword [ebp - 0x80], eax
lea edi, [edi + 0x10000a0]
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov dword [ebp - 0x60], edi
mov edi, ecx
and edi, 0xfffff000
mov dword [ebp - 0x5c], edi
mov edi, ecx
sub edi, dword [ebp - 0x5c]
add ecx, edx
mov edx, ecx
and edx, 0xfffff000
sub ecx, edx
mov dword [ebp - 0xac], ecx
add eax, esi
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0xb0], edx
add ecx, eax
mov dword [ebp - 0xa8], ecx
cmp eax, ecx
je 0x102d316
mov ecx, dword [eax]
cmp ecx, dword [ebp - 0x5c]
jae 0x102d316
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0xa8]
jne 0x102d304
and dword [ebp - 0xa0], 0
cmp eax, dword [ebp - 0xa8]
je 0x102d364
mov ecx, dword [ebp - 0x5c]
cmp dword [eax], ecx
jne 0x102d364
mov ecx, dword [eax + 4]
sub ecx, 8
shr ecx, 1
mov dword [ebp - 0x60], ecx
je 0x102d364
lea ecx, [eax + 8]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
movzx ecx, word [ecx]
and ecx, 0xfff
cmp ecx, edi
jae 0x102d364
inc dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x60]
add dword [ebp - 0x5c], 2
cmp dword [ebp - 0xa0], ecx
jne 0x102d33f
mov edi, 0x3d5e919b
jmp 0x102d371
mov edx, dword [ebp - 0xb0]
cmp eax, dword [ebp - 0xa8]
je 0x102d4d1
cmp dword [eax], edx
ja 0x102d4d1
mov ecx, dword [eax + 4]
lea edx, [ecx - 8]
shr edx, 1
mov ecx, dword [ebp - 0xa0]
cmp ecx, edx
jne 0x102d3bd
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0xa8]
je 0x102d4d1
mov ecx, dword [ebp - 0xb0]
cmp dword [eax], ecx
ja 0x102d4d1
and dword [ebp - 0xa0], 0
jmp 0x102d385
mov edx, dword [ebp - 0xb0]
cmp dword [eax], edx
jne 0x102d3de
movzx ecx, word [eax + ecx*2 + 8]
and ecx, 0xfff
cmp ecx, dword [ebp - 0xac]
jae 0x102d4d1
mov ecx, dword [ebp - 0xa0]
mov edx, 0xf000
inc dword [ebp - 0xa0]
test word [eax + ecx*2 + 8], dx
je 0x102d36b
mov edx, dword [eax]
lea ecx, [eax + ecx*2 + 8]
movzx ecx, word [ecx]
and ecx, 0xfff
lea edx, [ecx + edx + 0x1000000]
xor ecx, ecx
mov dword [ebp - 0x5c], edx
sub dword [ebp - 0x5c], ebx
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x60], ecx
je 0x102d46c
movzx ecx, byte [ecx + ebx]
add ecx, edi
add dword [ebp - 0xf0], ecx
add ecx, dword [ebp - 0xec]
imul ecx, ecx, 0x3d5e919b
ror ecx, 0x13
imul ecx, ecx, 0x3d5e919b
ror ecx, 0x13
mov edx, ecx
imul ecx, ecx, 0x5653
rol ecx, 0xb
ror edx, 0xb
xor ecx, edx
add dword [ebp - 0xf0], ecx
mov dword [ebp - 0xec], ecx
mov ecx, dword [ebp - 0x60]
inc ecx
mov dword [ebp - 0x60], ecx
cmp ecx, dword [ebp - 0x5c]
jb 0x102d420
mov ecx, dword [ebp - 0x7c]
mov ecx, dword [ecx]
sub ecx, dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0x10c], ecx
movzx ecx, byte [ebp + edx - 0x10c]
add ecx, edi
add dword [ebp - 0xf0], ecx
add ecx, dword [ebp - 0xec]
imul ecx, ecx, 0x3d5e919b
ror ecx, 0x13
imul ecx, ecx, 0x3d5e919b
ror ecx, 0x13
mov ebx, ecx
imul ecx, ecx, 0x5653
rol ecx, 0xb
ror ebx, 0xb
xor ecx, ebx
add dword [ebp - 0xf0], ecx
inc edx
mov dword [ebp - 0xec], ecx
cmp edx, 4
jb 0x102d47c
mov ebx, dword [ebp - 0x7c]
add ebx, 4
jmp 0x102d36b
mov eax, dword [ebp - 0x80]
xor edx, edx
sub eax, ebx
mov dword [ebp - 0x60], eax
je 0x102d523
movzx eax, byte [edx + ebx]
add eax, edi
add dword [ebp - 0xf0], eax
add eax, dword [ebp - 0xec]
imul eax, eax, 0x3d5e919b
ror eax, 0x13
imul eax, eax, 0x3d5e919b
ror eax, 0x13
mov ecx, eax
imul eax, eax, 0x5653
rol eax, 0xb
ror ecx, 0xb
xor eax, ecx
add dword [ebp - 0xf0], eax
inc edx
mov dword [ebp - 0xec], eax
cmp edx, dword [ebp - 0x60]
jb 0x102d4dd
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0xf0]
mov byte [ebp + eax - 0x24], cl
inc eax
cmp eax, 8
jb 0x102d527
mov eax, 0x9a4d468a
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x94]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x80], edi
and eax, 7
mov dword [ebp - 0x60], eax
je 0x102d761
cmp eax, ebx
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x8c], ebx
not edx
mov dword [ebp - 0x70], ebx
jle 0x102d5b6
mov dword [ebp - 0x68], 0x38
movzx ebx, byte [edi]
mov ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x70], 4
jge 0x102d59e
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x8c], ebx
jmp 0x102d5a6
shl ebx, cl
or dword [ebp - 0x9c], ebx
sub dword [ebp - 0x68], 8
inc edi
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], eax
jl 0x102d585
mov dword [ebp - 0x80], edi
movzx edi, word [ebp - 0x24]
mov eax, dword [ebp - 0x74]
movzx ecx, word [ebp - 0x1e]
sub eax, ecx
sub eax, dword [ebp - 0x24]
xor edx, eax
movzx eax, word [ebp - 0x20]
mov dword [ebp - 0x5c], eax
mov ebx, edx
xor ebx, edi
mov eax, edx
imul ebx, dword [ebp - 0x5c]
ror eax, 0xe
xor eax, ebx
xor eax, dword [ebp - 0x74]
mov edi, eax
mov ebx, eax
xor ebx, ecx
movzx ecx, word [ebp - 0x22]
imul ebx, ecx
ror edi, 0xb
sub ebx, edi
movzx edi, word [ebp - 0x24]
xor edx, ebx
mov ecx, edx
mov ebx, edx
sub ecx, dword [ebp - 0x20]
ror ecx, 0xb
imul ecx, edi
rol ebx, 3
add ebx, ecx
xor eax, ebx
movzx ecx, word [ebp - 0x20]
mov ebx, eax
xor ebx, ecx
mov edi, eax
movzx ecx, word [ebp - 0x1e]
imul ebx, ecx
ror edi, 1
movzx ecx, word [ebp - 0x20]
add edi, ebx
xor edx, edi
mov ebx, edx
movzx edi, word [ebp - 0x22]
xor ebx, edi
imul ebx, ecx
mov ecx, edx
shr ecx, 0xa
add ebx, ecx
mov ecx, dword [ebp - 0x20]
xor eax, ebx
sub ecx, eax
rol ecx, 0xc
mov ebx, eax
imul ecx, edi
ror ebx, 0x10
add ebx, ecx
movzx edi, word [ebp - 0x24]
xor edx, ebx
mov ecx, edx
mov ebx, edx
xor ecx, dword [ebp - 0x20]
ror ecx, 8
imul ecx, edi
ror ebx, 0x10
add ebx, ecx
xor eax, ebx
movzx ebx, word [ebp - 0x1e]
mov ecx, eax
mov dword [ebp - 0x70], ebx
xor ecx, edi
rol ecx, 3
imul ecx, ebx
mov ebx, eax
shr ebx, 0xc
add ecx, ebx
xor edx, ecx
mov ebx, edx
ror ebx, 3
movzx ecx, word [ebp - 0x20]
sub ebx, ecx
mov dword [ebp - 0x5c], ecx
imul ebx, dword [ebp - 0x70]
xor eax, ebx
xor edx, eax
xor edx, dword [ebp - 0x20]
and dword [ebp - 0x70], 0
xor edx, dword [ebp - 0x24]
mov ecx, edx
sub ecx, dword [ebp - 0x5c]
rol ecx, 5
imul ecx, edi
mov edi, edx
xor edx, dword [ebp - 0x9c]
shr edi, 0xa
xor ecx, edi
mov edi, dword [ebp - 0x60]
xor ecx, dword [ebp - 0x8c]
xor eax, ecx
test edi, edi
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x90], edx
jle 0x102d703
mov ebx, dword [ebp - 0x78]
inc dword [ebp - 0x78]
cmp dword [ebp - 0x70], 4
jge 0x102d6e9
rol dword [ebp - 0x6c], 8
mov cl, byte [ebp - 0x6c]
mov byte [ebx], cl
jmp 0x102d6f8
rol dword [ebp - 0x90], 8
mov cl, byte [ebp - 0x90]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], edi
jl 0x102d6d2
add edi, 0xfffffffc
test edi, edi
jle 0x102d74e
push 4
pop ecx
sub ecx, edi
shl ecx, 3
shr edx, cl
shl edx, cl
mov edi, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x98]
shr ebx, 3
test ebx, ebx
jbe 0x102d929
movzx ecx, word [ebp - 0x22]
mov dword [ebp - 0x5c], ecx
movzx ecx, word [ebp - 0x1e]
mov dword [ebp - 0x70], ecx
movzx ecx, word [ebp - 0x20]
mov dword [ebp - 0x7c], ecx
movzx ecx, word [ebp - 0x24]
neg dword [ebp - 0x7c]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], ebx
jmp 0x102d77b
xor edx, edx
test edi, edi
jge 0x102d716
neg edi
shl edi, 3
mov ecx, edi
shr eax, cl
shl eax, cl
jmp 0x102d716
xor edx, edx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x8c], eax
not eax
mov dword [ebp - 0x9c], eax
xor eax, eax
jmp 0x102d719
mov edi, dword [ebp - 0x80]
movzx ecx, byte [edi + 1]
movzx ebx, byte [edi]
shl ebx, 8
or ecx, ebx
movzx ebx, byte [edi + 2]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 3]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x6c], ecx
xor eax, dword [ebp - 0x6c]
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 6]
or ecx, ebx
movzx ebx, byte [edi + 7]
add edi, 8
shl ecx, 8
or ecx, ebx
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x90], ecx
mov edi, eax
sub edi, dword [ebp - 0x70]
sub edi, dword [ebp - 0x24]
xor edi, ecx
movzx ecx, word [ebp - 0x20]
xor edx, edi
mov ebx, edx
xor ebx, dword [ebp - 0x60]
imul ebx, ecx
mov edi, edx
ror edi, 0xe
xor edi, ebx
xor eax, edi
mov ecx, eax
mov edi, eax
xor edi, dword [ebp - 0x70]
imul edi, dword [ebp - 0x5c]
ror ecx, 0xb
sub edi, ecx
xor edx, edi
movzx edi, word [ebp - 0x24]
mov ecx, edx
sub ecx, dword [ebp - 0x20]
mov ebx, edx
ror ecx, 0xb
imul ecx, edi
rol ebx, 3
add ebx, ecx
movzx ecx, word [ebp - 0x20]
xor eax, ebx
mov edi, eax
mov ebx, eax
xor ebx, ecx
imul ebx, dword [ebp - 0x70]
movzx ecx, word [ebp - 0x20]
ror edi, 1
add edi, ebx
xor edx, edi
mov edi, edx
xor edi, dword [ebp - 0x5c]
imul edi, ecx
mov ecx, edx
shr ecx, 0xa
add edi, ecx
mov ecx, dword [ebp - 0x20]
xor eax, edi
mov edi, eax
sub ecx, eax
rol ecx, 0xc
imul ecx, dword [ebp - 0x5c]
ror edi, 0x10
add edi, ecx
xor edx, edi
movzx edi, word [ebp - 0x24]
mov ebx, edx
mov ecx, edx
xor ecx, dword [ebp - 0x20]
ror ecx, 8
imul ecx, edi
ror ebx, 0x10
add ebx, ecx
xor eax, ebx
mov ebx, eax
mov ecx, eax
xor ecx, edi
rol ecx, 3
imul ecx, dword [ebp - 0x70]
shr ebx, 0xc
add ecx, ebx
xor edx, ecx
mov ebx, edx
ror ebx, 3
movzx ecx, word [ebp - 0x20]
sub ebx, ecx
mov ecx, dword [ebp - 0x7c]
imul ebx, dword [ebp - 0x70]
xor eax, ebx
xor edx, eax
xor edx, dword [ebp - 0x20]
mov dword [ebp - 0x60], edi
xor edx, dword [ebp - 0x24]
add ecx, edx
rol ecx, 5
imul ecx, edi
mov edi, edx
xor edx, dword [ebp - 0x9c]
shr edi, 0xa
xor ecx, edi
xor ecx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x78]
xor eax, ecx
mov cl, byte [ebp - 0x55]
mov byte [edi + 3], al
xor cl, al
mov byte [edi + 7], dl
xor cl, dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
xor cl, dl
mov byte [edi + 6], dl
ror eax, 8
mov byte [edi + 1], al
xor cl, al
ror edx, 8
xor cl, dl
ror eax, 8
mov byte [edi + 5], dl
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x6c]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x90]
add edi, 8
dec dword [ebp - 0x68]
mov dword [ebp - 0x9c], ecx
ror eax, 8
mov dword [ebp - 0x78], edi
ror edx, 8
jne 0x102d778
mov ecx, dword [ebp - 0x84]
movzx eax, byte [ebp - 0x55]
movzx ecx, byte [ecx + 8]
sub eax, ecx
je 0x102d9cb
call 0x1244f80
mov esi, 0x10d8814
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x108]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102d974
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, dword [ebp - 0x104]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x102d9c2
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x102d9ba
jmp 0x1028809
mov eax, dword [0x11e47bc]
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x88]
sub esi, eax
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], esi
jne 0x102d9ee
test ebx, ebx
je 0x1028901
mov ecx, dword [ebp - 0x98]
mov edi, dword [ebp - 0x88]
sub edi, dword [ebp - 0x94]
mov eax, dword [ebp - 0x74]
add eax, ecx
xor esi, esi
mov ecx, dword [0x11efd70]
mov dword [ebp - 0x10c], eax
dec ecx
js 0x102da41
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102da35
lea ecx, [eax - 1]
jmp 0x102da3a
jbe 0x102da46
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102da16
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], esi
jmp 0x102daa6
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x80], eax
jmp 0x102daa6
mov eax, dword [ebp - 0x80]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x10c]
jae 0x1028901
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x102da98
dec ecx
je 0x102da94
dec ecx
jne 0x102da9d
mov edx, dword [ebp - 0x5c]
jmp 0x102da9d
mov edx, ebx
jmp 0x102da9d
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x102daa3
add dword [esi], edx
inc dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
cmp eax, dword [0x11efd70]
jb 0x102da4e
jmp 0x1028901
mov ecx, dword [ebp - 0x94]
cmp ecx, esi
jb 0x102e479
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, esi
cmp ecx, eax
jae 0x102e479
mov eax, dword [0x10a0bc8]
and dword [ebp - 0x5c], 0
sub ecx, esi
dec eax
mov dword [ebp - 0x60], eax
js 0x102db20
mov edx, dword [ebp - 0x5c]
add eax, edx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x100e6a0]
mov dword [ebp - 0x7c], edx
mov edx, dword [edx]
shr edx, 1
and edx, edi
cmp ecx, edx
jae 0x102db0e
dec eax
mov dword [ebp - 0x60], eax
jmp 0x102db1b
jbe 0x102dc45
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jge 0x102daea
xor ecx, ecx
test ecx, ecx
je 0x102e479
mov eax, dword [ecx]
mov edx, eax
and edx, 7
shr eax, 3
lea ecx, [edx + ecx + 8]
and eax, edi
lea edx, [ecx + eax]
mov dword [ebp - 0x74], ecx
sub dword [ebp - 0x74], esi
mov dword [ebp - 0x94], ecx
mov ecx, dword [0x1116588]
mov dword [ebp - 0x88], eax
sub ecx, eax
mov dword [ebp - 0x60], edx
inc ecx
mov dword [ebp - 0x5c], ecx
xor eax, eax
test ecx, ecx
je 0x102db8e
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x5c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x5c], 0
jne 0x102db64
xor edx, edx
div ecx
lea eax, [ebx + edx]
push eax
push dword [ebp - 0x88]
mov dword [ebp - 0x7c], eax
push dword [ebp - 0x74]
mov eax, 0xe433efb0
mov eax, dword [ebp - 0x60]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x16c], eax
lea eax, [ebp - 0x170]
push eax
mov dword [ebp - 0x170], ebx
mov byte [ebp - 0x55], 0
mov eax, 0x2df9a575
mov eax, dword [ebp - 0x16c]
mov ecx, dword [0x11e47bc]
and dword [ebp - 0x100], 0
and dword [ebp - 0xfc], 0
and eax, edi
and ebx, edi
mov dword [ebp - 0x68], eax
add esp, 0x10
add ebx, esi
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x84], eax
jne 0x102dc60
xor edi, edi
cmp dword [ebp - 0x68], edi
jbe 0x102de9f
mov ecx, 0x3e98a2e5
movzx eax, byte [ebx + edi]
mov edx, ecx
add eax, ecx
add dword [ebp - 0x100], eax
add eax, dword [ebp - 0xfc]
mul edx
add eax, edx
imul eax, eax, 0x3e98a2e5
ror eax, 0x12
add dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], eax
inc edi
cmp edi, dword [ebp - 0x68]
jb 0x102dc0d
jmp 0x102de9f
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shr ecx, 1
and ecx, edi
and eax, 0x3f
lea ecx, [eax + ecx + 0x1000000]
jmp 0x102db22
mov edx, dword [0x100003c]
mov eax, dword [ebp - 0x68]
lea edx, [edx + 0x10000a0]
add eax, ebx
mov dword [ebp - 0x80], eax
mov eax, dword [edx]
mov ecx, ebx
mov edx, dword [edx + 4]
mov dword [ebp - 0x5c], edx
sub ecx, esi
mov edi, ecx
mov edx, ecx
and edx, 0xfffff000
sub edi, edx
mov dword [ebp - 0x98], edi
mov edi, dword [ebp - 0x68]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
sub ecx, edi
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0xb0], edi
add eax, esi
mov edi, eax
add ecx, eax
mov dword [ebp - 0xa8], ecx
cmp eax, ecx
je 0x102dccf
cmp dword [edi], edx
jae 0x102dccf
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0xa8]
jne 0x102dcc0
and dword [ebp - 0xa0], 0
cmp edi, dword [ebp - 0xa8]
je 0x102dd10
cmp dword [edi], edx
jne 0x102dd10
mov eax, dword [edi + 4]
sub eax, 8
shr eax, 1
je 0x102dd10
lea ecx, [edi + 8]
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x98]
jae 0x102dd10
inc dword [ebp - 0xa0]
inc ecx
inc ecx
cmp dword [ebp - 0xa0], eax
jne 0x102dcef
mov ecx, 0x3e98a2e5
cmp edi, dword [ebp - 0xa8]
je 0x102de60
mov eax, dword [ebp - 0xb0]
cmp dword [edi], eax
ja 0x102de60
mov eax, dword [edi + 4]
lea edx, [eax - 8]
shr edx, 1
mov eax, dword [ebp - 0xa0]
cmp eax, edx
jne 0x102dd67
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0xa8]
je 0x102de60
mov eax, dword [ebp - 0xb0]
cmp dword [edi], eax
ja 0x102de60
and dword [ebp - 0xa0], 0
jmp 0x102dd2f
mov edx, dword [ebp - 0xb0]
cmp dword [edi], edx
jne 0x102dd87
movzx eax, word [edi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0xac]
jae 0x102de60
mov edx, 0xf000
mov eax, dword [ebp - 0xa0]
inc dword [ebp - 0xa0]
test word [edi + eax*2 + 8], dx
je 0x102dd15
mov edx, dword [edi]
and dword [ebp - 0x68], 0
lea eax, [edi + eax*2 + 8]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x5c], eax
sub dword [ebp - 0x5c], ebx
mov dword [ebp - 0x98], eax
je 0x102de05
mov eax, dword [ebp - 0x68]
mov edx, ecx
movzx eax, byte [eax + ebx]
add eax, ecx
add dword [ebp - 0x100], eax
add eax, dword [ebp - 0xfc]
mul edx
add eax, edx
imul eax, eax, 0x3e98a2e5
ror eax, 0x12
add dword [ebp - 0x100], eax
inc dword [ebp - 0x68]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x5c]
jb 0x102ddca
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x130], eax
xor ebx, ebx
movzx eax, byte [ebp + ebx - 0x130]
mov edx, ecx
add eax, ecx
add dword [ebp - 0x100], eax
add eax, dword [ebp - 0xfc]
mul edx
add eax, edx
imul eax, eax, 0x3e98a2e5
ror eax, 0x12
add dword [ebp - 0x100], eax
inc ebx
mov dword [ebp - 0xfc], eax
cmp ebx, 4
jb 0x102de1b
mov ebx, dword [ebp - 0x98]
add ebx, 4
jmp 0x102dd15
xor edi, edi
mov eax, dword [ebp - 0x80]
sub eax, ebx
mov dword [ebp - 0x5c], eax
je 0x102de9f
movzx eax, byte [ebx + edi]
mov edx, ecx
add eax, ecx
add dword [ebp - 0x100], eax
add eax, dword [ebp - 0xfc]
mul edx
add eax, edx
imul eax, eax, 0x3e98a2e5
ror eax, 0x12
add dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], eax
inc edi
cmp edi, dword [ebp - 0x5c]
jb 0x102de6c
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x100]
mov byte [ebp + eax - 0x2c], cl
inc eax
cmp eax, 8
jb 0x102dea3
mov eax, 0xc7f1a1c2
mov eax, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x94]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
and eax, 7
mov dword [ebp - 0x98], eax
je 0x102e0c7
mov edx, dword [ebp - 0x74]
not edx
cmp eax, ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x70], ebx
jle 0x102df2c
mov dword [ebp - 0x68], 0x38
mov ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x70], 4
movzx ebx, byte [edi]
jge 0x102df17
add ecx, 0xffffffe0
shl ebx, cl
or dword [ebp - 0x90], ebx
jmp 0x102df1f
shl ebx, cl
or dword [ebp - 0x84], ebx
sub dword [ebp - 0x68], 8
inc edi
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], eax
jl 0x102defe
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x74]
mov ebx, eax
xor eax, dword [ebp - 0x28]
sub ebx, ecx
xor edx, ebx
movzx ecx, word [ebp - 0x28]
xor eax, edx
xor eax, dword [ebp - 0x74]
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x64], edx
movzx edx, word [ebp - 0x2a]
mov ebx, eax
xor ecx, eax
imul ecx, edx
ror ebx, 5
sub ecx, ebx
movzx edx, word [ebp - 0x2c]
xor dword [ebp - 0x64], ecx
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x28]
rol ecx, 1
imul edx, ecx
mov ecx, dword [ebp - 0x2c]
ror ebx, 3
sub edx, ebx
xor eax, edx
add ecx, eax
mov ebx, eax
movzx edx, word [ebp - 0x26]
rol ecx, 5
mov dword [ebp - 0x80], edx
imul edx, ecx
rol ebx, 0xa
sub edx, ebx
xor dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0x64]
ror ecx, 0xb
movzx edx, word [ebp - 0x2a]
xor ecx, dword [ebp - 0x8c]
imul ecx, dword [ebp - 0x80]
xor eax, ecx
mov ebx, eax
mov ecx, dword [ebp - 0x28]
sub ecx, eax
rol ecx, 0xe
imul edx, ecx
mov ecx, dword [ebp - 0x28]
ror ebx, 0xa
add ebx, edx
xor dword [ebp - 0x64], ebx
mov edx, dword [ebp - 0x64]
mov ebx, edx
add ecx, edx
rol ecx, 0xe
movzx edx, word [ebp - 0x2c]
imul edx, ecx
ror ebx, 6
mov ecx, dword [ebp - 0x80]
add ebx, edx
movzx edx, word [ebp - 0x2c]
xor eax, ebx
xor edx, eax
rol edx, 5
imul ecx, edx
mov ebx, eax
ror ebx, 5
xor ebx, ecx
xor dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x2c]
rol ecx, 3
imul ebx, ecx
mov ecx, dword [ebp - 0x8c]
ror edx, 4
xor edx, ebx
xor eax, edx
mov ebx, ecx
xor ebx, eax
movzx edx, word [ebp - 0x2a]
rol ebx, 2
imul ebx, edx
and dword [ebp - 0x70], 0
mov edx, eax
shr edx, 0xf
add ebx, edx
mov edx, dword [ebp - 0x64]
xor edx, ebx
xor ecx, edx
movzx ebx, word [ebp - 0x2c]
imul ecx, ebx
mov ebx, edx
xor edx, dword [ebp - 0x84]
shr ebx, 5
add ecx, ebx
xor ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x98]
xor eax, ecx
test ebx, ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x9c], edx
jle 0x102e09f
mov ebx, dword [ebp - 0x78]
inc dword [ebp - 0x78]
cmp dword [ebp - 0x70], 4
jge 0x102e07f
rol dword [ebp - 0x6c], 8
mov cl, byte [ebp - 0x6c]
mov byte [ebx], cl
jmp 0x102e08e
rol dword [ebp - 0x9c], 8
mov cl, byte [ebp - 0x9c]
mov byte [ebx], cl
xor byte [ebp - 0x55], cl
inc dword [ebp - 0x70]
mov ebx, dword [ebp - 0x98]
cmp dword [ebp - 0x70], ebx
jl 0x102e068
add ebx, 0xfffffffc
test ebx, ebx
jle 0x102e0b4
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edx, cl
shl edx, cl
jmp 0x102e0dc
xor edx, edx
test ebx, ebx
jge 0x102e0dc
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x102e0dc
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x90], eax
not eax
mov dword [ebp - 0x84], eax
xor edx, edx
xor eax, eax
mov ecx, dword [ebp - 0x88]
shr ecx, 3
test ecx, ecx
mov dword [ebp - 0x98], ecx
jbe 0x102e2dd
mov ecx, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x28]
mov dword [ebp - 0x70], ecx
movzx ecx, word [ebp - 0x26]
mov dword [ebp - 0x80], ecx
movzx ecx, word [ebp - 0x2a]
mov dword [ebp - 0x5c], ecx
movzx ecx, word [ebp - 0x28]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x68], ecx
jmp 0x102e125
mov edi, dword [ebp - 0x98]
movzx ecx, byte [edi]
movzx ebx, byte [edi + 1]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 2]
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 3]
or ecx, ebx
movzx ebx, byte [edi + 5]
mov dword [ebp - 0x6c], ecx
movzx ecx, byte [edi + 4]
xor eax, dword [ebp - 0x6c]
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 6]
or ecx, ebx
shl ecx, 8
movzx ebx, byte [edi + 7]
or ecx, ebx
add edi, 8
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x98], edi
mov edi, dword [ebp - 0x28]
xor edi, eax
sub ebx, edi
mov edi, dword [ebp - 0x8c]
xor ebx, ecx
mov dword [ebp - 0x9c], ecx
xor edx, ebx
mov ecx, dword [ebp - 0x70]
xor ecx, edx
xor eax, ecx
xor edi, eax
mov ecx, eax
imul edi, dword [ebp - 0x5c]
ror ecx, 5
sub edi, ecx
xor edx, edi
mov ebx, edx
movzx edi, word [ebp - 0x2c]
mov ecx, edx
sub ecx, dword [ebp - 0x28]
rol ecx, 1
imul ecx, edi
ror ebx, 3
sub ecx, ebx
xor eax, ecx
mov edi, eax
mov ecx, dword [ebp - 0x2c]
add ecx, eax
rol ecx, 5
imul ecx, dword [ebp - 0x80]
rol edi, 0xa
sub ecx, edi
xor edx, ecx
movzx ecx, word [ebp - 0x28]
mov edi, edx
ror edi, 0xb
xor edi, ecx
mov ecx, dword [ebp - 0x28]
imul edi, dword [ebp - 0x80]
xor eax, edi
sub ecx, eax
rol ecx, 0xe
imul ecx, dword [ebp - 0x5c]
mov edi, eax
ror edi, 0xa
add edi, ecx
xor edx, edi
mov ebx, edx
movzx edi, word [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
add ecx, edx
rol ecx, 0xe
imul ecx, edi
ror ebx, 6
add ebx, ecx
mov ecx, edi
xor eax, ebx
xor ecx, eax
mov edi, eax
rol ecx, 5
imul ecx, dword [ebp - 0x80]
ror edi, 5
xor edi, ecx
xor edx, edi
mov ebx, edx
mov ecx, edx
movzx edi, word [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
rol ecx, 3
imul ecx, edi
ror ebx, 4
xor ebx, ecx
xor eax, ebx
mov ebx, eax
mov ecx, edi
xor ecx, eax
rol ecx, 2
imul ecx, dword [ebp - 0x5c]
shr ebx, 0xf
add ecx, ebx
xor edx, ecx
movzx ecx, word [ebp - 0x2c]
mov dword [ebp - 0x8c], edi
xor edi, edx
imul edi, ecx
mov ecx, edx
xor edx, dword [ebp - 0x84]
shr ecx, 5
add edi, ecx
xor edi, dword [ebp - 0x90]
xor eax, edi
mov edi, dword [ebp - 0x78]
mov cl, byte [ebp - 0x55]
mov byte [edi + 3], al
mov byte [edi + 7], dl
xor cl, al
xor cl, dl
ror eax, 8
xor cl, al
ror edx, 8
mov byte [edi + 2], al
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
xor cl, al
ror edx, 8
mov byte [edi + 1], al
xor cl, dl
mov byte [edi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0x55], cl
mov ecx, dword [ebp - 0x6c]
mov byte [edi], al
mov byte [edi + 4], dl
add edi, 8
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x9c]
dec dword [ebp - 0x68]
ror eax, 8
ror edx, 8
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x78], edi
jne 0x102e11f
mov eax, dword [ebp - 0x60]
movzx ecx, byte [ebp - 0x55]
movzx eax, byte [eax + 8]
sub ecx, eax
je 0x102e37c
call 0x1244f80
mov ecx, 0xfffff000
and eax, ecx
mov esi, 0x10d8814
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x108]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x60], ecx
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x60], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x60], 0
jne 0x102e325
xor edx, edx
div ecx
inc edx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x104]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x60], 0
jmp 0x102e373
mov eax, dword [ebp - 0x60]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
jb 0x102e36b
jmp 0x1028809
mov ebx, dword [ebp - 0x94]
sub ebx, dword [ebp - 0x7c]
mov eax, dword [0x11e47bc]
mov dword [ebp - 0x60], ebx
sub esi, eax
mov dword [ebp - 0x5c], esi
jne 0x102e39c
test ebx, ebx
je 0x102e467
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x7c]
sub edi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x88]
add eax, ecx
mov ecx, dword [0x11efd70]
xor esi, esi
mov dword [ebp - 0x130], eax
dec ecx
js 0x102e3ec
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp dword [ebp - 0x74], edx
jae 0x102e3e0
lea ecx, [eax - 1]
jmp 0x102e3e5
jbe 0x102e3f4
lea esi, [eax + 1]
cmp ecx, esi
jge 0x102e3c1
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x84], esi
jmp 0x102e459
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x84], eax
jmp 0x102e459
mov eax, dword [ebp - 0x84]
mov eax, dword [eax*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x130]
jae 0x102e467
lea esi, [ecx + edi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x102e448
dec ecx
je 0x102e444
dec ecx
jne 0x102e44d
mov edx, dword [ebp - 0x5c]
jmp 0x102e44d
mov edx, ebx
jmp 0x102e44d
mov edx, dword [ebp - 0x5c]
sub edx, ebx
dec eax
dec eax
jne 0x102e453
add dword [esi], edx
inc dword [ebp - 0x84]
mov eax, dword [ebp - 0x84]
cmp eax, dword [0x11efd70]
jb 0x102e3ff
mov eax, dword [0x1116588]
mov eax, 0x9bc959c2
mov eax, dword [ebp - 0x7c]
jmp 0x102e508
mov eax, 0x65f94f3b
mov esi, section..data
cmp ebx, esi
jb 0x102e4be
mov eax, dword [0x1011bb0]
mov ecx, dword [0x1116588]
imul eax, ecx
lea eax, [eax + section..data]
cmp ebx, eax
jae 0x102e4be
mov ecx, dword [0x1116588]
mov eax, ebx
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x1116588]
imul ecx, eax
lea eax, [ecx + section..data]
jmp 0x102e4c0
xor eax, eax
test eax, eax
je 0x102e4e5
mov eax, ebx
mov ecx, dword [0x1116588]
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x1011bb0]
mov dword [eax*4 + 0x12d4c14], 0xcb65
jmp 0x102e502
call dword [0x1001238]
push 0x8000
push 0
mov esi, eax
push ebx
call dword [0x1001194]
push esi
call dword [0x100118c]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
pop esi
pop ebx
call 0x128e47a
leave
ret 0x10