Function at 0x440a33
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 0x440a55
mov eax, dword [esi + 8]
jmp 0x440a5f
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 0x440a91
mov eax, dword [esi + 0x8588]
cmp dword [eax], ebx
je 0x440a86
mov eax, dword [esi + 8]
jmp 0x440a8a
mov eax, dword [eax + 0x24]
inc eax
sub eax, edx
mov dword [ebp - 0x24], eax
jmp 0x440a94
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + 0x8588]
cmp dword [ecx], ebx
je 0x440aa3
mov eax, dword [esi + 4]
jmp 0x440aa7
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 0x440ab8
xor eax, eax
jmp 0x440abb
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 0x440ae4
mov dword [ebp - 0x50], ebx
jmp 0x440aea
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 0x440b0c
movzx ecx, dl
mov eax, ecx
and eax, 2
and ecx, 1
sub eax, ecx
inc eax
jmp 0x440b16
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 0x440b39
cmp dl, al
je 0x440b39
mov dword [ebp - 0x5c], eax
jmp 0x440b3d
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 0x440bb2
test ebx, ebx
jne 0x440ba5
mov dword [ebp - 0xc], ecx
jmp 0x440bcd
dec ebx
neg ebx
sbb ebx, ebx
and ebx, 0xb
add ebx, 0x17
jmp 0x440bc1
cmp edx, 4
jb 0x440bc6
neg ebx
sbb ebx, ebx
and ebx, 0x1d
add ebx, 0x40
mov dword [ebp - 0xc], ebx
jmp 0x440bcd
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 0x440bfd
cmp edx, ecx
jb 0x440bfd
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x54], ecx
je 0x440bf8
cmp dword [ebp - 0x54], 2
jne 0x440bff
push 2
pop ecx
jmp 0x440bff
xor ecx, ecx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x2c], eax
cmp edx, 1
jbe 0x440c1a
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor eax, eax
inc eax
shl eax, cl
cmp eax, edx
jb 0x440c0b
cmp dword [esi + 0x40], 4
jge 0x440c25
mov ecx, dword [esi + 0x28]
jmp 0x440c28
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.0043a1c1
add esp, 4
test eax, eax
je 0x440c4d
or eax, 0xffffffff
jmp 0x442a02
xor edx, edx
cmp dword [ebp - 0x30], edx
jne 0x442a00
mov eax, dword [esi + 0x85d8]
shl eax, 4
cmp eax, dword [ebp - 0x14]
jbe 0x442a00
mov ecx, dword [edi + 0x24]
add ecx, 0x10
cmp eax, ecx
ja 0x442a00
cmp dword [ebp - 0x54], 2
je 0x440c88
cmp dword [ebp - 0x54], 1
jne 0x440ee3
cmp dword [ebp - 0x50], edx
je 0x440ee3
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 0x440d28
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 0x440cd6
mov ebx, dword [ebp - 0x14]
movzx edx, byte [edx + ebx + 0x5b3f40]
lea edx, [edx + edi*8]
jmp 0x440ce6
mov ebx, dword [ebp - 0x10]
shr ebx, 1
movzx edx, byte [edx + ebx*8 + 0x5b4040]
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 + 0x5b3f40]
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 0x440cb3
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, 0x10
jb 0x440ca0
cmp dword [ebp - 0x1c], 4
jne 0x440eda
cmp dword [ebp - 0x54], 1
jne 0x440df4
xor ebx, ebx
mov dword [ebp - 8], ebx
cmp dword [ebp - 0x18], ebx
jbe 0x440df4
mov edx, ebx
and ebx, 0xfffffff0
shl ebx, 4
and edx, 0xf
movzx edi, byte [edx + 0x5b3f40]
add edi, ebx
mov dword [ebp - 0x54], edx
movzx edx, byte [edx + 0x5b3f80]
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 0x440d5c
jmp 0x440df7
mov edx, dword [ebp - 0x68]
and dword [ebp - 0x54], 0
mov edi, dword [ebp - 0x18]
and dword [ebp - 8], 0
add edi, 0xfffffff8
je 0x440e9b
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 8]
and edi, 0xf
movzx edi, byte [edi + ebx + 0x5b3f40]
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 + 0x5b3f40]
add edi, dword [ebp - 0x40]
add dword [ebp - 8], 8
shl edi, 2
and edx, 0xf
movzx edx, byte [edx + ebx + 0x5b3f40]
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 0x440e0b
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 + 0x5b3f40]
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 0x440dfb
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 0x441527
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 0x441511
sub eax, 3
je 0x441511
dec eax
je 0x4413af
dec eax
je 0x44120d
dec eax
je 0x441511
dec eax
je 0x4410f0
dec eax
jne 0x4429e1
mov eax, dword [ebp - 0x28]
jmp 0x4410df
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 0x4410d9
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 + 0x5b3f40]
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 0x440ff0
mov byte [ebp - 2], 0
mov byte [edx], 0
jmp 0x44100d
mov dword [ebp - 0x5c], eax
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x441007
mov cl, byte [ebp - 0x5c]
mov byte [ebp - 2], cl
or al, 0x80
jmp 0x44100b
mov byte [ebp - 2], 1
mov byte [edx], al
mov ecx, dword [ebp - 0x68]
test ecx, ecx
jg 0x44101e
mov byte [ebp - 1], 0
mov byte [edx + 1], 0
jmp 0x44103d
mov dword [ebp - 0x5c], ecx
sar dword [ebp - 0x5c], 7
cmp dword [ebp - 0x5c], 1
jle 0x441036
mov al, byte [ebp - 0x5c]
mov byte [ebp - 1], al
or cl, 0x80
jmp 0x44103a
mov byte [ebp - 1], 1
mov byte [edx + 1], cl
test ebx, ebx
jg 0x441048
xor al, al
mov byte [edx + 2], al
jmp 0x44105e
mov ecx, ebx
sar ecx, 7
cmp ecx, 1
jle 0x441059
mov al, cl
or bl, 0x80
jmp 0x44105b
mov al, 1
mov byte [edx + 2], bl
mov bl, byte [ebp - 2]
movzx edi, bl
cmp bl, byte [ebp - 1]
ja 0x44106d
movzx edi, byte [ebp - 1]
movzx ecx, al
cmp edi, ecx
jle 0x441080
movzx ecx, bl
cmp bl, byte [ebp - 1]
ja 0x441080
movzx ecx, byte [ebp - 1]
mov byte [edx + 3], cl
cmp cl, bl
jbe 0x441095
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 0x4410af
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 0x4410c7
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 0x440f6b
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x440f42
jmp 0x4429e1
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4429e1
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 0x4411f6
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 + 0x5b3f40]
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 0x4411a9
xor eax, eax
jmp 0x4411b4
mov ecx, 0xff
cmp eax, ecx
jle 0x4411b4
mov eax, ecx
mov ecx, dword [ebp - 0x58]
mov byte [edi + ecx], al
mov eax, 0xff
test ebx, ebx
jge 0x4411c7
xor ebx, ebx
jmp 0x4411cd
cmp ebx, eax
jle 0x4411cd
mov ebx, eax
mov byte [edi + 1], bl
test edx, edx
jge 0x4411d8
xor edx, edx
jmp 0x4411de
cmp edx, eax
jle 0x4411de
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 0x441127
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x441101
jmp 0x4429e1
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x64], eax
jge 0x441221
mov eax, dword [esi + 0x28]
jmp 0x441224
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 0x4429e1
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 0x441398
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 + 0x5b3f40]
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 0x441336
xor ebx, ebx
jmp 0x44133c
cmp ebx, edx
jle 0x44133c
mov ebx, edx
mov byte [ecx], bl
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x441349
xor ebx, ebx
jmp 0x44134f
cmp ebx, edx
jle 0x44134f
mov ebx, edx
cmp dword [ebp - 0x70], 0
mov byte [ecx + 1], bl
jge 0x44135c
xor edx, edx
jmp 0x441364
cmp dword [ebp - 0x70], edx
jg 0x441364
mov edx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x50]
mov byte [ebx + ecx], dl
mov edx, dword [ebp - 0x6c]
test edx, edx
jge 0x441375
xor edx, edx
jmp 0x441382
cmp edx, 0xff
jle 0x441382
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 0x44126e
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x44123a
jmp 0x4429e1
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 0x4429e1
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 0x4414fa
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 + 0x5b3f40]
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 0x4414a7
xor eax, eax
jmp 0x4414ad
cmp eax, ebx
jle 0x4414ad
mov eax, ebx
mov byte [ecx], al
test edx, edx
jge 0x4414b7
xor edx, edx
jmp 0x4414bd
cmp edx, ebx
jle 0x4414bd
mov edx, ebx
mov byte [ecx + 1], dl
test edi, edi
jge 0x4414c8
xor eax, eax
jmp 0x4414d0
cmp edi, ebx
mov eax, ebx
jg 0x4414d0
mov eax, edi
cmp dword [ebp - 0x60], 0
mov byte [ecx + 2], al
jge 0x4414dd
xor ebx, ebx
jmp 0x4414e5
cmp dword [ebp - 0x60], ebx
jg 0x4414e5
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 0x4413ff
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4413d9
jmp 0x4429e1
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.0043fcde
mov edi, dword [ebp - 0x28]
add esp, 0x10
cmp dword [ebp - 0x64], 2
jne 0x4419f0
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 0x4419da
sub eax, 3
je 0x4419da
dec eax
je 0x441854
dec eax
je 0x44169d
dec eax
je 0x4419da
dec eax
jne 0x4429e1
mov eax, dword [ebp - 0x28]
mov edx, eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jae 0x4429e1
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 0x441686
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 + 0x5b3f40]
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 0x441647
xor edx, edx
jmp 0x44164d
cmp edx, ecx
jle 0x44164d
mov edx, ecx
mov word [ebx], dx
test edi, edi
jge 0x441658
xor edi, edi
jmp 0x44165e
cmp edi, ecx
jle 0x44165e
mov edi, ecx
mov word [ebx + 2], di
test eax, eax
jge 0x44166a
xor eax, eax
jmp 0x441670
cmp eax, ecx
jle 0x441670
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 0x4415b4
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x44158e
jmp 0x4429e1
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x50], eax
jge 0x4416b1
mov eax, dword [esi + 0x28]
jmp 0x4416b4
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 0x4429e1
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 0x44183d
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 + 0x5b3f40]
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 0x4417d8
xor ebx, ebx
jmp 0x4417de
cmp ebx, ecx
jle 0x4417de
mov ebx, ecx
mov word [edi], bx
mov ebx, dword [ebp - 0x74]
test ebx, ebx
jge 0x4417ec
xor ebx, ebx
jmp 0x4417f2
cmp ebx, ecx
jle 0x4417f2
mov ebx, ecx
cmp dword [ebp - 0x70], 0
mov word [edi + 2], bx
jge 0x441800
xor ecx, ecx
jmp 0x441808
cmp dword [ebp - 0x70], ecx
jg 0x441808
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 0x441823
mov ecx, 0xffff
cmp dword [ebp - 0x6c], ecx
jg 0x441823
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 0x4416fe
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4416ca
jmp 0x4429e1
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 0x4429e1
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 0x4419c3
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 + 0x5b3f40]
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 0x44196b
xor eax, eax
jmp 0x441971
cmp eax, ecx
jle 0x441971
mov eax, ecx
mov ebx, dword [ebp - 0x5c]
mov word [ebx], ax
test edx, edx
jge 0x44197f
xor edx, edx
jmp 0x441985
cmp edx, ecx
jle 0x441985
mov edx, ecx
mov word [ebx + 2], dx
test edi, edi
jge 0x441991
xor edi, edi
jmp 0x441997
cmp edi, ecx
jle 0x441997
mov edi, ecx
cmp dword [ebp - 0x58], 0
mov word [ebx + 4], di
jge 0x4419a5
xor ecx, ecx
jmp 0x4419ad
cmp dword [ebp - 0x58], ecx
jg 0x4419ad
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 0x4418b1
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x44188b
jmp 0x4429e1
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0xc]
push esi
call fcn.0043fcde
mov edi, dword [ebp - 0x28]
add esp, 0x10
mov eax, dword [ebp - 0x64]
push 3
pop ecx
cmp eax, ecx
jne 0x441e77
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x44249d
sub eax, ecx
je 0x44249d
dec eax
je 0x441d07
dec eax
je 0x441b5a
dec eax
je 0x44249d
dec eax
jne 0x4429e1
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x441b43
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 + 0x5b3f40]
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 0x441af9
mov eax, ecx
jmp 0x441b05
cmp eax, 0x7fff
jle 0x441b05
mov eax, 0x7fff
cmp ebx, ecx
mov word [edi], ax
mov eax, 0x7fff
jge 0x441b15
mov ebx, ecx
jmp 0x441b1b
cmp ebx, eax
jle 0x441b1b
mov ebx, eax
cmp edx, ecx
mov word [edi + 2], bx
jge 0x441b27
mov edx, ecx
jmp 0x441b2d
cmp edx, eax
jle 0x441b2d
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 0x441a69
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x441a3c
jmp 0x4429e1
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x54], eax
jge 0x441b6e
mov eax, dword [esi + 0x28]
jmp 0x441b71
mov eax, dword [esi + 0x30]
add eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x441cf0
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 + 0x5b3f40]
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 0x441c92
mov eax, edx
jmp 0x441c98
cmp eax, ebx
jle 0x441c98
mov eax, ebx
mov ecx, dword [ebp - 0x64]
mov word [ecx], ax
mov eax, dword [ebp - 0x74]
cmp eax, edx
jge 0x441ca9
mov eax, edx
jmp 0x441caf
cmp eax, ebx
jle 0x441caf
mov eax, ebx
cmp edi, edx
mov word [ecx + 2], ax
jge 0x441cbb
mov edi, edx
jmp 0x441cc1
cmp edi, ebx
jle 0x441cc1
mov edi, ebx
cmp dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x50]
mov word [ecx + eax*2], di
jge 0x441cd1
mov ebx, edx
jmp 0x441cd9
cmp dword [ebp - 0x6c], ebx
jg 0x441cd9
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 0x441bb7
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x441b87
jmp 0x4429e1
mov eax, dword [esi + 0x866c]
mov dword [ebp - 0x68], eax
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x441e60
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 + 0x5b3f40]
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 0x441e01
mov edi, ecx
jmp 0x441e0c
mov ebx, 0x7fff
cmp edi, ebx
jle 0x441e0c
mov edi, ebx
cmp eax, ecx
mov ebx, dword [ebp - 0x64]
mov word [ebx], di
mov edi, 0x7fff
jge 0x441e1f
mov eax, ecx
jmp 0x441e25
cmp eax, edi
jle 0x441e25
mov eax, edi
cmp edx, ecx
mov word [ebx + 2], ax
jge 0x441e31
mov edx, ecx
jmp 0x441e37
cmp edx, edi
jle 0x441e37
mov edx, edi
cmp dword [ebp - 0x5c], ecx
mov word [ebx + 4], dx
jl 0x441e4a
cmp dword [ebp - 0x5c], edi
mov ecx, edi
jg 0x441e4a
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 0x441d4b
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x441d1e
jmp 0x4429e1
cmp eax, 4
jne 0x441fb9
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x44249d
sub eax, ecx
je 0x44249d
sub eax, ecx
je 0x44249d
dec eax
jne 0x4429e1
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x441fa2
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 + 0x5b3f40]
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 0x441ed7
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x441eb1
jmp 0x4429e1
cmp eax, 5
jne 0x4420fd
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 0x44249d
sub eax, 3
je 0x44249d
sub eax, 3
je 0x44249d
dec eax
jne 0x4429e1
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x4420e6
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 + 0x5b3f40]
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 0x442034
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x44200e
jmp 0x4429e1
cmp eax, 6
jne 0x442228
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x44249d
sub eax, ecx
je 0x44249d
sub eax, ecx
je 0x44249d
dec eax
jne 0x4429e1
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x442211
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 + 0x5b3f40]
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 0x442164
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x442137
jmp 0x4429e1
cmp eax, 7
jne 0x4424b4
mov eax, dword [ebp - 0x50]
sub eax, 0
je 0x44249d
sub eax, ecx
je 0x44249d
sub eax, ecx
je 0x44249d
dec eax
jne 0x4429e1
mov edx, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x442486
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 + 0x5b3f40]
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 0x442358
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 0x442382
cmp ebx, 1
jle 0x44237a
test eax, eax
jle 0x44237a
add eax, eax
dec ebx
cmp eax, ecx
jl 0x44236a
cmp eax, ecx
jge 0x442382
xor ebx, ebx
jmp 0x442384
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 0x4423c2
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 0x4423e9
cmp edi, 1
jle 0x4423e1
test eax, eax
jle 0x4423e1
add eax, eax
dec edi
cmp eax, ecx
jl 0x4423d1
cmp eax, ecx
jge 0x4423e9
xor edi, edi
jmp 0x4423eb
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 0x44242d
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 0x442454
cmp edi, 1
jle 0x44244c
test eax, eax
jle 0x44244c
add eax, eax
dec edi
cmp eax, ecx
jl 0x44243c
cmp eax, ecx
jge 0x442454
xor edi, edi
jmp 0x442456
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 0x4422aa
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x442262
jmp 0x4429e1
push dword [ebp - 0x34]
mov eax, edi
push ebx
push dword [ebp - 0xc]
push esi
call fcn.0043fcde
add esp, 0x10
jmp 0x4429e1
test eax, eax
jne 0x44264a
cmp dword [esi + 0x40], 4
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x10], edi
jge 0x442588
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x442571
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 + 0x5b3f40]
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 0x442500
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x4424d8
jmp 0x4429e1
cmp edi, dword [ebp - 0x24]
jae 0x4429e1
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 0x442633
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 0x4425d5
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 + 0x5b3f40]
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 0x4425d2
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jb 0x442591
jmp 0x4429e1
cmp eax, 8
jne 0x442776
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 0x4429e1
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 0x44275f
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 + 0x5b3f40]
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 0x442718
xor edx, edx
jmp 0x442720
cmp edx, 0x1f
jle 0x442720
push 0x1f
pop edx
test eax, eax
jge 0x442728
xor eax, eax
jmp 0x442730
cmp eax, 0x1f
jle 0x442730
push 0x1f
pop eax
test ebx, ebx
jge 0x442738
xor ebx, ebx
jmp 0x442740
cmp ebx, 0x1f
jle 0x442740
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 0x442695
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x44266f
jmp 0x4429e1
cmp eax, 0xa
jne 0x4428b9
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 0x4429e1
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 0x4428a2
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 + 0x5b3f40]
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 0x442858
xor edx, edx
jmp 0x442863
mov edx, dword [ebp - 0x68]
cmp edx, 0x1f
jle 0x442863
push 0x1f
pop edx
test ebx, ebx
jge 0x44286b
xor ebx, ebx
jmp 0x442873
cmp ebx, 0x3f
jle 0x442873
push 0x3f
pop ebx
test eax, eax
jge 0x44287b
xor eax, eax
jmp 0x442883
cmp eax, 0x1f
jle 0x442883
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 0x4427c2
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jb 0x442799
jmp 0x4429e1
cmp eax, 9
jne 0x4429e1
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 0x4429e1
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 0x4429cf
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 + 0x5b3f40]
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 0x44298f
xor edx, edx
jmp 0x442995
cmp edx, edi
jle 0x442995
mov edx, edi
test eax, eax
jge 0x44299d
xor eax, eax
jmp 0x4429a3
cmp eax, edi
jle 0x4429a3
mov eax, edi
test ebx, ebx
jge 0x4429ab
xor ebx, ebx
jmp 0x4429b1
cmp ebx, edi
jle 0x4429b1
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 0x442907
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jb 0x4428e1
cmp byte [esi + 0x68], 0
jbe 0x442a00
push dword [ebp - 0x38]
push dword [ebp - 0xc]
push dword [ebp - 0x20]
call fcn.00440496
add esp, 0xc
test eax, eax
jne 0x440c45
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret