Function at 0x4e232d
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 0x4e234f
mov eax, dword [esi + 8]
jmp 0x4e2359
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 0x4e238b
mov eax, dword [esi + 0x8588]
cmp dword [eax], ebx
je 0x4e2380
mov eax, dword [esi + 8]
jmp 0x4e2384
mov eax, dword [eax + 0x24]
inc eax
sub eax, edx
mov dword [ebp - 0x24], eax
jmp 0x4e238e
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + 0x8588]
cmp dword [ecx], ebx
je 0x4e239d
mov eax, dword [esi + 4]
jmp 0x4e23a1
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 0x4e23b2
xor eax, eax
jmp 0x4e23b5
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 0x4e23de
mov dword [ebp - 0x50], ebx
jmp 0x4e23e4
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 0x4e2406
movzx ecx, dl
mov eax, ecx
and eax, 2
and ecx, 1
sub eax, ecx
inc eax
jmp 0x4e2410
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 0x4e2433
cmp dl, al
je 0x4e2433
mov dword [ebp - 0x5c], eax
jmp 0x4e2437
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 0x4e24ac
test ebx, ebx
jne 0x4e249f
mov dword [ebp - 0xc], ecx
jmp 0x4e24c7
dec ebx
neg ebx
sbb ebx, ebx
and ebx, 0xb
add ebx, 0x17
jmp 0x4e24bb
cmp edx, 4
jb 0x4e24c0
neg ebx
sbb ebx, ebx
and ebx, 0x1d
add ebx, 0x40
mov dword [ebp - 0xc], ebx
jmp 0x4e24c7
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 0x4e24f7
cmp edx, ecx
jb 0x4e24f7
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x54], ecx
je 0x4e24f2
cmp dword [ebp - 0x54], 2
jne 0x4e24f9
push 2
pop ecx
jmp 0x4e24f9
xor ecx, ecx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x2c], eax
cmp edx, 1
jbe 0x4e2514
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor eax, eax
inc eax
shl eax, cl
cmp eax, edx
jb 0x4e2505
cmp dword [esi + 0x40], 4
jge 0x4e251f
mov ecx, dword [esi + 0x28]
jmp 0x4e2522
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.004dbad9
add esp, 4
test eax, eax
je 0x4e2547
or eax, 0xffffffff
jmp 0x4e42fc
xor edx, edx
cmp dword [ebp - 0x30], edx
jne 0x4e42fa
mov eax, dword [esi + 0x85d8]
shl eax, 4
cmp eax, dword [ebp - 0x14]
jbe 0x4e42fa
mov ecx, dword [edi + 0x24]
add ecx, 0x10
cmp eax, ecx
ja 0x4e42fa
cmp dword [ebp - 0x54], 2
je 0x4e2582
cmp dword [ebp - 0x54], 1
jne 0x4e27dd
cmp dword [ebp - 0x50], edx
je 0x4e27dd
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 0x4e2622
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 0x4e25d0
mov ebx, dword [ebp - 0x14]
movzx edx, byte [edx + ebx + 0x67eb50]
lea edx, [edx + edi*8]
jmp 0x4e25e0
mov ebx, dword [ebp - 0x10]
shr ebx, 1
movzx edx, byte [edx + ebx*8 + 0x67ec50]
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 + 0x67eb50]
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 0x4e25ad
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, 0x10
jb 0x4e259a
cmp dword [ebp - 0x1c], 4
jne 0x4e27d4
cmp dword [ebp - 0x54], 1
jne 0x4e26ee
xor ebx, ebx
mov dword [ebp - 8], ebx
cmp dword [ebp - 0x18], ebx
jbe 0x4e26ee
mov edx, ebx
and ebx, 0xfffffff0
shl ebx, 4
and edx, 0xf
movzx edi, byte [edx + 0x67eb50]
add edi, ebx
mov dword [ebp - 0x54], edx
movzx edx, byte [edx + 0x67eb90]
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 0x4e2656
jmp 0x4e26f1
mov edx, dword [ebp - 0x68]
and dword [ebp - 0x54], 0
mov edi, dword [ebp - 0x18]
and dword [ebp - 8], 0
add edi, 0xfffffff8
je 0x4e2795
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 8]
and edi, 0xf
movzx edi, byte [edi + ebx + 0x67eb50]
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 + 0x67eb50]
add edi, dword [ebp - 0x40]
add dword [ebp - 8], 8
shl edi, 2
and edx, 0xf
movzx edx, byte [edx + ebx + 0x67eb50]
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 0x4e2705
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 + 0x67eb50]
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 0x4e26f5
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 0x4e2e21
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 0x4e2e0b
sub eax, 3
je 0x4e2e0b
dec eax
je 0x4e2ca9
dec eax
je 0x4e2b07
dec eax
je 0x4e2e0b
dec eax
je 0x4e29ea
dec eax
jne 0x4e42db
mov eax, dword [ebp - 0x28]
jmp 0x4e29d9
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 0x4e29d3
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 + 0x67eb50]
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 0x4e28ea
mov byte [ebp - 2], 0
mov byte [edx], 0
jmp 0x4e2907
mov dword [ebp - 0x5c], eax
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x4e2901
mov cl, byte [ebp - 0x5c]
mov byte [ebp - 2], cl
or al, 0x80
jmp 0x4e2905
mov byte [ebp - 2], 1
mov byte [edx], al
mov ecx, dword [ebp - 0x68]
test ecx, ecx
jg 0x4e2918
mov byte [ebp - 1], 0
mov byte [edx + 1], 0
jmp 0x4e2937
mov dword [ebp - 0x5c], ecx
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x4e2930
mov al, byte [ebp - 0x5c]
mov byte [ebp - 1], al
or cl, 0x80
jmp 0x4e2934
mov byte [ebp - 1], 1
mov byte [edx + 1], cl
test ebx, ebx
jg 0x4e2942
xor al, al
mov byte [edx + 2], al
jmp 0x4e2958
mov ecx, ebx
sar ecx, 7
cmp ecx, 1
jle 0x4e2953
mov al, cl
or bl, 0x80
jmp 0x4e2955
mov al, 1
mov byte [edx + 2], bl
mov bl, byte [ebp - 2]
movzx edi, bl
cmp bl, byte [ebp - 1]
ja 0x4e2967
movzx edi, byte [ebp - 1]
movzx ecx, al
cmp edi, ecx
jle 0x4e297a
movzx ecx, bl
cmp bl, byte [ebp - 1]
ja 0x4e297a
movzx ecx, byte [ebp - 1]
mov byte [edx + 3], cl
cmp cl, bl
jbe 0x4e298f
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 0x4e29a9
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 0x4e29c1
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 0x4e2865
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4e283c
jmp 0x4e42db
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e2af0
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 + 0x67eb50]
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 0x4e2aa3
xor eax, eax
jmp 0x4e2aae
mov ecx, 0xff
cmp eax, ecx
jle 0x4e2aae
mov eax, ecx
mov ecx, dword [ebp - 0x58]
mov byte [edi + ecx], al
mov eax, 0xff
test ebx, ebx
jge 0x4e2ac1
xor ebx, ebx
jmp 0x4e2ac7
cmp ebx, eax
jle 0x4e2ac7
mov ebx, eax
mov byte [edi + 1], bl
test edx, edx
jge 0x4e2ad2
xor edx, edx
jmp 0x4e2ad8
cmp edx, eax
jle 0x4e2ad8
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 0x4e2a21
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e29fb
jmp 0x4e42db
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x64], eax
jge 0x4e2b1b
mov eax, dword [esi + 0x28]
jmp 0x4e2b1e
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 0x4e42db
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 0x4e2c92
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 + 0x67eb50]
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 0x4e2c30
xor ebx, ebx
jmp 0x4e2c36
cmp ebx, edx
jle 0x4e2c36
mov ebx, edx
mov byte [ecx], bl
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x4e2c43
xor ebx, ebx
jmp 0x4e2c49
cmp ebx, edx
jle 0x4e2c49
mov ebx, edx
cmp dword [ebp - 0x70], 0
mov byte [ecx + 1], bl
jge 0x4e2c56
xor edx, edx
jmp 0x4e2c5e
cmp dword [ebp - 0x70], edx
jg 0x4e2c5e
mov edx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x50]
mov byte [ebx + ecx], dl
mov edx, dword [ebp - 0x6c]
test edx, edx
jge 0x4e2c6f
xor edx, edx
jmp 0x4e2c7c
cmp edx, 0xff
jle 0x4e2c7c
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 0x4e2b68
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e2b34
jmp 0x4e42db
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 0x4e42db
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 0x4e2df4
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 + 0x67eb50]
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 0x4e2da1
xor eax, eax
jmp 0x4e2da7
cmp eax, ebx
jle 0x4e2da7
mov eax, ebx
mov byte [ecx], al
test edx, edx
jge 0x4e2db1
xor edx, edx
jmp 0x4e2db7
cmp edx, ebx
jle 0x4e2db7
mov edx, ebx
mov byte [ecx + 1], dl
test edi, edi
jge 0x4e2dc2
xor eax, eax
jmp 0x4e2dca
cmp edi, ebx
mov eax, ebx
jg 0x4e2dca
mov eax, edi
cmp dword [ebp - 0x60], 0
mov byte [ecx + 2], al
jge 0x4e2dd7
xor ebx, ebx
jmp 0x4e2ddf
cmp dword [ebp - 0x60], ebx
jg 0x4e2ddf
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 0x4e2cf9
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e2cd3
jmp 0x4e42db
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004e15d8
mov edi, dword [ebp - 0x28]
add esp, 0x10
cmp dword [ebp - 0x64], 2
jne 0x4e32ea
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 0x4e32d4
sub eax, 3
je 0x4e32d4
dec eax
je 0x4e314e
dec eax
je 0x4e2f97
dec eax
je 0x4e32d4
dec eax
jne 0x4e42db
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e2f80
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 + 0x67eb50]
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 0x4e2f41
xor edx, edx
jmp 0x4e2f47
cmp edx, ecx
jle 0x4e2f47
mov edx, ecx
mov word [ebx], dx
test edi, edi
jge 0x4e2f52
xor edi, edi
jmp 0x4e2f58
cmp edi, ecx
jle 0x4e2f58
mov edi, ecx
mov word [ebx + 2], di
test eax, eax
jge 0x4e2f64
xor eax, eax
jmp 0x4e2f6a
cmp eax, ecx
jle 0x4e2f6a
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 0x4e2eae
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e2e88
jmp 0x4e42db
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x50], eax
jge 0x4e2fab
mov eax, dword [esi + 0x28]
jmp 0x4e2fae
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 0x4e42db
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 0x4e3137
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 + 0x67eb50]
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 0x4e30d2
xor ebx, ebx
jmp 0x4e30d8
cmp ebx, ecx
jle 0x4e30d8
mov ebx, ecx
mov word [edi], bx
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x4e30e6
xor ebx, ebx
jmp 0x4e30ec
cmp ebx, ecx
jle 0x4e30ec
mov ebx, ecx
cmp dword [ebp - 0x70], 0
mov word [edi + 2], bx
jge 0x4e30fa
xor ecx, ecx
jmp 0x4e3102
cmp dword [ebp - 0x70], ecx
jg 0x4e3102
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 0x4e311d
mov ecx, 0xffff
cmp dword [ebp - 0x6c], ecx
jg 0x4e311d
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 0x4e2ff8
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e2fc4
jmp 0x4e42db
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 0x4e42db
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 0x4e32bd
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 + 0x67eb50]
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 0x4e3265
xor eax, eax
jmp 0x4e326b
cmp eax, ecx
jle 0x4e326b
mov eax, ecx
mov ebx, dword [ebp - 0x5c]
mov word [ebx], ax
test edx, edx
jge 0x4e3279
xor edx, edx
jmp 0x4e327f
cmp edx, ecx
jle 0x4e327f
mov edx, ecx
mov word [ebx + 2], dx
test edi, edi
jge 0x4e328b
xor edi, edi
jmp 0x4e3291
cmp edi, ecx
jle 0x4e3291
mov edi, ecx
cmp dword [ebp - 0x58], 0
mov word [ebx + 4], di
jge 0x4e329f
xor ecx, ecx
jmp 0x4e32a7
cmp dword [ebp - 0x58], ecx
jg 0x4e32a7
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 0x4e31ab
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e3185
jmp 0x4e42db
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004e15d8
mov edi, dword [ebp - 0x28]
add esp, 0x10
mov eax, dword [ebp - 0x64]
push 3
pop ecx
cmp eax, ecx
jne 0x4e3771
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4e3d97
sub eax, ecx
je 0x4e3d97
dec eax
je 0x4e3601
dec eax
je 0x4e3454
dec eax
je 0x4e3d97
dec eax
jne 0x4e42db
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e343d
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 + 0x67eb50]
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 0x4e33f3
mov eax, ecx
jmp 0x4e33ff
cmp eax, 0x7fff
jle 0x4e33ff
mov eax, 0x7fff
cmp ebx, ecx
mov word [edi], ax
mov eax, 0x7fff
jge 0x4e340f
mov ebx, ecx
jmp 0x4e3415
cmp ebx, eax
jle 0x4e3415
mov ebx, eax
cmp edx, ecx
mov word [edi + 2], bx
jge 0x4e3421
mov edx, ecx
jmp 0x4e3427
cmp edx, eax
jle 0x4e3427
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 0x4e3363
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e3336
jmp 0x4e42db
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x54], eax
jge 0x4e3468
mov eax, dword [esi + 0x28]
jmp 0x4e346b
mov eax, dword [esi + 0x30]
add eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e35ea
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 + 0x67eb50]
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 0x4e358c
mov eax, edx
jmp 0x4e3592
cmp eax, ebx
jle 0x4e3592
mov eax, ebx
mov ecx, dword [ebp - 0x64]
mov word [ecx], ax
mov eax, dword [ebp - 0x74]
cmp eax, edx
jge 0x4e35a3
mov eax, edx
jmp 0x4e35a9
cmp eax, ebx
jle 0x4e35a9
mov eax, ebx
cmp edi, edx
mov word [ecx + 2], ax
jge 0x4e35b5
mov edi, edx
jmp 0x4e35bb
cmp edi, ebx
jle 0x4e35bb
mov edi, ebx
cmp dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x50]
mov word [ecx + eax*2], di
jge 0x4e35cb
mov ebx, edx
jmp 0x4e35d3
cmp dword [ebp - 0x6c], ebx
jg 0x4e35d3
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 0x4e34b1
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4e3481
jmp 0x4e42db
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x68], eax
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e375a
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 + 0x67eb50]
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 0x4e36fb
mov edi, ecx
jmp 0x4e3706
mov ebx, 0x7fff
cmp edi, ebx
jle 0x4e3706
mov edi, ebx
cmp eax, ecx
mov ebx, dword [ebp - 0x64]
mov word [ebx], di
mov edi, 0x7fff
jge 0x4e3719
mov eax, ecx
jmp 0x4e371f
cmp eax, edi
jle 0x4e371f
mov eax, edi
cmp edx, ecx
mov word [ebx + 2], ax
jge 0x4e372b
mov edx, ecx
jmp 0x4e3731
cmp edx, edi
jle 0x4e3731
mov edx, edi
cmp dword [ebp - 0x5c], ecx
mov word [ebx + 4], dx
jl 0x4e3744
cmp dword [ebp - 0x5c], edi
mov ecx, edi
jg 0x4e3744
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 0x4e3645
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e3618
jmp 0x4e42db
cmp eax, 4
jne 0x4e38b3
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4e3d97
sub eax, ecx
je 0x4e3d97
sub eax, ecx
je 0x4e3d97
dec eax
jne 0x4e42db
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e389c
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 + 0x67eb50]
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 0x4e37d1
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e37ab
jmp 0x4e42db
cmp eax, 5
jne 0x4e39f7
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 0x4e3d97
sub eax, 3
je 0x4e3d97
sub eax, 3
je 0x4e3d97
dec eax
jne 0x4e42db
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e39e0
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 + 0x67eb50]
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 0x4e392e
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e3908
jmp 0x4e42db
cmp eax, 6
jne 0x4e3b22
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4e3d97
sub eax, ecx
je 0x4e3d97
sub eax, ecx
je 0x4e3d97
dec eax
jne 0x4e42db
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e3b0b
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 + 0x67eb50]
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 0x4e3a5e
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e3a31
jmp 0x4e42db
cmp eax, 7
jne 0x4e3dae
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x4e3d97
sub eax, ecx
je 0x4e3d97
sub eax, ecx
je 0x4e3d97
dec eax
jne 0x4e42db
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e3d80
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 + 0x67eb50]
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 0x4e3c52
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 0x4e3c7c
cmp ebx, 1
jle 0x4e3c74
test eax, eax
jle 0x4e3c74
add eax, eax
dec ebx
cmp eax, ecx
jl 0x4e3c64
cmp eax, ecx
jge 0x4e3c7c
xor ebx, ebx
jmp 0x4e3c7e
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 0x4e3cbc
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 0x4e3ce3
cmp edi, 1
jle 0x4e3cdb
test eax, eax
jle 0x4e3cdb
add eax, eax
dec edi
cmp eax, ecx
jl 0x4e3ccb
cmp eax, ecx
jge 0x4e3ce3
xor edi, edi
jmp 0x4e3ce5
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 0x4e3d27
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 0x4e3d4e
cmp edi, 1
jle 0x4e3d46
test eax, eax
jle 0x4e3d46
add eax, eax
dec edi
cmp eax, ecx
jl 0x4e3d36
cmp eax, ecx
jge 0x4e3d4e
xor edi, edi
jmp 0x4e3d50
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 0x4e3ba4
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e3b5c
jmp 0x4e42db
push dword [ebp - 0x34]
mov eax, edi
push ebx
push dword [ebp - 0xc]
push esi
call fcn.004e15d8
add esp, 0x10
jmp 0x4e42db
test eax, eax
jne 0x4e3f44
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x10], edi
jge 0x4e3e82
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e3e6b
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 + 0x67eb50]
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 0x4e3dfa
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4e3dd2
jmp 0x4e42db
cmp edi, dword [ebp - 0x24]
jae 0x4e42db
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 0x4e3f2d
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 0x4e3ecf
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 + 0x67eb50]
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 0x4e3ecc
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jb 0x4e3e8b
jmp 0x4e42db
cmp eax, 8
jne 0x4e4070
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 0x4e42db
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 0x4e4059
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 + 0x67eb50]
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 0x4e4012
xor edx, edx
jmp 0x4e401a
cmp edx, 0x1f
jle 0x4e401a
push 0x1f
pop edx
test eax, eax
jge 0x4e4022
xor eax, eax
jmp 0x4e402a
cmp eax, 0x1f
jle 0x4e402a
push 0x1f
pop eax
test ebx, ebx
jge 0x4e4032
xor ebx, ebx
jmp 0x4e403a
cmp ebx, 0x1f
jle 0x4e403a
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 0x4e3f8f
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e3f69
jmp 0x4e42db
cmp eax, 0xa
jne 0x4e41b3
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 0x4e42db
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 0x4e419c
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 + 0x67eb50]
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 0x4e4152
xor edx, edx
jmp 0x4e415d
mov edx, dword [ebp - 0x68]
cmp edx, 0x1f
jle 0x4e415d
push 0x1f
pop edx
test ebx, ebx
jge 0x4e4165
xor ebx, ebx
jmp 0x4e416d
cmp ebx, 0x3f
jle 0x4e416d
push 0x3f
pop ebx
test eax, eax
jge 0x4e4175
xor eax, eax
jmp 0x4e417d
cmp eax, 0x1f
jle 0x4e417d
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 0x4e40bc
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4e4093
jmp 0x4e42db
cmp eax, 9
jne 0x4e42db
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 0x4e42db
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 0x4e42c9
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 + 0x67eb50]
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 0x4e4289
xor edx, edx
jmp 0x4e428f
cmp edx, edi
jle 0x4e428f
mov edx, edi
test eax, eax
jge 0x4e4297
xor eax, eax
jmp 0x4e429d
cmp eax, edi
jle 0x4e429d
mov eax, edi
test ebx, ebx
jge 0x4e42a5
xor ebx, ebx
jmp 0x4e42ab
cmp ebx, edi
jle 0x4e42ab
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 0x4e4201
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4e41db
cmp byte [esi + 0x68], 0
jbe 0x4e42fa
push dword [ebp - 0x38]
push dword [ebp - 0xc]
push dword [ebp - 0x20]
call fcn.004e1d90
add esp, 0xc
test eax, eax
jne 0x4e253f
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret