Function at 0x4eee5d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
push ebx
push esi
mov esi, eax
mov eax, dword [esi + 0x8588]
push edi
mov edi, dword [eax + 0xc]
xor ebx, ebx
mov dword [ebp - 0x1c], edi
cmp dword [eax], ebx
je 0x4eee7f
mov eax, dword [esi + 8]
jmp 0x4eee89
mov eax, dword [esi + 0x8588]
mov eax, dword [eax + 0x24]
inc eax
mov ecx, dword [esi + 0x85d8]
lea edx, [ecx - 1]
shl edx, 4
push 0x10
sub eax, edx
pop ecx
mov dword [ebp - 0x3c], edx
cmp eax, ecx
jae 0x4eeebb
mov eax, dword [esi + 0x8588]
cmp dword [eax], ebx
je 0x4eeeb0
mov eax, dword [esi + 8]
jmp 0x4eeeb4
mov eax, dword [eax + 0x24]
inc eax
sub eax, edx
mov dword [ebp - 0x24], eax
jmp 0x4eeebe
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + 0x8588]
cmp dword [ecx], ebx
je 0x4eeecd
mov eax, dword [esi + 4]
jmp 0x4eeed1
mov eax, dword [ecx + 0x1c]
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x14], eax
cmp edx, eax
jbe 0x4eeee2
xor eax, eax
jmp 0x4eeee5
and eax, 0xf
xor edx, edx
div edi
xor edx, edx
imul eax, edi
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x18]
div edi
imul eax, edi
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x8528]
mov dword [ebp - 0x54], eax
cmp eax, ebx
jne 0x4eef0e
mov dword [ebp - 0x50], ebx
jmp 0x4eef14
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 5
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x5c]
mov dl, byte [esi + 0x20]
mov dword [ebp - 0x64], eax
jne 0x4eef36
movzx ecx, dl
mov eax, ecx
and eax, 2
and ecx, 1
sub eax, ecx
inc eax
jmp 0x4eef40
mov eax, dword [esi + 0x1c]
neg eax
sbb eax, eax
and eax, 2
xor ecx, ecx
cmp dword [ebp - 0x50], 5
push 3
sete cl
mov dword [ebp - 0x58], eax
inc ecx
inc ecx
sub ecx, eax
mov dword [ebp - 0x60], ecx
pop eax
test dl, dl
je 0x4eef63
cmp dl, al
je 0x4eef63
mov dword [ebp - 0x5c], eax
jmp 0x4eef67
and dword [ebp - 0x5c], 0
sub eax, dword [ebp - 0x5c]
mov ecx, dword [esi + 0x8588]
mov dword [ebp - 0x68], eax
mov al, byte [esi + 0x8084]
mov byte [ebp - 1], al
mov al, byte [esi + 0x8085]
mov byte [ebp - 2], al
mov eax, dword [esi + 0x8660]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0x8664]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x8668]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
div edi
mov ecx, dword [ecx + 0x2c]
and dword [ebp - 0x20], 0
push 0x10
lea eax, [ecx + eax*4]
mov dword [ebp - 0x30], edx
mov edx, edi
pop ecx
mov dword [ebp - 0x3c], eax
cmp edx, ecx
jb 0x4eefdc
test ebx, ebx
jne 0x4eefcf
mov dword [ebp - 0xc], ecx
jmp 0x4eeff7
dec ebx
neg ebx
sbb ebx, ebx
and ebx, 0xb
add ebx, 0x17
jmp 0x4eefeb
cmp edx, 4
jb 0x4eeff0
neg ebx
sbb ebx, ebx
and ebx, 0x1d
add ebx, 0x40
mov dword [ebp - 0xc], ebx
jmp 0x4eeff7
mov dword [ebp - 0xc], 0x102
mov eax, dword [esi + 0x8530]
mov ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 3
add ebx, 8
mov dword [ebp - 0x38], ebx
test eax, eax
je 0x4ef027
cmp edx, ecx
jb 0x4ef027
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x54], ecx
je 0x4ef022
cmp dword [ebp - 0x54], 2
jne 0x4ef029
push 2
pop ecx
jmp 0x4ef029
xor ecx, ecx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x2c], eax
cmp edx, 1
jbe 0x4ef044
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor eax, eax
inc eax
shl eax, cl
cmp eax, edx
jb 0x4ef035
cmp dword [esi + 0x40], 4
jge 0x4ef04f
mov ecx, dword [esi + 0x28]
jmp 0x4ef052
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x24]
mov edi, dword [esi + 0x8588]
xor edx, edx
div dword [edi + 0xc]
push ecx
mov ecx, esi
call fcn.004e8609
add esp, 4
test eax, eax
je 0x4ef077
or eax, 0xffffffff
jmp 0x4f0e2c
xor edx, edx
cmp dword [ebp - 0x30], edx
jne 0x4f0e2a
mov eax, dword [esi + 0x85d8]
shl eax, 4
cmp eax, dword [ebp - 0x14]
jbe 0x4f0e2a
mov ecx, dword [edi + 0x24]
add ecx, 0x10
cmp eax, ecx
ja 0x4f0e2a
cmp dword [ebp - 0x54], 2
je 0x4ef0b2
cmp dword [ebp - 0x54], 1
jne 0x4ef30d
cmp dword [ebp - 0x50], edx
je 0x4ef30d
mov eax, dword [esi + 0x8760]
mov ecx, dword [esi + 0x8764]
mov dword [ebp - 0x10], edx
and dword [ebp - 8], 0
cmp dword [ebp - 0x18], 0
jbe 0x4ef152
mov edx, dword [ebp - 0x10]
shl edx, 4
mov dword [ebp - 0x14], edx
mov edi, dword [ebp - 8]
mov edx, edi
shr edx, 1
and edi, 0xfffffff0
and edx, 7
cmp dword [ebp - 0x54], 2
jne 0x4ef100
mov ebx, dword [ebp - 0x14]
movzx edx, byte [edx + ebx + 0x679970]
lea edx, [edx + edi*8]
jmp 0x4ef110
mov ebx, dword [ebp - 0x10]
shr ebx, 1
movzx edx, byte [edx + ebx*8 + 0x679a70]
lea edx, [edx + edi*4]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 8]
and edx, 0xf
movzx edx, byte [edx + ebx + 0x679970]
mov ebx, dword [ebp - 0x40]
shl edi, 4
add edx, edi
mov edi, dword [ebp - 0x30]
shl edi, 2
mov ebx, dword [edi + ebx]
shl edx, 2
mov dword [edx + eax], ebx
mov ebx, dword [ebp - 0x44]
mov edi, dword [edi + ebx]
mov dword [edx + ecx], edi
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 8], edx
cmp edx, dword [ebp - 0x18]
jb 0x4ef0dd
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, 0x10
jb 0x4ef0ca
cmp dword [ebp - 0x1c], 4
jne 0x4ef304
cmp dword [ebp - 0x54], 1
jne 0x4ef21e
xor ebx, ebx
mov dword [ebp - 8], ebx
cmp dword [ebp - 0x18], ebx
jbe 0x4ef21e
mov edx, ebx
and ebx, 0xfffffff0
shl ebx, 4
and edx, 0xf
movzx edi, byte [edx + 0x679970]
add edi, ebx
mov dword [ebp - 0x54], edx
movzx edx, byte [edx + 0x6799b0]
add edx, ebx
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x54]
movzx edx, byte [edx + str._____aed]
mov dword [ebp - 0x40], ebx
add edx, ebx
mov ebx, dword [ebp - 0x44]
shl edi, 2
shl ebx, 2
mov dword [ebp - 0x30], edi
mov edi, dword [edi + eax]
mov dword [ebp - 0x44], ebx
mov ebx, dword [eax + edx*4]
lea edi, [edi + ebx + 1]
mov ebx, dword [ebp - 0x44]
sar edi, 1
mov dword [ebx + eax], edi
mov ebx, dword [ecx + edx*4]
mov edi, dword [ebp - 0x30]
mov edi, dword [edi + ecx]
lea edi, [edi + ebx + 1]
mov ebx, dword [ebp - 0x44]
sar edi, 1
mov dword [ebx + ecx], edi
mov edi, dword [ebp - 0x54]
movzx edi, byte [edi + str.0154pqut]
add edi, dword [ebp - 0x40]
mov ebx, dword [eax + edx*4]
shl edi, 2
mov dword [edi + eax], ebx
mov ebx, dword [ecx + edx*4]
mov dword [edi + ecx], ebx
mov ebx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 8], ebx
cmp ebx, dword [ebp - 0x18]
jb 0x4ef186
jmp 0x4ef221
mov edx, dword [ebp - 0x68]
and dword [ebp - 0x54], 0
mov edi, dword [ebp - 0x18]
and dword [ebp - 8], 0
add edi, 0xfffffff8
je 0x4ef2c5
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 8]
and edi, 0xf
movzx edi, byte [edi + ebx + 0x679970]
and edx, 0xfffffff0
shl edx, 4
add edi, edx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 8]
add edx, 0xfffffff8
lea edi, [edx - 4]
and edi, 0xf
movzx edi, byte [edi + ebx + 0x679970]
add edi, dword [ebp - 0x40]
add dword [ebp - 8], 8
shl edi, 2
and edx, 0xf
movzx edx, byte [edx + ebx + 0x679970]
mov ebx, dword [ebp - 0x30]
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x44], edi
mov edi, dword [eax + edx*4]
shl ebx, 2
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebx + eax]
lea edi, [edi + ebx + 1]
mov ebx, dword [ebp - 0x44]
sar edi, 1
mov dword [ebx + eax], edi
mov ebx, dword [ebp - 0x30]
mov ebx, dword [ebx + ecx]
mov edi, dword [ecx + edx*4]
lea edi, [edi + ebx + 1]
mov ebx, dword [ebp - 0x44]
sar edi, 1
mov dword [ebx + ecx], edi
mov edi, dword [ebp - 0x18]
add edi, 0xfffffff8
cmp dword [ebp - 8], edi
jb 0x4ef235
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 0x54]
add dword [ebp - 0x54], 0x40
add edi, 4
and edi, 0xf
movzx edi, byte [edi + ebx + 0x679970]
mov ebx, dword [ebp - 8]
and ebx, 0xfffffff0
shl ebx, 4
add edi, ebx
mov ebx, dword [eax + edx*4]
shl edi, 2
cmp dword [ebp - 0x54], 0x100
mov dword [edi + eax], ebx
mov ebx, dword [ecx + edx*4]
mov dword [edi + ecx], ebx
jb 0x4ef225
mov ebx, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x64], 1
mov edi, dword [ebp - 0x28]
jne 0x4ef951
mov edi, 0x80
mov eax, edi
mov ecx, ebx
shl eax, cl
cdq
idiv dword [ebp - 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4ef93b
sub eax, 3
je 0x4ef93b
dec eax
je 0x4ef7d9
dec eax
je 0x4ef637
dec eax
je 0x4ef93b
dec eax
je 0x4ef51a
dec eax
jne 0x4f0e0b
mov eax, dword [ebp - 0x28]
jmp 0x4ef509
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
shr edx, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4ef503
mov eax, dword [ebp - 0x10]
shl eax, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov eax, dword [ebp - 0x40]
shl edx, 2
mov ebx, dword [edx + edi]
mov eax, dword [edx + eax]
imul ebx, dword [ebp - 0xc]
imul eax, dword [ebp - 0xc]
sar eax, cl
sar ebx, cl
mov ecx, dword [ebp - 0x48]
mov edi, dword [edx + ecx]
imul edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 8]
sar edi, cl
neg eax
mov ecx, eax
sar ecx, 1
sub edi, ecx
lea ecx, [ebx + 1]
sar ecx, 1
mov dword [ebp - 0x68], edi
sub edi, ecx
mov ecx, dword [ebp - 0x20]
shr edx, cl
mov ecx, dword [ebp - 0x4c]
add eax, edi
add ebx, eax
mov edx, dword [ecx + edx*4]
add edx, dword [esi + 0x8090]
add edx, dword [ebp - 0x28]
test eax, eax
jg 0x4ef41a
mov byte [ebp - 2], 0
mov byte [edx], 0
jmp 0x4ef437
mov dword [ebp - 0x5c], eax
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x4ef431
mov cl, byte [ebp - 0x5c]
mov byte [ebp - 2], cl
or al, 0x80
jmp 0x4ef435
mov byte [ebp - 2], 1
mov byte [edx], al
mov ecx, dword [ebp - 0x68]
test ecx, ecx
jg 0x4ef448
mov byte [ebp - 1], 0
mov byte [edx + 1], 0
jmp 0x4ef467
mov dword [ebp - 0x5c], ecx
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x4ef460
mov al, byte [ebp - 0x5c]
mov byte [ebp - 1], al
or cl, 0x80
jmp 0x4ef464
mov byte [ebp - 1], 1
mov byte [edx + 1], cl
test ebx, ebx
jg 0x4ef472
xor al, al
mov byte [edx + 2], al
jmp 0x4ef488
mov ecx, ebx
sar ecx, 7
cmp ecx, 1
jle 0x4ef483
mov al, cl
or bl, 0x80
jmp 0x4ef485
mov al, 1
mov byte [edx + 2], bl
mov bl, byte [ebp - 2]
movzx edi, bl
cmp bl, byte [ebp - 1]
ja 0x4ef497
movzx edi, byte [ebp - 1]
movzx ecx, al
cmp edi, ecx
jle 0x4ef4aa
movzx ecx, bl
cmp bl, byte [ebp - 1]
ja 0x4ef4aa
movzx ecx, byte [ebp - 1]
mov byte [edx + 3], cl
cmp cl, bl
jbe 0x4ef4bf
movzx edi, byte [edx]
sub cl, bl
lea ebx, [edi + edi + 1]
inc ecx
sar ebx, cl
mov byte [edx], bl
movzx ecx, byte [edx + 3]
cmp cl, byte [ebp - 1]
jbe 0x4ef4d9
sub cl, byte [ebp - 1]
movzx edi, byte [edx + 1]
lea ebx, [edi + edi + 1]
inc ecx
sar ebx, cl
mov byte [edx + 1], bl
movzx ecx, byte [edx + 3]
cmp cl, al
jbe 0x4ef4f1
sub cl, al
movzx eax, byte [edx + 2]
lea eax, [eax + eax + 1]
inc ecx
sar eax, cl
mov byte [edx + 2], al
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4ef395
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4ef36c
jmp 0x4f0e0b
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4ef620
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x2c]
mov edi, eax
mov eax, dword [ebp - 0x40]
shl edi, 2
mov edx, dword [edi + eax]
imul edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x44]
mov eax, dword [edi + eax]
imul eax, dword [ebp - 0xc]
sar eax, cl
neg edx
sar edx, cl
mov ecx, dword [ebp - 0x48]
mov ebx, dword [edi + ecx]
add ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul ebx, dword [ebp - 0xc]
sar ebx, cl
mov ecx, edx
sar ecx, 1
sub ebx, ecx
lea ecx, [eax + 1]
sar ecx, 1
mov edi, ebx
sub edi, ecx
mov ecx, dword [ebp - 0x20]
add edx, edi
mov edi, dword [ebp - 8]
shr edi, cl
mov ecx, dword [ebp - 0x4c]
add eax, edx
mov edi, dword [ecx + edi*4]
add edi, dword [esi + 0x8090]
add edi, dword [ebp - 0x28]
test eax, eax
jge 0x4ef5d3
xor eax, eax
jmp 0x4ef5de
mov ecx, 0xff
cmp eax, ecx
jle 0x4ef5de
mov eax, ecx
mov ecx, dword [ebp - 0x58]
mov byte [edi + ecx], al
mov eax, 0xff
test ebx, ebx
jge 0x4ef5f1
xor ebx, ebx
jmp 0x4ef5f7
cmp ebx, eax
jle 0x4ef5f7
mov ebx, eax
mov byte [edi + 1], bl
test edx, edx
jge 0x4ef602
xor edx, edx
jmp 0x4ef608
cmp edx, eax
jle 0x4ef608
mov edx, eax
mov eax, dword [ebp - 0x60]
mov byte [edi + eax], dl
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4ef551
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef52b
jmp 0x4f0e0b
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x64], eax
jge 0x4ef64b
mov eax, dword [esi + 0x28]
jmp 0x4ef64e
mov eax, dword [esi + 0x30]
add eax, eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4ef7c2
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
lea edi, [ebp + edi*4 - 0x78]
lea eax, [ebp + eax*4 - 0x78]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
and ecx, 0xf
movzx ecx, byte [ecx + edx + 0x679970]
mov edx, dword [ebp - 8]
and edx, 0xfffffff0
shl edx, 4
add ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x48]
shl edx, 2
mov ebx, dword [edx + ecx]
add ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul ebx, dword [ebp - 0xc]
sar ebx, cl
mov ecx, dword [ebp - 0x40]
mov dword [eax], ebx
mov ebx, dword [edx + ecx]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
neg ebx
sar ebx, cl
mov ecx, dword [ebp - 0x44]
mov dword [edi], ebx
mov ebx, dword [edx + ecx]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar ebx, cl
mov ecx, dword [ebp - 0x58]
mov dword [ebp + ecx*4 - 0x78], ebx
mov ecx, dword [ebp - 0x64]
mov ebx, dword [edx + ecx]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x68]
sar ebx, cl
mov dword [ebp + edx*4 - 0x78], ebx
mov ecx, dword [edi]
mov ebx, dword [ebp - 0x58]
sar ecx, 1
sub dword [eax], ecx
mov ebx, dword [ebp + ebx*4 - 0x78]
mov ecx, dword [eax]
inc ebx
sar ebx, 1
sub ecx, ebx
add dword [edi], ecx
mov ecx, dword [edi]
mov ebx, dword [ebp - 0x58]
add dword [ebp + ebx*4 - 0x78], ecx
mov ecx, dword [ebp + edx*4 - 0x78]
sar ecx, 1
sub dword [eax], ecx
mov ecx, dword [eax]
add dword [ebp + edx*4 - 0x78], ecx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 0x78]
shr edx, cl
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + edx*4]
add ecx, dword [esi + 0x8090]
mov edx, 0xff
add ecx, dword [ebp - 0x28]
test ebx, ebx
jge 0x4ef760
xor ebx, ebx
jmp 0x4ef766
cmp ebx, edx
jle 0x4ef766
mov ebx, edx
mov byte [ecx], bl
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x4ef773
xor ebx, ebx
jmp 0x4ef779
cmp ebx, edx
jle 0x4ef779
mov ebx, edx
cmp dword [ebp - 0x70], 0
mov byte [ecx + 1], bl
jge 0x4ef786
xor edx, edx
jmp 0x4ef78e
cmp dword [ebp - 0x70], edx
jg 0x4ef78e
mov edx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x50]
mov byte [ebx + ecx], dl
mov edx, dword [ebp - 0x6c]
test edx, edx
jge 0x4ef79f
xor edx, edx
jmp 0x4ef7ac
cmp edx, 0xff
jle 0x4ef7ac
mov edx, 0xff
mov byte [ebx + ecx + 1], dl
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x18]
jb 0x4ef698
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef664
jmp 0x4f0e0b
mov eax, dword [esi + 0x866c]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x68], eax
mov eax, edi
shl eax, cl
cdq
idiv dword [ebp - 0xc]
sar eax, 1
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4ef924
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x54]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x38]
mov ebx, eax
mov eax, dword [ebp - 0x48]
shl ebx, 2
sub edx, dword [ebx + eax]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebx + eax]
imul edx, dword [ebp - 0xc]
imul eax, dword [ebp - 0xc]
sar edx, cl
mov ecx, dword [ebp - 0x2c]
sar eax, cl
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebx + ecx]
imul edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
neg edi
sar edi, cl
mov ecx, dword [ebp - 0x68]
mov ebx, dword [ebx + ecx]
add ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x2c]
imul ebx, dword [ebp - 0xc]
sar ebx, cl
lea ecx, [edx + 1]
sar ecx, 1
sub ebx, ecx
mov dword [ebp - 0x60], ebx
mov ecx, eax
sar ecx, 1
sub ebx, ecx
add edx, ebx
lea ecx, [edi + 1]
sar ecx, 1
mov ebx, edx
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add eax, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
add edi, eax
mov ecx, dword [ecx + ebx*4]
add ecx, dword [esi + 0x8090]
mov ebx, 0xff
add ecx, dword [ebp - 0x28]
test eax, eax
jge 0x4ef8d1
xor eax, eax
jmp 0x4ef8d7
cmp eax, ebx
jle 0x4ef8d7
mov eax, ebx
mov byte [ecx], al
test edx, edx
jge 0x4ef8e1
xor edx, edx
jmp 0x4ef8e7
cmp edx, ebx
jle 0x4ef8e7
mov edx, ebx
mov byte [ecx + 1], dl
test edi, edi
jge 0x4ef8f2
xor eax, eax
jmp 0x4ef8fa
cmp edi, ebx
mov eax, ebx
jg 0x4ef8fa
mov eax, edi
cmp dword [ebp - 0x60], 0
mov byte [ecx + 2], al
jge 0x4ef907
xor ebx, ebx
jmp 0x4ef90f
cmp dword [ebp - 0x60], ebx
jg 0x4ef90f
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov byte [ecx + 3], bl
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4ef829
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef803
jmp 0x4f0e0b
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004ee108
mov edi, dword [ebp - 0x28]
add esp, 0x10
cmp dword [ebp - 0x64], 2
jne 0x4efe1a
movzx ecx, byte [ebp - 1]
mov edi, 0x8000
mov eax, edi
sar eax, cl
mov dword [ebp - 0x30], ecx
mov ecx, ebx
shl eax, cl
cdq
idiv dword [ebp - 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4efe04
sub eax, 3
je 0x4efe04
dec eax
je 0x4efc7e
dec eax
je 0x4efac7
dec eax
je 0x4efe04
dec eax
jne 0x4f0e0b
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4efab0
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x2c]
mov edi, eax
mov eax, dword [ebp - 0x40]
shl edi, 2
mov edx, dword [edi + eax]
imul edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x44]
mov eax, dword [edi + eax]
imul eax, dword [ebp - 0xc]
sar eax, cl
neg edx
sar edx, cl
mov ecx, dword [ebp - 0x48]
mov edi, dword [edi + ecx]
add edi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul edi, dword [ebp - 0xc]
sar edi, cl
mov ecx, edx
sar ecx, 1
sub edi, ecx
lea ecx, [eax + 1]
sar ecx, 1
mov ebx, edi
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add edx, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
add eax, edx
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ebx, [ebx + ecx*2]
mov ecx, dword [ebp - 0x30]
shl edx, cl
shl edi, cl
shl eax, cl
mov ecx, 0xffff
test edx, edx
jge 0x4efa71
xor edx, edx
jmp 0x4efa77
cmp edx, ecx
jle 0x4efa77
mov edx, ecx
mov word [ebx], dx
test edi, edi
jge 0x4efa82
xor edi, edi
jmp 0x4efa88
cmp edi, ecx
jle 0x4efa88
mov edi, ecx
mov word [ebx + 2], di
test eax, eax
jge 0x4efa94
xor eax, eax
jmp 0x4efa9a
cmp eax, ecx
jle 0x4efa9a
mov eax, ecx
mov word [ebx + 4], ax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4ef9de
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef9b8
jmp 0x4f0e0b
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x50], eax
jge 0x4efadb
mov eax, dword [esi + 0x28]
jmp 0x4efade
mov eax, dword [esi + 0x30]
add eax, eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4efc67
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x5c]
shl dword [ebp - 0x14], 4
lea eax, [ebp + eax*4 - 0x78]
lea edx, [ebp + edx*4 - 0x78]
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
and ecx, 0xf
movzx ecx, byte [ecx + edi + 0x679970]
mov edi, dword [ebp - 8]
and edi, 0xfffffff0
shl edi, 4
add ecx, edi
mov edi, ecx
mov ecx, dword [ebp - 0x48]
shl edi, 2
mov ebx, dword [edi + ecx]
add ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul ebx, dword [ebp - 0xc]
sar ebx, cl
mov ecx, dword [ebp - 0x40]
mov dword [edx], ebx
mov ebx, dword [edi + ecx]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
neg ebx
sar ebx, cl
mov ecx, dword [ebp - 0x44]
mov dword [eax], ebx
mov ebx, dword [edi + ecx]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar ebx, cl
mov ecx, dword [ebp - 0x58]
mov dword [ebp + ecx*4 - 0x78], ebx
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ecx + edi]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x68]
sar ebx, cl
mov dword [ebp + edi*4 - 0x78], ebx
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x58]
sar ecx, 1
sub dword [edx], ecx
mov ebx, dword [ebp + ebx*4 - 0x78]
mov ecx, dword [edx]
inc ebx
sar ebx, 1
sub ecx, ebx
add dword [eax], ecx
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x58]
add dword [ebp + ebx*4 - 0x78], ecx
mov ecx, dword [ebp + edi*4 - 0x78]
sar ecx, 1
sub dword [edx], ecx
mov ecx, dword [edx]
add dword [ebp + edi*4 - 0x78], ecx
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 8]
shr edi, cl
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + edi*4]
add ecx, dword [ebp - 0x28]
mov edi, dword [esi + 0x8090]
lea edi, [edi + ecx*2]
mov ecx, dword [ebp - 0x30]
shl dword [ebp - 0x78], cl
shl dword [ebp - 0x74], cl
shl dword [ebp - 0x70], cl
shl dword [ebp - 0x6c], cl
mov ebx, dword [ebp - 0x78]
mov ecx, 0xffff
test ebx, ebx
jge 0x4efc02
xor ebx, ebx
jmp 0x4efc08
cmp ebx, ecx
jle 0x4efc08
mov ebx, ecx
mov word [edi], bx
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x4efc16
xor ebx, ebx
jmp 0x4efc1c
cmp ebx, ecx
jle 0x4efc1c
mov ebx, ecx
cmp dword [ebp - 0x70], 0
mov word [edi + 2], bx
jge 0x4efc2a
xor ecx, ecx
jmp 0x4efc32
cmp dword [ebp - 0x70], ecx
jg 0x4efc32
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x64]
mov word [edi + ebx*2], cx
xor ecx, ecx
cmp dword [ebp - 0x6c], ecx
jl 0x4efc4d
mov ecx, 0xffff
cmp dword [ebp - 0x6c], ecx
jg 0x4efc4d
mov ecx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x64]
mov word [edi + ebx*2 + 2], cx
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
cmp ecx, dword [ebp - 0x18]
jb 0x4efb28
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4efaf4
jmp 0x4f0e0b
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x64], eax
mov ecx, ebx
mov eax, edi
shl eax, cl
mov ecx, dword [ebp - 0x2c]
cdq
idiv dword [ebp - 0xc]
mov dword [ebp - 0x68], eax
mov eax, edi
shl eax, cl
cdq
idiv dword [ebp - 0xc]
sar eax, 1
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4efded
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x68]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x38]
mov ebx, eax
mov eax, dword [ebp - 0x48]
shl ebx, 2
sub edx, dword [ebx + eax]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebx + eax]
imul edx, dword [ebp - 0xc]
imul eax, dword [ebp - 0xc]
sar edx, cl
mov ecx, dword [ebp - 0x2c]
sar eax, cl
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebx + ecx]
imul edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
neg edi
sar edi, cl
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ecx + ebx]
add ebx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x2c]
imul ebx, dword [ebp - 0xc]
sar ebx, cl
lea ecx, [edx + 1]
sar ecx, 1
sub ebx, ecx
mov dword [ebp - 0x58], ebx
mov ecx, eax
sar ecx, 1
sub ebx, ecx
add edx, ebx
lea ecx, [edi + 1]
sar ecx, 1
mov ebx, edx
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add eax, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
add edi, eax
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ecx, [ebx + ecx*2]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x30]
shl dword [ebp - 0x58], cl
shl eax, cl
shl edx, cl
shl edi, cl
mov ecx, 0xffff
test eax, eax
jge 0x4efd95
xor eax, eax
jmp 0x4efd9b
cmp eax, ecx
jle 0x4efd9b
mov eax, ecx
mov ebx, dword [ebp - 0x5c]
mov word [ebx], ax
test edx, edx
jge 0x4efda9
xor edx, edx
jmp 0x4efdaf
cmp edx, ecx
jle 0x4efdaf
mov edx, ecx
mov word [ebx + 2], dx
test edi, edi
jge 0x4efdbb
xor edi, edi
jmp 0x4efdc1
cmp edi, ecx
jle 0x4efdc1
mov edi, ecx
cmp dword [ebp - 0x58], 0
mov word [ebx + 4], di
jge 0x4efdcf
xor ecx, ecx
jmp 0x4efdd7
cmp dword [ebp - 0x58], ecx
jg 0x4efdd7
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov word [ebx + 6], cx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4efcdb
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4efcb5
jmp 0x4f0e0b
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004ee108
mov edi, dword [ebp - 0x28]
add esp, 0x10
mov eax, dword [ebp - 0x64]
push 3
pop ecx
cmp eax, ecx
jne 0x4f02a1
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f08c7
sub eax, ecx
je 0x4f08c7
dec eax
je 0x4f0131
dec eax
je 0x4eff84
dec eax
je 0x4f08c7
dec eax
jne 0x4f0e0b
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4eff6d
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x2c]
mov edi, eax
mov eax, dword [ebp - 0x40]
shl edi, 2
mov eax, dword [edi + eax]
mov edx, dword [edi + edx]
imul eax, dword [ebp - 0xc]
imul edx, dword [ebp - 0xc]
sar edx, cl
neg eax
sar eax, cl
mov ecx, dword [ebp - 0x48]
mov ebx, dword [edi + ecx]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
sar ebx, cl
mov ecx, eax
sar ecx, 1
sub ebx, ecx
lea ecx, [edx + 1]
sar ecx, 1
mov edi, ebx
sub edi, ecx
mov ecx, dword [ebp - 0x20]
add eax, edi
mov edi, dword [ebp - 8]
shr edi, cl
mov ecx, dword [ebp - 0x4c]
add edx, eax
mov ecx, dword [ecx + edi*4]
add ecx, dword [ebp - 0x28]
mov edi, dword [esi + 0x8090]
lea edi, [edi + ecx*2]
mov ecx, dword [ebp - 0x30]
shl eax, cl
shl ebx, cl
shl edx, cl
mov ecx, 0xffff8000
cmp eax, ecx
jge 0x4eff23
mov eax, ecx
jmp 0x4eff2f
cmp eax, 0x7fff
jle 0x4eff2f
mov eax, 0x7fff
cmp ebx, ecx
mov word [edi], ax
mov eax, 0x7fff
jge 0x4eff3f
mov ebx, ecx
jmp 0x4eff45
cmp ebx, eax
jle 0x4eff45
mov ebx, eax
cmp edx, ecx
mov word [edi + 2], bx
jge 0x4eff51
mov edx, ecx
jmp 0x4eff57
cmp edx, eax
jle 0x4eff57
mov edx, eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov word [edi + 4], dx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4efe93
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4efe66
jmp 0x4f0e0b
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x54], eax
jge 0x4eff98
mov eax, dword [esi + 0x28]
jmp 0x4eff9b
mov eax, dword [esi + 0x30]
add eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov edx, 0xffff8000
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f011a
mov eax, dword [ebp - 0x10]
shl eax, 4
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x48]
shl eax, 2
mov ebx, dword [eax + ecx]
mov ecx, dword [ebp - 0x38]
imul ebx, edi
sar ebx, cl
mov ecx, dword [ebp - 0x5c]
mov dword [ebp + ecx*4 - 0x78], ebx
mov ecx, dword [ebp - 0x40]
mov ebx, dword [eax + ecx]
mov ecx, dword [ebp - 0x2c]
imul ebx, edi
neg ebx
sar ebx, cl
mov ecx, dword [ebp - 0x60]
mov dword [ebp + ecx*4 - 0x78], ebx
mov ecx, dword [ebp - 0x44]
mov ebx, dword [eax + ecx]
mov ecx, dword [ebp - 0x2c]
imul ebx, edi
sar ebx, cl
mov ecx, dword [ebp - 0x58]
mov dword [ebp + ecx*4 - 0x78], ebx
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + eax]
mov ecx, dword [ebp - 0x2c]
imul eax, edi
sar eax, cl
mov ecx, dword [ebp - 0x68]
cwde
mov dword [ebp + ecx*4 - 0x78], eax
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x70]
sar ecx, 1
sub eax, ecx
lea ecx, [edi + 1]
sar ecx, 1
mov ebx, eax
sub ebx, ecx
add dword [ebp - 0x74], ebx
mov ecx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 8]
add edi, dword [ebp - 0x74]
sar ecx, 1
sub eax, ecx
mov ecx, dword [ebp - 0x20]
add dword [ebp - 0x6c], eax
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ecx, [ebx + ecx*2]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x30]
shl dword [ebp - 0x74], cl
shl dword [ebp - 0x6c], cl
shl eax, cl
shl edi, cl
mov ebx, 0x7fff
cmp eax, edx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x70], edi
jge 0x4f00bc
mov eax, edx
jmp 0x4f00c2
cmp eax, ebx
jle 0x4f00c2
mov eax, ebx
mov ecx, dword [ebp - 0x64]
mov word [ecx], ax
mov eax, dword [ebp - 0x74]
cmp eax, edx
jge 0x4f00d3
mov eax, edx
jmp 0x4f00d9
cmp eax, ebx
jle 0x4f00d9
mov eax, ebx
cmp edi, edx
mov word [ecx + 2], ax
jge 0x4f00e5
mov edi, edx
jmp 0x4f00eb
cmp edi, ebx
jle 0x4f00eb
mov edi, ebx
cmp dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x50]
mov word [ecx + eax*2], di
jge 0x4f00fb
mov ebx, edx
jmp 0x4f0103
cmp dword [ebp - 0x6c], ebx
jg 0x4f0103
mov ebx, dword [ebp - 0x6c]
mov word [ecx + eax*2 + 2], bx
mov eax, dword [ebp - 0x1c]
add dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x18]
jb 0x4effe1
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4effb1
jmp 0x4f0e0b
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x68], eax
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f028a
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x38]
mov ebx, eax
mov eax, dword [ebp - 0x48]
shl ebx, 2
mov eax, dword [ebx + eax]
imul eax, dword [ebp - 0xc]
neg eax
sar eax, cl
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebx + ecx]
imul edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar edi, cl
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebx + ecx]
imul edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
neg edx
sar edx, cl
mov ecx, dword [ebp - 0x68]
mov ebx, dword [ecx + ebx]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar ebx, cl
lea ecx, [eax + 1]
sar ecx, 1
sub ebx, ecx
mov dword [ebp - 0x5c], ebx
mov ecx, edi
sar ecx, 1
sub ebx, ecx
add eax, ebx
lea ecx, [edx + 1]
sar ecx, 1
mov ebx, eax
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add edi, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
add edx, edi
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ecx, [ebx + ecx*2]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x30]
shl dword [ebp - 0x5c], cl
shl edi, cl
shl eax, cl
shl edx, cl
mov ecx, 0xffff8000
cmp edi, ecx
jge 0x4f022b
mov edi, ecx
jmp 0x4f0236
mov ebx, 0x7fff
cmp edi, ebx
jle 0x4f0236
mov edi, ebx
cmp eax, ecx
mov ebx, dword [ebp - 0x64]
mov word [ebx], di
mov edi, 0x7fff
jge 0x4f0249
mov eax, ecx
jmp 0x4f024f
cmp eax, edi
jle 0x4f024f
mov eax, edi
cmp edx, ecx
mov word [ebx + 2], ax
jge 0x4f025b
mov edx, ecx
jmp 0x4f0261
cmp edx, edi
jle 0x4f0261
mov edx, edi
cmp dword [ebp - 0x5c], ecx
mov word [ebx + 4], dx
jl 0x4f0274
cmp dword [ebp - 0x5c], edi
mov ecx, edi
jg 0x4f0274
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov word [ebx + 6], cx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f0175
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f0148
jmp 0x4f0e0b
cmp eax, 4
jne 0x4f03e3
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f08c7
sub eax, ecx
je 0x4f08c7
sub eax, ecx
je 0x4f08c7
dec eax
jne 0x4f0e0b
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f03cc
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x40]
shl eax, 2
mov edx, dword [eax + ecx]
mov edi, dword [eax + edi]
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar edi, cl
neg edx
sar edx, cl
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax + ecx]
imul eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
sar eax, cl
mov ecx, edx
sar ecx, 1
sub eax, ecx
mov ebx, eax
lea ecx, [edi + 1]
sar ecx, 1
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add edx, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ecx, [ebx + ecx*2]
mov dword [ebp - 0x68], ecx
mov ecx, edx
mov ebx, edx
sar ecx, 0x1f
and ebx, 0x7fff
xor ebx, ecx
sub ebx, ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x68]
mov word [ebx], cx
mov ecx, eax
and eax, 0x7fff
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
add edx, edi
mov word [ebx + 2], ax
mov eax, edx
sar eax, 0x1f
and edx, 0x7fff
xor edx, eax
sub edx, eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov word [ebx + 4], dx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f0301
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f02db
jmp 0x4f0e0b
cmp eax, 5
jne 0x4f0527
movzx ecx, byte [ebp - 1]
mov eax, SysReAllocString
sar eax, cl
mov dword [ebp - 0x30], ecx
mov ecx, ebx
shl eax, cl
cdq
idiv dword [ebp - 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f08c7
sub eax, 3
je 0x4f08c7
sub eax, 3
je 0x4f08c7
dec eax
jne 0x4f0e0b
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f0510
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov eax, dword [ebp - 0x40]
shl edx, 2
mov edi, dword [edx + eax]
imul edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x44]
mov eax, dword [edx + eax]
imul eax, dword [ebp - 0xc]
sar eax, cl
neg edi
sar edi, cl
mov ecx, dword [ebp - 0x48]
mov edx, dword [edx + ecx]
add edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul edx, dword [ebp - 0xc]
sar edx, cl
mov ecx, edi
sar ecx, 1
sub edx, ecx
lea ecx, [eax + 1]
sar ecx, 1
mov ebx, edx
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add edi, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
add eax, edi
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ecx, [ebx + ecx*4]
mov dword [ebp - 0x64], ecx
mov ecx, edi
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x30]
mov ebx, edi
shl ebx, cl
mov ecx, ebx
mov ebx, dword [ebp - 0x64]
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x30]
shl eax, cl
shl edx, cl
mov dword [ebx + 8], eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov dword [ebx + 4], edx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f045e
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f0438
jmp 0x4f0e0b
cmp eax, 6
jne 0x4f0652
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f08c7
sub eax, ecx
je 0x4f08c7
sub eax, ecx
je 0x4f08c7
dec eax
jne 0x4f0e0b
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f063b
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x40]
shl eax, 2
mov edx, dword [eax + ecx]
mov edi, dword [eax + edi]
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar edi, cl
neg edx
sar edx, cl
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax + ecx]
imul eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
sar eax, cl
mov ecx, edx
sar ecx, 1
sub eax, ecx
lea ecx, [edi + 1]
sar ecx, 1
mov ebx, eax
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add edx, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
add edi, edx
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ecx, [ebx + ecx*4]
mov dword [ebp - 0x64], ecx
mov ecx, edx
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x30]
mov ebx, edx
shl ebx, cl
mov ecx, ebx
mov ebx, dword [ebp - 0x64]
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x30]
shl eax, cl
shl edi, cl
mov dword [ebx + 4], eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov dword [ebx + 8], edi
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f058e
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f0561
jmp 0x4f0e0b
cmp eax, 7
jne 0x4f08de
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f08c7
sub eax, ecx
je 0x4f08c7
sub eax, ecx
je 0x4f08c7
dec eax
jne 0x4f0e0b
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f08b0
movzx ecx, byte [ebp - 1]
movsx eax, byte [ebp - 2]
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov dword [ebp - 0x50], 1
shl dword [ebp - 0x50], cl
mov dword [ebp - 0x5c], 0x17
sub dword [ebp - 0x5c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x2c]
mov edi, eax
mov eax, dword [ebp - 0x40]
shl edi, 2
mov eax, dword [edi + eax]
imul eax, dword [ebp - 0xc]
mov edx, dword [edi + edx]
imul edx, dword [ebp - 0xc]
sar edx, cl
neg eax
sar eax, cl
mov ecx, dword [ebp - 0x48]
mov edi, dword [edi + ecx]
imul edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
sar edi, cl
mov ecx, eax
sar ecx, 1
sub edi, ecx
lea ecx, [edx + 1]
sar ecx, 1
mov ebx, edi
sub ebx, ecx
mov ecx, dword [ebp - 0x20]
add eax, ebx
mov ebx, dword [ebp - 8]
shr ebx, cl
mov ecx, dword [ebp - 0x4c]
add edx, eax
mov ecx, dword [ecx + ebx*4]
add ecx, dword [ebp - 0x28]
mov ebx, dword [esi + 0x8090]
lea ecx, [ebx + ecx*4]
mov dword [ebp - 0x64], ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
mov ebx, eax
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x58], ebx
shr ebx, cl
mov ecx, dword [ebp - 0x50]
lea eax, [ecx - 1]
and eax, dword [ebp - 0x58]
mov dword [ebp - 0x60], ebx
or eax, ecx
test ebx, ebx
jne 0x4f0782
xor eax, ecx
mov dword [ebp - 0x60], 1
mov ebx, dword [ebp - 0x60]
push 0x7f
pop ecx
sub ecx, dword [ebp - 0x68]
add ebx, ecx
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
jge 0x4f07ac
cmp ebx, 1
jle 0x4f07a4
test eax, eax
jle 0x4f07a4
add eax, eax
dec ebx
cmp eax, ecx
jl 0x4f0794
cmp eax, ecx
jge 0x4f07ac
xor ebx, ebx
jmp 0x4f07ae
xor eax, ecx
mov ecx, dword [ebp - 0x5c]
shl eax, cl
mov ecx, dword [ebp - 0x54]
shl ebx, 0x17
and ecx, 0x80000000
or eax, ebx
or eax, ecx
mov ecx, dword [ebp - 0x64]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x30]
mov eax, edi
sar eax, 0x1f
xor edi, eax
sub edi, eax
mov ebx, edi
shr edi, cl
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x60], eax
lea eax, [ecx - 1]
and eax, ebx
or eax, ecx
test edi, edi
jne 0x4f07ec
xor eax, ecx
inc edi
push 0x7f
pop ecx
sub ecx, dword [ebp - 0x68]
add edi, ecx
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
jge 0x4f0813
cmp edi, 1
jle 0x4f080b
test eax, eax
jle 0x4f080b
add eax, eax
dec edi
cmp eax, ecx
jl 0x4f07fb
cmp eax, ecx
jge 0x4f0813
xor edi, edi
jmp 0x4f0815
xor eax, ecx
mov ecx, dword [ebp - 0x5c]
shl eax, cl
mov ecx, dword [ebp - 0x60]
mov ebx, edx
shl edi, 0x17
or eax, edi
sar ebx, 0x1f
and ecx, 0x80000000
or eax, ecx
mov ecx, dword [ebp - 0x30]
xor edx, ebx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x64]
fld dword [ebp - 0x60]
sub edx, ebx
fstp dword [eax + 4]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x50]
lea eax, [ecx - 1]
and eax, edx
or eax, ecx
test edi, edi
jne 0x4f0857
xor eax, ecx
inc edi
push 0x7f
pop ecx
sub ecx, dword [ebp - 0x68]
add edi, ecx
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
jge 0x4f087e
cmp edi, 1
jle 0x4f0876
test eax, eax
jle 0x4f0876
add eax, eax
dec edi
cmp eax, ecx
jl 0x4f0866
cmp eax, ecx
jge 0x4f087e
xor edi, edi
jmp 0x4f0880
xor eax, ecx
mov ecx, dword [ebp - 0x5c]
shl eax, cl
shl edi, 0x17
and ebx, 0x80000000
or eax, edi
or eax, ebx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x64]
fld dword [ebp - 0x60]
fstp dword [eax + 8]
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f06d4
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f068c
jmp 0x4f0e0b
push dword [ebp - 0x34]
mov eax, edi
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004ee108
add esp, 0x10
jmp 0x4f0e0b
test eax, eax
jne 0x4f0a74
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x10], edi
jge 0x4f09b2
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x34]
shr eax, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], edx
mov eax, dword [ecx + eax*4]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x28], eax
cmp edx, dword [ebp - 0x18]
jae 0x4f099b
mov eax, dword [ebp - 0x10]
shl eax, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
shr eax, cl
mov ecx, dword [ebp - 0x4c]
lea eax, [ecx + eax*4]
mov dl, byte [eax]
mov eax, dword [eax]
and dl, 7
shr eax, 3
add eax, dword [esi + 0x8090]
mov cl, 7
sub cl, dl
mov edx, dword [ebp - 0x28]
lea edi, [eax + edx]
mov edx, dword [ebp - 8]
mov al, byte [edi]
and edx, 0xf
movzx edx, byte [edx + ebx + 0x679970]
mov ebx, dword [ebp - 8]
and ebx, 0xfffffff0
shl ebx, 4
add edx, ebx
mov ebx, dword [ebp - 0x48]
cmp dword [ebx + edx*4], 0
setg dl
xor dl, byte [esi + 0x8088]
shr al, cl
add dl, al
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
and dl, 1
shl dl, cl
mov dword [ebp - 8], eax
xor dl, byte [edi]
mov byte [edi], dl
cmp eax, dword [ebp - 0x18]
jb 0x4f092a
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4f0902
jmp 0x4f0e0b
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
shr edx, cl
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx + edx*4]
add ecx, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x18]
jae 0x4f0a5d
mov edi, dword [ebp - 0x10]
mov bl, cl
and bl, 7
shl edi, 4
mov dl, 7
sub dl, bl
mov dword [ebp - 0x14], edi
movzx edi, dl
mov dword [ebp - 0x68], ecx
shr dword [ebp - 0x68], 3
mov byte [ebp - 2], dl
mov dword [ebp - 0x60], edi
jmp 0x4f09ff
mov dl, byte [ebp - 2]
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
mov edi, eax
shr edi, cl
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + edi*4]
add ecx, dword [ebp - 0x68]
mov edi, dword [esi + 0x8090]
add edi, ecx
mov ecx, eax
and ecx, 0xf
movzx ecx, byte [ecx + ebx + 0x679970]
mov ebx, eax
and ebx, 0xfffffff0
shl ebx, 4
add ecx, ebx
mov ebx, dword [ebp - 0x48]
cmp dword [ebx + ecx*4], 0
mov cl, dl
mov dl, byte [edi]
setg bl
xor bl, byte [esi + 0x8088]
add eax, dword [ebp - 0x1c]
shr dl, cl
mov ecx, dword [ebp - 0x60]
add bl, dl
and bl, 1
shl bl, cl
xor bl, byte [edi]
mov byte [edi], bl
cmp eax, dword [ebp - 0x18]
jb 0x4f09fc
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jb 0x4f09bb
jmp 0x4f0e0b
cmp eax, 8
jne 0x4f0ba0
push 0x10
pop eax
mov ecx, ebx
shl eax, cl
mov dword [ebp - 0x10], edi
cdq
idiv dword [ebp - 0xc]
mov edx, edi
mov dword [ebp - 0x54], eax
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f0b89
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x40]
shl eax, 2
mov edx, dword [eax + ecx]
mov ebx, dword [eax + edi]
imul edx, dword [ebp - 0xc]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar ebx, cl
neg edx
sar edx, cl
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax + ecx]
add eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul eax, dword [ebp - 0xc]
sar eax, cl
mov ecx, edx
sar ecx, 1
sub eax, ecx
lea ecx, [ebx + 1]
sar ecx, 1
mov edi, eax
sub edi, ecx
mov ecx, dword [ebp - 0x20]
add edx, edi
mov edi, dword [ebp - 8]
shr edi, cl
mov ecx, dword [ebp - 0x4c]
add ebx, edx
mov ecx, dword [ecx + edi*4]
add ecx, dword [ebp - 0x28]
mov edi, dword [esi + 0x8090]
lea ecx, [edi + ecx*2]
test edx, edx
jge 0x4f0b42
xor edx, edx
jmp 0x4f0b4a
cmp edx, 0x1f
jle 0x4f0b4a
push 0x1f
pop edx
test eax, eax
jge 0x4f0b52
xor eax, eax
jmp 0x4f0b5a
cmp eax, 0x1f
jle 0x4f0b5a
push 0x1f
pop eax
test ebx, ebx
jge 0x4f0b62
xor ebx, ebx
jmp 0x4f0b6a
cmp ebx, 0x1f
jle 0x4f0b6a
push 0x1f
pop ebx
shl ebx, 5
add ebx, eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
shl ebx, 5
add ebx, edx
mov word [ecx], bx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f0abf
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f0a99
jmp 0x4f0e0b
cmp eax, 0xa
jne 0x4f0ce3
push 0x20
pop eax
mov ecx, ebx
shl eax, cl
mov dword [ebp - 0x10], edi
cdq
idiv dword [ebp - 0xc]
mov dword [ebp - 0x54], eax
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
shr edx, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f0ccc
mov eax, dword [ebp - 0x10]
shl eax, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov eax, dword [ebp - 0x40]
shl edx, 2
mov eax, dword [edx + eax]
imul eax, dword [ebp - 0xc]
mov edi, dword [edx + edi]
imul edi, dword [ebp - 0xc]
sar edi, cl
neg eax
sar eax, cl
mov ecx, dword [ebp - 0x48]
mov ebx, dword [edx + ecx]
add ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul ebx, dword [ebp - 0xc]
sar ebx, cl
mov ecx, eax
sar ecx, 1
sub ebx, ecx
lea ecx, [edi + 1]
sar ecx, 1
mov edx, ebx
sub edx, ecx
mov ecx, dword [ebp - 0x20]
add eax, edx
add edi, eax
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x68], eax
mov eax, edi
cdq
sub eax, edx
mov edx, dword [ebp - 8]
shr edx, cl
mov ecx, dword [ebp - 0x4c]
sar eax, 1
mov ecx, dword [ecx + edx*4]
add ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x68], 0
mov edx, dword [esi + 0x8090]
lea ecx, [edx + ecx*2]
jge 0x4f0c82
xor edx, edx
jmp 0x4f0c8d
mov edx, dword [ebp - 0x68]
cmp edx, 0x1f
jle 0x4f0c8d
push 0x1f
pop edx
test ebx, ebx
jge 0x4f0c95
xor ebx, ebx
jmp 0x4f0c9d
cmp ebx, 0x3f
jle 0x4f0c9d
push 0x3f
pop ebx
test eax, eax
jge 0x4f0ca5
xor eax, eax
jmp 0x4f0cad
cmp eax, 0x1f
jle 0x4f0cad
push 0x1f
pop eax
shl eax, 6
add eax, ebx
shl eax, 5
add eax, edx
mov word [ecx], ax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f0bec
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4f0bc3
jmp 0x4f0e0b
cmp eax, 9
jne 0x4f0e0b
mov ecx, dword [ebp - 0x38]
mov eax, 0x200
shl eax, cl
mov dword [ebp - 0x10], edi
cdq
idiv dword [ebp - 0xc]
mov edx, edi
mov dword [ebp - 0x54], eax
cmp edi, dword [ebp - 0x24]
jae 0x4f0e0b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov edi, edx
shr edi, cl
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov ecx, dword [ecx + edi*4]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x18]
jae 0x4f0df9
mov dword [ebp - 0x14], edx
shl dword [ebp - 0x14], 4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x44]
and eax, 0xf
movzx eax, byte [eax + ecx + 0x679970]
mov ecx, dword [ebp - 8]
and ecx, 0xfffffff0
shl ecx, 4
add eax, ecx
mov ecx, dword [ebp - 0x40]
shl eax, 2
mov edx, dword [eax + ecx]
mov ebx, dword [eax + edi]
imul edx, dword [ebp - 0xc]
imul ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
sar ebx, cl
neg edx
sar edx, cl
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax + ecx]
add eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
imul eax, dword [ebp - 0xc]
sar eax, cl
mov ecx, edx
sar ecx, 1
sub eax, ecx
lea ecx, [ebx + 1]
sar ecx, 1
mov edi, eax
sub edi, ecx
mov ecx, dword [ebp - 0x20]
add edx, edi
mov edi, dword [ebp - 8]
shr edi, cl
mov ecx, dword [ebp - 0x4c]
add ebx, edx
mov ecx, dword [ecx + edi*4]
add ecx, dword [ebp - 0x28]
mov edi, dword [esi + 0x8090]
lea ecx, [edi + ecx*4]
mov edi, 0x3ff
test edx, edx
jge 0x4f0db9
xor edx, edx
jmp 0x4f0dbf
cmp edx, edi
jle 0x4f0dbf
mov edx, edi
test eax, eax
jge 0x4f0dc7
xor eax, eax
jmp 0x4f0dcd
cmp eax, edi
jle 0x4f0dcd
mov eax, edi
test ebx, ebx
jge 0x4f0dd5
xor ebx, ebx
jmp 0x4f0ddb
cmp ebx, edi
jle 0x4f0ddb
mov ebx, edi
shl ebx, 0xa
add ebx, eax
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
shl ebx, 0xa
add ebx, edx
mov dword [ecx], ebx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jb 0x4f0d31
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f0d0b
cmp byte [esi + 0x68], 0
jbe 0x4f0e2a
push dword [ebp - 0x38]
push dword [ebp - 0xc]
push dword [ebp - 0x20]
call fcn.004ee8c0
add esp, 0xc
test eax, eax
jne 0x4ef06f
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret