Function at 0x4eec2f
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 0x4eec51
mov eax, dword [esi + 8]
jmp 0x4eec5b
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 0x4eec8d
mov eax, dword [esi + 0x8588]
cmp dword [eax], ebx
je 0x4eec82
mov eax, dword [esi + 8]
jmp 0x4eec86
mov eax, dword [eax + 0x24]
inc eax
sub eax, edx
mov dword [ebp - 0x24], eax
jmp 0x4eec90
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + 0x8588]
cmp dword [ecx], ebx
je 0x4eec9f
mov eax, dword [esi + 4]
jmp 0x4eeca3
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 0x4eecb4
xor eax, eax
jmp 0x4eecb7
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 0x4eece0
mov dword [ebp - 0x50], ebx
jmp 0x4eece6
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 0x4eed08
movzx ecx, dl
mov eax, ecx
and eax, 2
and ecx, 1
sub eax, ecx
inc eax
jmp 0x4eed12
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 0x4eed35
cmp dl, al
je 0x4eed35
mov dword [ebp - 0x5c], eax
jmp 0x4eed39
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 0x4eedae
test ebx, ebx
jne 0x4eeda1
mov dword [ebp - 0xc], ecx
jmp 0x4eedc9
dec ebx
neg ebx
sbb ebx, ebx
and ebx, 0xb
add ebx, 0x17
jmp 0x4eedbd
cmp edx, 4
jb 0x4eedc2
neg ebx
sbb ebx, ebx
and ebx, 0x1d
add ebx, 0x40
mov dword [ebp - 0xc], ebx
jmp 0x4eedc9
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 0x4eedf9
cmp edx, ecx
jb 0x4eedf9
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x54], ecx
je 0x4eedf4
cmp dword [ebp - 0x54], 2
jne 0x4eedfb
push 2
pop ecx
jmp 0x4eedfb
xor ecx, ecx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x2c], eax
cmp edx, 1
jbe 0x4eee16
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor eax, eax
inc eax
shl eax, cl
cmp eax, edx
jb 0x4eee07
cmp dword [esi + 0x40], 4
jge 0x4eee21
mov ecx, dword [esi + 0x28]
jmp 0x4eee24
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.004e83bd
add esp, 4
test eax, eax
je 0x4eee49
or eax, 0xffffffff
jmp 0x4f0bfe
xor edx, edx
cmp dword [ebp - 0x30], edx
jne 0x4f0bfc
mov eax, dword [esi + 0x85d8]
shl eax, 4
cmp eax, dword [ebp - 0x14]
jbe 0x4f0bfc
mov ecx, dword [edi + 0x24]
add ecx, 0x10
cmp eax, ecx
ja 0x4f0bfc
cmp dword [ebp - 0x54], 2
je 0x4eee84
cmp dword [ebp - 0x54], 1
jne 0x4ef0df
cmp dword [ebp - 0x50], edx
je 0x4ef0df
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 0x4eef24
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 0x4eeed2
mov ebx, dword [ebp - 0x14]
movzx edx, byte [edx + ebx + 0x67bab0]
lea edx, [edx + edi*8]
jmp 0x4eeee2
mov ebx, dword [ebp - 0x10]
shr ebx, 1
movzx edx, byte [edx + ebx*8 + 0x67bbb0]
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 + 0x67bab0]
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 0x4eeeaf
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, 0x10
jb 0x4eee9c
cmp dword [ebp - 0x1c], 4
jne 0x4ef0d6
cmp dword [ebp - 0x54], 1
jne 0x4eeff0
xor ebx, ebx
mov dword [ebp - 8], ebx
cmp dword [ebp - 0x18], ebx
jbe 0x4eeff0
mov edx, ebx
and ebx, 0xfffffff0
shl ebx, 4
and edx, 0xf
movzx edi, byte [edx + 0x67bab0]
add edi, ebx
mov dword [ebp - 0x54], edx
movzx edx, byte [edx + 0x67baf0]
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 0x4eef58
jmp 0x4eeff3
mov edx, dword [ebp - 0x68]
and dword [ebp - 0x54], 0
mov edi, dword [ebp - 0x18]
and dword [ebp - 8], 0
add edi, 0xfffffff8
je 0x4ef097
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 8]
and edi, 0xf
movzx edi, byte [edi + ebx + 0x67bab0]
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 + 0x67bab0]
add edi, dword [ebp - 0x40]
add dword [ebp - 8], 8
shl edi, 2
and edx, 0xf
movzx edx, byte [edx + ebx + 0x67bab0]
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 0x4ef007
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 + 0x67bab0]
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 0x4eeff7
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 0x4ef723
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 0x4ef70d
sub eax, 3
je 0x4ef70d
dec eax
je 0x4ef5ab
dec eax
je 0x4ef409
dec eax
je 0x4ef70d
dec eax
je 0x4ef2ec
dec eax
jne 0x4f0bdd
mov eax, dword [ebp - 0x28]
jmp 0x4ef2db
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 0x4ef2d5
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 + 0x67bab0]
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 0x4ef1ec
mov byte [ebp - 2], 0
mov byte [edx], 0
jmp 0x4ef209
mov dword [ebp - 0x5c], eax
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x4ef203
mov cl, byte [ebp - 0x5c]
mov byte [ebp - 2], cl
or al, 0x80
jmp 0x4ef207
mov byte [ebp - 2], 1
mov byte [edx], al
mov ecx, dword [ebp - 0x68]
test ecx, ecx
jg 0x4ef21a
mov byte [ebp - 1], 0
mov byte [edx + 1], 0
jmp 0x4ef239
mov dword [ebp - 0x5c], ecx
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x4ef232
mov al, byte [ebp - 0x5c]
mov byte [ebp - 1], al
or cl, 0x80
jmp 0x4ef236
mov byte [ebp - 1], 1
mov byte [edx + 1], cl
test ebx, ebx
jg 0x4ef244
xor al, al
mov byte [edx + 2], al
jmp 0x4ef25a
mov ecx, ebx
sar ecx, 7
cmp ecx, 1
jle 0x4ef255
mov al, cl
or bl, 0x80
jmp 0x4ef257
mov al, 1
mov byte [edx + 2], bl
mov bl, byte [ebp - 2]
movzx edi, bl
cmp bl, byte [ebp - 1]
ja 0x4ef269
movzx edi, byte [ebp - 1]
movzx ecx, al
cmp edi, ecx
jle 0x4ef27c
movzx ecx, bl
cmp bl, byte [ebp - 1]
ja 0x4ef27c
movzx ecx, byte [ebp - 1]
mov byte [edx + 3], cl
cmp cl, bl
jbe 0x4ef291
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 0x4ef2ab
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 0x4ef2c3
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 0x4ef167
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4ef13e
jmp 0x4f0bdd
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4ef3f2
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 + 0x67bab0]
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 0x4ef3a5
xor eax, eax
jmp 0x4ef3b0
mov ecx, 0xff
cmp eax, ecx
jle 0x4ef3b0
mov eax, ecx
mov ecx, dword [ebp - 0x58]
mov byte [edi + ecx], al
mov eax, 0xff
test ebx, ebx
jge 0x4ef3c3
xor ebx, ebx
jmp 0x4ef3c9
cmp ebx, eax
jle 0x4ef3c9
mov ebx, eax
mov byte [edi + 1], bl
test edx, edx
jge 0x4ef3d4
xor edx, edx
jmp 0x4ef3da
cmp edx, eax
jle 0x4ef3da
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 0x4ef323
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef2fd
jmp 0x4f0bdd
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x64], eax
jge 0x4ef41d
mov eax, dword [esi + 0x28]
jmp 0x4ef420
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 0x4f0bdd
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 0x4ef594
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 + 0x67bab0]
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 0x4ef532
xor ebx, ebx
jmp 0x4ef538
cmp ebx, edx
jle 0x4ef538
mov ebx, edx
mov byte [ecx], bl
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x4ef545
xor ebx, ebx
jmp 0x4ef54b
cmp ebx, edx
jle 0x4ef54b
mov ebx, edx
cmp dword [ebp - 0x70], 0
mov byte [ecx + 1], bl
jge 0x4ef558
xor edx, edx
jmp 0x4ef560
cmp dword [ebp - 0x70], edx
jg 0x4ef560
mov edx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x50]
mov byte [ebx + ecx], dl
mov edx, dword [ebp - 0x6c]
test edx, edx
jge 0x4ef571
xor edx, edx
jmp 0x4ef57e
cmp edx, 0xff
jle 0x4ef57e
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 0x4ef46a
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef436
jmp 0x4f0bdd
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 0x4f0bdd
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 0x4ef6f6
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 + 0x67bab0]
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 0x4ef6a3
xor eax, eax
jmp 0x4ef6a9
cmp eax, ebx
jle 0x4ef6a9
mov eax, ebx
mov byte [ecx], al
test edx, edx
jge 0x4ef6b3
xor edx, edx
jmp 0x4ef6b9
cmp edx, ebx
jle 0x4ef6b9
mov edx, ebx
mov byte [ecx + 1], dl
test edi, edi
jge 0x4ef6c4
xor eax, eax
jmp 0x4ef6cc
cmp edi, ebx
mov eax, ebx
jg 0x4ef6cc
mov eax, edi
cmp dword [ebp - 0x60], 0
mov byte [ecx + 2], al
jge 0x4ef6d9
xor ebx, ebx
jmp 0x4ef6e1
cmp dword [ebp - 0x60], ebx
jg 0x4ef6e1
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 0x4ef5fb
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef5d5
jmp 0x4f0bdd
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004ededa
mov edi, dword [ebp - 0x28]
add esp, 0x10
cmp dword [ebp - 0x64], 2
jne 0x4efbec
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 0x4efbd6
sub eax, 3
je 0x4efbd6
dec eax
je 0x4efa50
dec eax
je 0x4ef899
dec eax
je 0x4efbd6
dec eax
jne 0x4f0bdd
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4ef882
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 + 0x67bab0]
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 0x4ef843
xor edx, edx
jmp 0x4ef849
cmp edx, ecx
jle 0x4ef849
mov edx, ecx
mov word [ebx], dx
test edi, edi
jge 0x4ef854
xor edi, edi
jmp 0x4ef85a
cmp edi, ecx
jle 0x4ef85a
mov edi, ecx
mov word [ebx + 2], di
test eax, eax
jge 0x4ef866
xor eax, eax
jmp 0x4ef86c
cmp eax, ecx
jle 0x4ef86c
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 0x4ef7b0
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef78a
jmp 0x4f0bdd
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x50], eax
jge 0x4ef8ad
mov eax, dword [esi + 0x28]
jmp 0x4ef8b0
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 0x4f0bdd
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 0x4efa39
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 + 0x67bab0]
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 0x4ef9d4
xor ebx, ebx
jmp 0x4ef9da
cmp ebx, ecx
jle 0x4ef9da
mov ebx, ecx
mov word [edi], bx
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x4ef9e8
xor ebx, ebx
jmp 0x4ef9ee
cmp ebx, ecx
jle 0x4ef9ee
mov ebx, ecx
cmp dword [ebp - 0x70], 0
mov word [edi + 2], bx
jge 0x4ef9fc
xor ecx, ecx
jmp 0x4efa04
cmp dword [ebp - 0x70], ecx
jg 0x4efa04
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 0x4efa1f
mov ecx, 0xffff
cmp dword [ebp - 0x6c], ecx
jg 0x4efa1f
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 0x4ef8fa
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4ef8c6
jmp 0x4f0bdd
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 0x4f0bdd
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 0x4efbbf
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 + 0x67bab0]
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 0x4efb67
xor eax, eax
jmp 0x4efb6d
cmp eax, ecx
jle 0x4efb6d
mov eax, ecx
mov ebx, dword [ebp - 0x5c]
mov word [ebx], ax
test edx, edx
jge 0x4efb7b
xor edx, edx
jmp 0x4efb81
cmp edx, ecx
jle 0x4efb81
mov edx, ecx
mov word [ebx + 2], dx
test edi, edi
jge 0x4efb8d
xor edi, edi
jmp 0x4efb93
cmp edi, ecx
jle 0x4efb93
mov edi, ecx
cmp dword [ebp - 0x58], 0
mov word [ebx + 4], di
jge 0x4efba1
xor ecx, ecx
jmp 0x4efba9
cmp dword [ebp - 0x58], ecx
jg 0x4efba9
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 0x4efaad
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4efa87
jmp 0x4f0bdd
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004ededa
mov edi, dword [ebp - 0x28]
add esp, 0x10
mov eax, dword [ebp - 0x64]
push 3
pop ecx
cmp eax, ecx
jne 0x4f0073
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f0699
sub eax, ecx
je 0x4f0699
dec eax
je 0x4eff03
dec eax
je 0x4efd56
dec eax
je 0x4f0699
dec eax
jne 0x4f0bdd
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4efd3f
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 + 0x67bab0]
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 0x4efcf5
mov eax, ecx
jmp 0x4efd01
cmp eax, 0x7fff
jle 0x4efd01
mov eax, 0x7fff
cmp ebx, ecx
mov word [edi], ax
mov eax, 0x7fff
jge 0x4efd11
mov ebx, ecx
jmp 0x4efd17
cmp ebx, eax
jle 0x4efd17
mov ebx, eax
cmp edx, ecx
mov word [edi + 2], bx
jge 0x4efd23
mov edx, ecx
jmp 0x4efd29
cmp edx, eax
jle 0x4efd29
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 0x4efc65
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4efc38
jmp 0x4f0bdd
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x54], eax
jge 0x4efd6a
mov eax, dword [esi + 0x28]
jmp 0x4efd6d
mov eax, dword [esi + 0x30]
add eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4efeec
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 + 0x67bab0]
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]
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 0x4efe8e
mov eax, edx
jmp 0x4efe94
cmp eax, ebx
jle 0x4efe94
mov eax, ebx
mov ecx, dword [ebp - 0x64]
mov word [ecx], ax
mov eax, dword [ebp - 0x74]
cmp eax, edx
jge 0x4efea5
mov eax, edx
jmp 0x4efeab
cmp eax, ebx
jle 0x4efeab
mov eax, ebx
cmp edi, edx
mov word [ecx + 2], ax
jge 0x4efeb7
mov edi, edx
jmp 0x4efebd
cmp edi, ebx
jle 0x4efebd
mov edi, ebx
cmp dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x50]
mov word [ecx + eax*2], di
jge 0x4efecd
mov ebx, edx
jmp 0x4efed5
cmp dword [ebp - 0x6c], ebx
jg 0x4efed5
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 0x4efdb3
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4efd83
jmp 0x4f0bdd
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x68], eax
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4f005c
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 + 0x67bab0]
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 0x4efffd
mov edi, ecx
jmp 0x4f0008
mov ebx, 0x7fff
cmp edi, ebx
jle 0x4f0008
mov edi, ebx
cmp eax, ecx
mov ebx, dword [ebp - 0x64]
mov word [ebx], di
mov edi, 0x7fff
jge 0x4f001b
mov eax, ecx
jmp 0x4f0021
cmp eax, edi
jle 0x4f0021
mov eax, edi
cmp edx, ecx
mov word [ebx + 2], ax
jge 0x4f002d
mov edx, ecx
jmp 0x4f0033
cmp edx, edi
jle 0x4f0033
mov edx, edi
cmp dword [ebp - 0x5c], ecx
mov word [ebx + 4], dx
jl 0x4f0046
cmp dword [ebp - 0x5c], edi
mov ecx, edi
jg 0x4f0046
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]
inc ebp
call 0xff3a8269
invalid
invalid
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4eff1a
jmp 0x4f0bdd
cmp eax, 4
jne 0x4f01b5
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f0699
sub eax, ecx
je 0x4f0699
sub eax, ecx
je 0x4f0699
dec eax
jne 0x4f0bdd
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4f019e
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 + 0x67bab0]
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 0x4f00d3
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f00ad
jmp 0x4f0bdd
cmp eax, 5
jne 0x4f02f9
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 0x4f0699
sub eax, 3
je 0x4f0699
sub eax, 3
je 0x4f0699
dec eax
jne 0x4f0bdd
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4f02e2
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 + 0x67bab0]
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 0x4f0230
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f020a
jmp 0x4f0bdd
cmp eax, 6
jne 0x4f0424
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f0699
sub eax, ecx
je 0x4f0699
sub eax, ecx
je 0x4f0699
dec eax
jne 0x4f0bdd
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4f040d
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 + 0x67bab0]
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 0x4f0360
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f0333
jmp 0x4f0bdd
cmp eax, 7
jne 0x4f06b0
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4f0699
sub eax, ecx
je 0x4f0699
sub eax, ecx
je 0x4f0699
dec eax
jne 0x4f0bdd
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4f0682
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 + 0x67bab0]
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 0x4f0554
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 0x4f057e
cmp ebx, 1
jle 0x4f0576
test eax, eax
jle 0x4f0576
add eax, eax
dec ebx
cmp eax, ecx
jl 0x4f0566
cmp eax, ecx
jge 0x4f057e
xor ebx, ebx
jmp 0x4f0580
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 0x4f05be
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 0x4f05e5
cmp edi, 1
jle 0x4f05dd
test eax, eax
jle 0x4f05dd
add eax, eax
dec edi
cmp eax, ecx
jl 0x4f05cd
cmp eax, ecx
jge 0x4f05e5
xor edi, edi
jmp 0x4f05e7
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 0x4f0629
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 0x4f0650
cmp edi, 1
jle 0x4f0648
test eax, eax
jle 0x4f0648
add eax, eax
dec edi
cmp eax, ecx
jl 0x4f0638
cmp eax, ecx
jge 0x4f0650
xor edi, edi
jmp 0x4f0652
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 0x4f04a6
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f045e
jmp 0x4f0bdd
push dword [ebp - 0x34]
mov eax, edi
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004ededa
add esp, 0x10
jmp 0x4f0bdd
test eax, eax
jne 0x4f0846
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x10], edi
jge 0x4f0784
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4f076d
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 + 0x67bab0]
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 0x4f06fc
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4f06d4
jmp 0x4f0bdd
cmp edi, dword [ebp - 0x24]
jae 0x4f0bdd
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 0x4f082f
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 0x4f07d1
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 + 0x67bab0]
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 0x4f07ce
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jb 0x4f078d
jmp 0x4f0bdd
cmp eax, 8
jne 0x4f0972
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 0x4f0bdd
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 0x4f095b
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 + 0x67bab0]
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 0x4f0914
xor edx, edx
jmp 0x4f091c
cmp edx, 0x1f
jle 0x4f091c
push 0x1f
pop edx
test eax, eax
jge 0x4f0924
xor eax, eax
jmp 0x4f092c
cmp eax, 0x1f
jle 0x4f092c
push 0x1f
pop eax
test ebx, ebx
jge 0x4f0934
xor ebx, ebx
jmp 0x4f093c
cmp ebx, 0x1f
jle 0x4f093c
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 0x4f0891
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f086b
jmp 0x4f0bdd
cmp eax, 0xa
jne 0x4f0ab5
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 0x4f0bdd
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 0x4f0a9e
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 + 0x67bab0]
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 0x4f0a54
xor edx, edx
jmp 0x4f0a5f
mov edx, dword [ebp - 0x68]
cmp edx, 0x1f
jle 0x4f0a5f
push 0x1f
pop edx
test ebx, ebx
jge 0x4f0a67
xor ebx, ebx
jmp 0x4f0a6f
cmp ebx, 0x3f
jle 0x4f0a6f
push 0x3f
pop ebx
test eax, eax
jge 0x4f0a77
xor eax, eax
jmp 0x4f0a7f
cmp eax, 0x1f
jle 0x4f0a7f
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 0x4f09be
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4f0995
jmp 0x4f0bdd
cmp eax, 9
jne 0x4f0bdd
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 0x4f0bdd
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 0x4f0bcb
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 + 0x67bab0]
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 0x4f0b8b
xor edx, edx
jmp 0x4f0b91
cmp edx, edi
jle 0x4f0b91
mov edx, edi
test eax, eax
jge 0x4f0b99
xor eax, eax
jmp 0x4f0b9f
cmp eax, edi
jle 0x4f0b9f
mov eax, edi
test ebx, ebx
jge 0x4f0ba7
xor ebx, ebx
jmp 0x4f0bad
cmp ebx, edi
jle 0x4f0bad
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 0x4f0b03
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4f0add
cmp byte [esi + 0x68], 0
jbe 0x4f0bfc
push dword [ebp - 0x38]
push dword [ebp - 0xc]
push dword [ebp - 0x20]
call fcn.004ee692
add esp, 0xc
test eax, eax
jne 0x4eee41
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret