Function at 0x5d8180
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x78
push ebx
mov ebx, dword [esp + 0x8c]
xor eax, eax
test ebx, ebx
sete al
push ebp
mov ebp, dword [esp + 0x94]
xor ecx, ecx
test ebp, ebp
sete cl
or eax, ecx
jne 0x5f01bc
mov eax, dword [0x8e7f90]
mov ecx, dword [0x8e7f98]
mov edx, dword [0x8e7f8c]
mov dword [esp + 0x74], eax
mov eax, dword [0x8e7f94]
sub eax, 1
sub ecx, 1
test ebx, ebx
mov dword [esp + 0x70], edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
jge 0x5d81e2
neg ebx
mov dword [esp + 0x90], ebx
test ebp, ebp
jge 0x5d81ef
neg ebp
mov dword [esp + 0x94], ebp
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
push esi
push edi
mov edi, dword [0x8e80c0]
mov esi, edi
shl esi, 0xa
shl edi, 0xb
mov dword [esp + 0x74], eax
mov eax, dword [eax + 0xc]
add esi, 0x9b7168
add edi, 0x9f7568
cmp dword [esp + 0xa4], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
je 0x5e37f7
push 0
add ecx, 1
push 0x69d8f9
push ecx
call fcn.004e0700
add esp, 0xc
test eax, eax
mov dword [esp + 0x38], eax
je case.0x5ecb10.5
cmp ebx, ebp
jl 0x5ddd87
mov eax, ebx
imul eax, ebx
cdq
idiv dword [esp + 0x9c]
lea ecx, [ebx + ebx]
lea edx, [ebx*4]
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], eax
mov eax, 3
sub eax, ecx
mov dword [esp + 0x18], eax
mov eax, 3
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + 0x1c]
sub eax, ebp
je 0x5dae5d
sub eax, 1
jne case.0x5e09da.5
mov ecx, dword [0x8e80e4]
mov edx, ecx
and edx, 0xffffff
cmp edx, 0xffffff
je 0x5d831b
movzx eax, byte [esp + 0xa2]
movzx edx, byte [0x8e80e6]
imul eax, edx
sar eax, 8
mov byte [esp + 0xa2], al
movzx eax, byte [esp + 0xa1]
movzx edx, ch
imul eax, edx
sar eax, 8
mov byte [esp + 0xa1], al
movzx eax, byte [esp + 0xa0]
movzx ecx, cl
imul eax, ecx
sar eax, 8
mov byte [esp + 0xa0], al
mov eax, dword [0x8e80bc]
cmp eax, 0xb
ja case.0x5e09da.5
jmp dword [eax*4 + 0x5f01c4]
mov eax, dword [0x8e80c0]
cmp eax, 0xff
jne 0x5d87e6
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
lea edi, [eax + ecx]
mov esi, eax
sub esi, ecx
mov ecx, dword [esp + 0x94]
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x44], edi
setl al
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
xor ecx, ecx
or eax, edx
cmp esi, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
setg cl
or eax, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x84]
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + edx]
or eax, ecx
mov ecx, dword [esp + 0xa0]
jne 0x5d83ea
mov eax, dword [esp + 0x78]
cmp esi, eax
jge 0x5d83b4
mov esi, eax
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
cmp eax, edi
jle 0x5d83c5
mov eax, edi
mov edi, dword [esp + 0x38]
mov byte [edi + edx], 1
mov edi, dword [esp + 0x1c]
imul edi, edx
sub eax, esi
add eax, 1
add edi, dword [esp + 0x20]
lea esi, [edi + esi*4]
mov dword [esi], ecx
add esi, 4
sub eax, 1
jne 0x5d83e0
mov edi, dword [esp + 0x18]
test edi, edi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5d8433
mov ebp, dword [esp + 0x9c]
cmp ebp, esi
jl 0x5d841a
mov eax, 1
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], eax
jmp 0x5d841e
mov eax, dword [esp + 0x34]
lea ecx, [eax*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5d849e
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
jl 0x5d8462
lea eax, [ebx*4]
sub edi, eax
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], edi
jmp 0x5d849e
mov ebp, dword [esp + 0x9c]
cmp ebp, esi
jl 0x5d847e
mov eax, 1
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], eax
jmp 0x5d8482
mov eax, dword [esp + 0x34]
mov ecx, eax
sub ecx, ebx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test ebx, ebx
jle 0x5d873e
mov edi, dword [esp + 0x90]
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
lea ecx, [eax + edx]
mov dword [esp + 0x68], ecx
imul ecx, dword [esp + 0x1c]
add edi, ebx
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
sub edx, eax
sub edi, ebx
neg ecx
mov dword [esp + 0x64], edx
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x60], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x54], edx
cmp dword [esp + 0x2c], 0
je 0x5d8643
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x5c]
xor edx, edx
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x68]
setg cl
xor eax, eax
or edx, ecx
mov ecx, dword [esp + 0x78]
cmp esi, ecx
mov ecx, dword [esp + 0x38]
setl al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x84]
setg al
or edx, eax
movzx eax, byte [edi + ecx]
or edx, eax
jne 0x5d859a
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x60], eax
jge 0x5d855d
mov dword [esp + 0x24], eax
jmp 0x5d8561
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x5c], edx
jle 0x5d8570
mov esi, edx
mov edx, dword [esp + 0x58]
mov byte [edi + ecx], 1
mov ecx, esi
sub ecx, eax
lea eax, [edx + eax*4]
mov edx, dword [esp + 0xa0]
add ecx, 1
add eax, dword [esp + 0x20]
lea ecx, [ecx]
mov dword [eax], edx
add eax, 4
sub ecx, 1
jne 0x5d8590
mov edi, dword [esp + 0x64]
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x84]
mov edi, dword [esp + 0x24]
setg dl
xor eax, eax
or ecx, edx
cmp esi, dword [esp + 0x78]
setl al
xor edx, edx
or ecx, eax
cmp edi, dword [esp + 0x80]
mov eax, dword [esp + 0x64]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne 0x5d8637
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5d85ec
mov edi, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5d85f9
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov byte [eax + ecx], 1
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xa0]
sub esi, edi
mov edx, 1
lea eax, [eax + edi*4]
add esi, edx
add eax, dword [esp + 0x20]
lea esp, [esp]
mov dword [eax], ecx
add eax, 4
sub esi, edx
jne 0x5d8620
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x60]
jmp 0x5d8648
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x60]
mov edx, 1
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5d86a7
add ebp, dword [esp + 0x9c]
cmp ebp, esi
jl 0x5d868b
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x68], edx
add dword [esp + 0x58], ecx
add eax, edx
mov edx, dword [esp + 0x3c]
add dword [esp + 0x54], edx
mov ecx, 1
sub dword [esp + 0x64], ecx
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x18]
lea ecx, [eax*4]
add dword [esp + 0x14], ecx
lea edx, [edx + ecx + 2]
mov dword [esp + 0x18], edx
jmp 0x5d872f
sub dword [esp + 0x5c], edx
add edi, edx
sub ebx, edx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x60], edi
jl 0x5d86d6
mov ecx, dword [esp + 0x74]
sub ecx, 4
sub dword [esp + 0x18], ecx
mov edx, 2
sub edx, ecx
add dword [esp + 0x14], edx
mov dword [esp + 0x74], ecx
jmp 0x5d872f
add ebp, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp ebp, esi
jl 0x5d870f
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x68], edx
add dword [esp + 0x58], ecx
add eax, edx
mov edx, dword [esp + 0x3c]
add dword [esp + 0x54], edx
mov ecx, 1
sub dword [esp + 0x64], ecx
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
mov edx, eax
sub edx, ebx
add edx, edx
add edx, edx
lea ecx, [ecx + edx + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea edx, [ecx + edx + 2]
mov dword [esp + 0x14], edx
test ebx, ebx
jg 0x5d84f4
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
sub edx, eax
mov eax, edx
mov esi, ecx
lea edi, [ebx + ecx]
xor ecx, ecx
sub esi, ebx
cmp eax, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp esi, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5d879a
mov esi, ecx
mov ecx, dword [esp + 0x80]
cmp edi, ecx
jle 0x5d87a7
mov edi, ecx
mov ecx, dword [esp + 0x38]
mov byte [eax + ecx], 1
imul eax, dword [esp + 0x1c]
sub edi, esi
add edi, 1
add eax, dword [esp + 0x20]
lea eax, [eax + esi*4]
mov edx, dword [esp + 0xa0]
mov dword [eax], edx
add eax, 4
sub edi, 1
jne 0x5d87c0
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
test eax, eax
je case.0x5e09da.5
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov edi, esi
sub edi, eax
add esi, eax
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl al
xor edx, edx
cmp esi, dword [esp + 0x78]
setl dl
xor ecx, ecx
or eax, edx
cmp edi, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x38]
setg cl
or eax, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x84]
setg cl
or eax, ecx
movzx ecx, byte [edi + edx]
or eax, ecx
jne 0x5d88f7
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5d8862
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5d886f
mov esi, ecx
mov ecx, dword [esp + 0x1c]
imul ecx, edx
sub esi, eax
add esi, 1
add ecx, dword [esp + 0x20]
mov byte [edi + edx], 1
lea eax, [ecx + eax*4]
movzx ecx, byte [esp + 0xa0]
mov edi, esi
movzx esi, byte [eax]
mov edx, ecx
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax], dl
movzx esi, byte [eax + 1]
movzx edx, byte [esp + 0xa1]
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax + 1], dl
movzx esi, byte [eax + 2]
movzx edx, byte [esp + 0xa2]
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax + 2], dl
add eax, 4
sub edi, 1
jne 0x5d8890
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], 0
jge 0x5d894a
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5d8934
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5d89bc
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
jl 0x5d8975
lea eax, [ebx*4]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
jmp 0x5d89bc
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5d899e
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5d8d0d
mov eax, dword [esp + 0x90]
add eax, ebx
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x34]
lea edi, [ecx + edx]
mov dword [esp + 0x5c], eax
mov eax, edx
sub eax, ecx
mov ecx, edi
imul ecx, esi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x58], ecx
mov ecx, esi
sub edi, ebx
neg ecx
mov dword [esp + 0x64], eax
imul eax, esi
mov dword [esp + 0x60], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x54], eax
cmp dword [esp + 0x2c], 0
je 0x5d8c07
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x5c]
xor edx, edx
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x68]
setg cl
xor eax, eax
or edx, ecx
mov ecx, dword [esp + 0x78]
cmp esi, ecx
mov ecx, dword [esp + 0x38]
setl al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x84]
setg al
or edx, eax
movzx eax, byte [edi + ecx]
or edx, eax
jne 0x5d8b16
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x60], eax
jge 0x5d8a81
mov dword [esp + 0x24], eax
jmp 0x5d8a85
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x5c], edx
jle 0x5d8a94
mov esi, edx
mov byte [edi + ecx], 1
mov ecx, dword [esp + 0x58]
movzx edi, byte [esp + 0xa0]
mov ebp, esi
sub ebp, eax
lea ecx, [ecx + eax*4]
add ebp, 1
add ecx, dword [esp + 0x20]
movzx edx, byte [ecx]
mov eax, edi
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx], al
movzx edx, byte [ecx + 1]
movzx eax, byte [esp + 0xa1]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 1], al
movzx edx, byte [ecx + 2]
movzx eax, byte [esp + 0xa2]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 2], al
add ecx, 4
sub ebp, 1
jne 0x5d8ab2
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x64]
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x84]
mov edi, dword [esp + 0x24]
setg dl
xor eax, eax
or ecx, edx
cmp esi, dword [esp + 0x78]
setl al
xor edx, edx
or ecx, eax
cmp edi, dword [esp + 0x80]
mov eax, dword [esp + 0x64]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne 0x5d8bff
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5d8b6c
mov edi, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5d8b79
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
movzx ebp, byte [esp + 0xa0]
sub esi, edi
mov byte [eax + ecx], 1
lea ecx, [edx + edi*4]
movzx edi, byte [esp + 0xa1]
add esi, 1
add ecx, dword [esp + 0x20]
movzx edx, byte [ecx]
mov eax, ebp
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx], al
movzx edx, byte [ecx + 1]
mov eax, edi
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 1], al
movzx edx, byte [ecx + 2]
movzx eax, byte [esp + 0xa2]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 2], al
add ecx, 4
sub esi, 1
jne 0x5d8ba1
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x2c], 0
jge 0x5d8c68
add ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5d8c53
mov esi, dword [esp + 0x1c]
add dword [esp + 0x34], 1
add dword [esp + 0x68], 1
add dword [esp + 0x58], esi
add dword [esp + 0x54], ecx
sub dword [esp + 0x64], 1
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea edx, [edx + eax + 2]
jmp 0x5d8cfa
mov esi, dword [esp + 0x14]
sub dword [esp + 0x5c], 1
add edi, 1
sub ebx, 1
test esi, esi
mov dword [esp + 0x60], edi
jl 0x5d8c9f
mov eax, dword [esp + 0x74]
sub eax, 4
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, 2
sub edx, eax
add esi, edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], esi
jmp 0x5d8cfe
add ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
sub dword [esp + 0x74], 4
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5d8ce4
mov edx, dword [esp + 0x1c]
add dword [esp + 0x58], edx
add dword [esp + 0x34], 1
add dword [esp + 0x68], 1
add dword [esp + 0x54], ecx
sub dword [esp + 0x64], 1
mov edx, dword [esp + 0x18]
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea edx, [edx + eax + 2]
lea eax, [esi + eax + 2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jg 0x5d8a14
mov edx, dword [esp + 0x94]
sub edx, dword [esp + 0x34]
mov eax, dword [esp + 0x90]
xor ecx, ecx
mov ebp, eax
sub ebp, ebx
lea esi, [ebx + eax]
mov eax, edx
cmp eax, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp ebp, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5d8d6b
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5d8d78
mov esi, ecx
mov ecx, dword [esp + 0x38]
movzx edi, byte [esp + 0xa0]
movzx edx, byte [esp + 0xa2]
mov byte [eax + ecx], 1
imul eax, dword [esp + 0x1c]
sub esi, ebp
add esi, 1
add eax, dword [esp + 0x20]
lea eax, [eax + ebp*4]
movzx ebp, byte [esp + 0xa1]
lea esp, [esp]
movzx ecx, byte [eax]
mov ebx, edi
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax], bl
movzx ecx, byte [eax + 1]
mov ebx, ebp
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 1], bl
movzx ecx, byte [eax + 2]
mov ebx, edx
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
sub esi, 1
jne 0x5d8db0
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
mov ebp, dword [esp + 0x94]
xor edx, edx
mov eax, edi
sub eax, ecx
add edi, ecx
cmp ebp, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
setl dl
xor eax, eax
cmp edi, dword [esp + 0x78]
setl al
xor ecx, ecx
or edx, eax
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x80]
setg cl
or edx, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x84]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x38]
movzx eax, byte [ecx + ebp]
or edx, eax
jne 0x5d8f52
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp eax, edx
jge 0x5d8e97
mov eax, edx
mov edx, dword [esp + 0x80]
cmp edi, edx
jle 0x5d8ea4
mov edi, edx
movzx edx, byte [esp + 0xa0]
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x1c]
imul ecx, ebp
sub edi, eax
add edi, 1
add ecx, dword [esp + 0x20]
mov dword [esp + 0x40], edi
lea edi, [ecx + eax*4]
movzx ecx, byte [esp + 0xa1]
lea eax, [esi + edx*4]
mov dword [esp + 0x54], eax
movzx eax, byte [esp + 0xa2]
lea edx, [esi + ecx*4]
lea ecx, [esi + eax*4]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
lea esp, [esp]
mov edx, dword [esp + 0x54]
mov al, byte [edx]
mov ecx, dword [esp + 0x4c]
mov dl, byte [ecx]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x50]
mov cl, byte [eax]
mov eax, dword [edi]
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], dl
mov ecx, dword [esp + 0x10]
and ecx, 0xfefeff
mov edx, eax
or eax, dword [esp + 0x10]
and edx, 0xfefeff
add edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and eax, 0x10100
or ecx, eax
or ecx, edx
mov dword [edi], ecx
mov ebp, 1
add edi, 4
sub dword [esp + 0x40], ebp
jne 0x5d8ef0
jmp 0x5d8f57
mov ebp, 1
mov edx, dword [esp + 0x18]
test edx, edx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x2c], 0
jge 0x5d8f9a
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5d8f88
sub eax, ecx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea edx, [edx + eax + 2]
jmp 0x5d8ffc
mov ebx, dword [esp + 0x98]
mov edi, dword [esp + 0x14]
add ebx, 0xffffffff
test edi, edi
mov dword [esp + 0x48], ebx
jl 0x5d8fc8
lea eax, [ebx*4]
mov ecx, 2
sub ecx, eax
sub edx, eax
add edi, ecx
mov dword [esp + 0x14], edi
jmp 0x5d8ffc
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5d8fe6
sub eax, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea edx, [edx + eax + 2]
lea eax, [edi + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
mov dword [esp + 0x18], edx
jle 0x5d93bb
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
lea ecx, [edx + eax]
mov dword [esp + 0x58], ecx
sub eax, edx
mov edx, dword [esp + 0x1c]
imul ecx, edx
mov dword [esp + 0x68], ecx
mov ecx, edi
sub ecx, ebx
mov dword [esp + 0x60], ecx
mov ecx, edx
neg ecx
mov dword [esp + 0x5c], eax
imul eax, edx
lea ebp, [ebx + edi]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x6c], eax
nop
test ebp, ebp
je 0x5d92bf
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x7c]
xor ecx, ecx
cmp dword [esp + 0x58], edx
mov dword [esp + 0x44], eax
setl cl
xor edx, edx
cmp dword [esp + 0x60], edi
mov edi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp eax, edi
mov edi, dword [esp + 0x84]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x58], edi
mov edi, dword [esp + 0x38]
setg dl
or ecx, edx
mov edx, dword [esp + 0x58]
movzx edx, byte [edx + edi]
or ecx, edx
jne 0x5d91a8
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x60], ecx
jge 0x5d90da
mov dword [esp + 0x24], ecx
jmp 0x5d90de
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x64], edx
jle 0x5d90f1
mov eax, edx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x58]
mov byte [edx + edi], 1
mov edx, dword [esp + 0x68]
lea ebp, [edx + ecx*4]
sub eax, ecx
movzx ecx, byte [esp + 0xa0]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa1]
mov dword [esp + 0x54], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa2]
mov dword [esp + 0x4c], edx
lea edx, [esi + ecx*4]
add eax, 1
add ebp, dword [esp + 0x20]
mov dword [esp + 0x50], edx
jmp 0x5d9140
mov ecx, dword [esp + 0x54]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x10], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x11], dl
movzx edx, byte [ecx]
mov byte [esp + 0x12], dl
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
and ecx, 0xfefeff
mov edi, edx
or edx, dword [esp + 0x10]
and edi, 0xfefeff
add edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and edx, 0x10100
or ecx, edx
or ecx, edi
mov dword [ebp], ecx
add ebp, 4
sub eax, 1
jne 0x5d9140
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
xor edx, edx
cmp dword [esp + 0x5c], ecx
setl dl
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x80]
setg cl
or edx, ecx
xor ecx, ecx
cmp eax, dword [esp + 0x78]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x38]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [ecx + edi]
or edx, ecx
jne 0x5d92bf
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp ecx, edx
jge 0x5d9206
mov ecx, edx
mov edx, dword [esp + 0x80]
cmp eax, edx
jle 0x5d9213
mov eax, edx
mov edx, dword [esp + 0x5c]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
lea ebp, [eax + ecx*4]
movzx ecx, byte [esp + 0xa0]
movzx eax, byte [esp + 0xa1]
add ebp, dword [esp + 0x20]
mov byte [edx + edi], 1
lea edx, [esi + ecx*4]
mov dword [esp + 0x54], edx
movzx edx, byte [esp + 0xa2]
lea ecx, [esi + eax*4]
lea eax, [esi + edx*4]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
lea esp, [esp]
mov ecx, dword [esp + 0x54]
mov dl, byte [ecx]
mov eax, dword [esp + 0x4c]
mov cl, byte [eax]
mov byte [esp + 0x10], dl
mov edx, dword [esp + 0x50]
mov al, byte [edx]
mov edx, dword [ebp]
mov byte [esp + 0x11], cl
mov byte [esp + 0x12], al
mov ecx, dword [esp + 0x10]
and ecx, 0xfefeff
mov edi, edx
or edx, dword [esp + 0x10]
and edi, 0xfefeff
add edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov eax, ecx
shr eax, 8
sub ecx, eax
and edx, 0x10100
or ecx, edx
or ecx, edi
mov dword [ebp], ecx
add ebp, 4
sub dword [esp + 0x40], 1
jne 0x5d9260
mov edi, dword [esp + 0x18]
xor ebp, ebp
test edi, edi
jge 0x5d9318
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5d9307
mov edx, dword [esp + 0x1c]
add dword [esp + 0x68], edx
mov edx, dword [esp + 0x3c]
add dword [esp + 0x6c], edx
mov ebp, 1
add dword [esp + 0x34], ebp
add dword [esp + 0x58], ebp
sub dword [esp + 0x5c], ebp
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
jmp 0x5d93ab
mov edx, dword [esp + 0x14]
mov eax, 1
add dword [esp + 0x60], eax
sub dword [esp + 0x64], eax
sub ebx, eax
test edx, edx
mov dword [esp + 0x48], ebx
jl 0x5d9353
mov eax, dword [esp + 0x74]
sub eax, 4
mov ecx, 2
sub edi, eax
sub ecx, eax
add edx, ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
jmp 0x5d93b3
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
sub dword [esp + 0x74], 4
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5d9399
mov ebp, dword [esp + 0x1c]
add dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x3c]
add dword [esp + 0x6c], ebp
add dword [esp + 0x34], 1
add dword [esp + 0x58], 1
sub dword [esp + 0x5c], 1
sub eax, ecx
mov dword [esp + 0x28], eax
mov ebp, 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea edx, [edx + eax + 2]
mov dword [esp + 0x14], edx
lea ecx, [edi + eax + 2]
mov dword [esp + 0x18], ecx
test ebx, ebx
jg 0x5d9060
mov eax, dword [esp + 0x90]
xor ecx, ecx
mov ebp, eax
lea edi, [ebx + eax]
mov eax, dword [esp + 0x94]
sub eax, dword [esp + 0x34]
sub ebp, ebx
cmp eax, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp ebp, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5d941e
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp edi, ecx
jle 0x5d942b
mov edi, ecx
mov ecx, dword [esp + 0x38]
movzx edx, byte [esp + 0xa0]
mov byte [eax + ecx], 1
imul eax, dword [esp + 0x1c]
movzx ecx, byte [esp + 0xa1]
sub edi, ebp
add edi, 1
add eax, dword [esp + 0x20]
mov ebx, edi
lea edi, [eax + ebp*4]
lea eax, [esi + edx*4]
mov dword [esp + 0x54], eax
movzx eax, byte [esp + 0xa2]
lea edx, [esi + ecx*4]
lea ecx, [esi + eax*4]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x54]
mov al, byte [edx]
mov ecx, dword [esp + 0x4c]
mov dl, byte [ecx]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x50]
mov cl, byte [eax]
mov byte [esp + 0x11], dl
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov ebp, dword [esp + 0x10]
mov edx, ecx
mov eax, ebp
and eax, 0xfefeff
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov esi, eax
shr esi, 8
or ecx, ebp
sub eax, esi
and ecx, 0x10100
or eax, ecx
or eax, edx
mov dword [edi], eax
add edi, 4
sub ebx, 1
jne 0x5d9473
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
xor edx, edx
mov ebp, edi
sub ebp, eax
add edi, eax
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], ebp
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x78]
setl cl
xor eax, eax
or edx, ecx
cmp ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x94]
mov ebp, dword [esp + 0x38]
setg al
or edx, eax
xor eax, eax
cmp ecx, dword [esp + 0x84]
setg al
or edx, eax
movzx eax, byte [ecx + ebp]
or edx, eax
jne 0x5d9608
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp eax, edx
jge 0x5d9562
mov eax, edx
mov edx, dword [esp + 0x80]
cmp edi, edx
jle 0x5d956f
mov edi, edx
mov edx, dword [esp + 0x1c]
imul edx, ecx
sub edi, eax
add edi, 1
add edx, dword [esp + 0x20]
mov byte [ecx + ebp], 1
lea ecx, [edx + eax*4]
movzx eax, byte [esp + 0xa0]
lea edx, [esi + eax*4]
movzx eax, byte [esp + 0xa1]
mov dword [esp + 0x54], edx
lea edx, [esi + eax*4]
movzx eax, byte [esp + 0xa2]
mov dword [esp + 0x4c], edx
lea edx, [esi + eax*4]
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x54]
movzx edx, byte [eax]
mov eax, dword [esp + 0x4c]
mov byte [esp + 0x10], dl
movzx edx, byte [eax]
mov eax, dword [esp + 0x50]
mov byte [esp + 0x11], dl
movzx edx, byte [eax]
mov byte [esp + 0x12], dl
mov edx, dword [ecx]
mov eax, dword [esp + 0x10]
and eax, 0xfefefeff
or edx, 0x1010100
sub edx, eax
mov eax, edx
and eax, 0x1010100
mov ebp, eax
shr ebp, 8
sub eax, ebp
and eax, edx
mov dword [ecx], eax
add ecx, 4
sub edi, 1
jne 0x5d95b3
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x1c]
xor ebp, ebp
cmp dword [esp + 0x18], ebp
jge 0x5d9657
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x30]
cmp eax, edx
mov dword [esp + 0x28], eax
jl 0x5d963a
sub eax, edx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov ebp, 1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea edx, [edx + eax + 2]
mov dword [esp + 0x18], edx
jmp 0x5d96cc
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
jl 0x5d9684
lea eax, [ebx*4]
sub dword [esp + 0x18], eax
mov edx, 2
sub edx, eax
add dword [esp + 0x14], edx
jmp 0x5d96cc
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x30]
cmp eax, edx
mov dword [esp + 0x28], eax
jl 0x5d96aa
sub eax, edx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov ebp, 1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea edx, [edx + eax + 2]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
lea eax, [edx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5d9a58
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
add eax, ebx
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x34]
add edx, ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x94]
sub eax, ecx
mov ecx, edx
imul ecx, edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x90]
mov edx, edi
sub ecx, ebx
neg edx
mov dword [esp + 0x58], eax
imul eax, edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x68], eax
nop
test ebp, ebp
je 0x5d9954
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x7c]
xor edx, edx
cmp dword [esp + 0x5c], ecx
mov ebp, dword [esp + 0x38]
setl dl
xor ecx, ecx
cmp dword [esp + 0x64], edi
mov edi, dword [esp + 0x78]
setg cl
or edx, ecx
xor ecx, ecx
cmp eax, edi
mov edi, dword [esp + 0x84]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x5c]
setg cl
or edx, ecx
movzx ecx, byte [edi + ebp]
or edx, ecx
jne 0x5d9854
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5d97a6
mov dword [esp + 0x24], ecx
jmp 0x5d97aa
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x60], edx
jle 0x5d97b9
mov eax, edx
mov edx, dword [esp + 0x6c]
mov byte [edi + ebp], 1
lea edi, [edx + ecx*4]
mov ebp, eax
sub ebp, ecx
movzx ecx, byte [esp + 0xa0]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa1]
mov dword [esp + 0x54], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa2]
mov dword [esp + 0x4c], edx
lea edx, [esi + ecx*4]
add ebp, 1
add edi, dword [esp + 0x20]
mov dword [esp + 0x50], edx
lea esp, [esp]
mov ecx, dword [esp + 0x54]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x10], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x11], dl
movzx edx, byte [ecx]
mov byte [esp + 0x12], dl
mov edx, dword [edi]
mov ecx, dword [esp + 0x10]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub ebp, 1
jne 0x5d9800
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x84]
xor edx, edx
cmp ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x38]
setl dl
xor ecx, ecx
cmp dword [esp + 0x58], edi
mov edi, dword [esp + 0x80]
setg cl
or edx, ecx
xor ecx, ecx
cmp eax, dword [esp + 0x78]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x58]
setg cl
or edx, ecx
movzx ecx, byte [edi + ebp]
or edx, ecx
jne 0x5d9950
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp ecx, edx
jge 0x5d98b2
mov ecx, edx
mov edx, dword [esp + 0x80]
cmp eax, edx
jle 0x5d98bf
mov eax, edx
mov edx, dword [esp + 0x68]
sub eax, ecx
mov byte [edi + ebp], 1
lea edi, [edx + ecx*4]
movzx ecx, byte [esp + 0xa0]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa1]
mov dword [esp + 0x54], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa2]
mov dword [esp + 0x4c], edx
lea edx, [esi + ecx*4]
add eax, 1
add edi, dword [esp + 0x20]
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x54]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x10], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x11], dl
movzx edx, byte [ecx]
mov byte [esp + 0x12], dl
mov edx, dword [edi]
mov ecx, dword [esp + 0x10]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebp, ecx
shr ebp, 8
sub ecx, ebp
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub eax, 1
jne 0x5d9900
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
xor ebp, ebp
test edi, edi
jge 0x5d99b0
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5d999b
mov ebp, dword [esp + 0x1c]
add dword [esp + 0x6c], ebp
add dword [esp + 0x34], 1
add dword [esp + 0x5c], 1
add dword [esp + 0x68], edx
sub dword [esp + 0x58], 1
sub eax, ecx
mov dword [esp + 0x28], eax
mov ebp, 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [edi + eax + 2]
jmp 0x5d9a45
mov edi, dword [esp + 0x14]
mov eax, 1
add dword [esp + 0x64], eax
sub dword [esp + 0x60], eax
sub ebx, eax
test edi, edi
mov dword [esp + 0x48], ebx
jl 0x5d99e9
mov eax, dword [esp + 0x74]
sub eax, 4
sub dword [esp + 0x18], eax
mov ecx, 2
sub ecx, eax
add edi, ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], edi
jmp 0x5d9a49
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
sub dword [esp + 0x74], 4
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5d9a2b
mov ebp, dword [esp + 0x1c]
add dword [esp + 0x6c], ebp
add dword [esp + 0x34], 1
add dword [esp + 0x5c], 1
add dword [esp + 0x68], edx
sub dword [esp + 0x58], 1
sub eax, ecx
mov dword [esp + 0x28], eax
mov ebp, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
lea eax, [edi + eax + 2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
test ebx, ebx
jg 0x5d9730
mov ecx, dword [esp + 0x94]
sub ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x90]
mov eax, edx
sub eax, ebx
lea edi, [ebx + edx]
mov dword [esp + 0x24], eax
mov eax, ecx
xor ecx, ecx
cmp eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x24]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp ebx, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov edx, dword [esp + 0x78]
mov ecx, ebx
cmp ecx, edx
jge 0x5d9ac0
mov ecx, edx
mov edx, dword [esp + 0x80]
cmp edi, edx
jle 0x5d9acd
mov edi, edx
mov edx, dword [esp + 0x38]
mov byte [eax + edx], 1
imul eax, dword [esp + 0x1c]
sub edi, ecx
add edi, 1
add eax, dword [esp + 0x20]
lea edx, [eax + ecx*4]
movzx eax, byte [esp + 0xa0]
movzx ecx, byte [esp + 0xa1]
lea ebx, [esi + eax*4]
movzx eax, byte [esp + 0xa2]
lea ebp, [esi + ecx*4]
lea ecx, [esi + eax*4]
mov dword [esp + 0x50], ecx
jmp 0x5d9b10
mov al, byte [ebx]
movzx ecx, byte [ebp]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x50]
mov byte [esp + 0x11], cl
movzx ecx, byte [eax]
mov byte [esp + 0x12], cl
mov ecx, dword [edx]
mov eax, dword [esp + 0x10]
and eax, 0xfefefeff
or ecx, 0x1010100
sub ecx, eax
mov eax, ecx
and eax, 0x1010100
mov esi, eax
shr esi, 8
sub eax, esi
and eax, ecx
mov dword [edx], eax
add edx, 4
sub edi, 1
jne 0x5d9b10
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
xor edx, edx
mov edi, esi
sub edi, eax
add esi, eax
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp esi, dword [esp + 0x78]
setl cl
xor eax, eax
or edx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x94]
setg al
xor ecx, ecx
or edx, eax
cmp edi, dword [esp + 0x84]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x38]
movzx eax, byte [ecx + edi]
or edx, eax
jne 0x5d9c54
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp eax, edx
jge 0x5d9bdf
mov eax, edx
mov edx, dword [esp + 0x80]
cmp esi, edx
jle 0x5d9bec
mov esi, edx
mov byte [ecx + edi], 1
mov ecx, dword [esp + 0x1c]
imul ecx, edi
movzx edi, byte [esp + 0xa0]
sub esi, eax
add esi, 1
add ecx, dword [esp + 0x20]
lea eax, [ecx + eax*4]
jmp 0x5d9c10
movzx edx, byte [eax]
movzx ecx, byte [esp + 0xa1]
imul edx, edi
sar edx, 8
mov byte [eax], dl
movzx edx, byte [eax + 1]
imul edx, ecx
movzx ecx, byte [esp + 0xa2]
sar edx, 8
mov byte [eax + 1], dl
movzx edx, byte [eax + 2]
imul edx, ecx
sar edx, 8
mov byte [eax + 2], dl
add eax, 4
sub esi, 1
jne 0x5d9c10
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], 0
jge 0x5d9caa
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5d9c91
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5d9d1c
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
jl 0x5d9cd5
lea eax, [ebx*4]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
jmp 0x5d9d1c
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5d9cfe
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5da041
mov eax, dword [esp + 0x90]
add eax, ebx
lea ecx, [ebx*4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x34]
lea esi, [ecx + edi]
mov dword [esp + 0x64], eax
mov eax, edi
sub eax, ecx
mov ecx, esi
imul ecx, edx
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x6c], ecx
mov ecx, edx
sub esi, ebx
neg ecx
mov dword [esp + 0x5c], eax
imul eax, edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x68], eax
cmp dword [esp + 0x2c], 0
je 0x5d9f41
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
xor ecx, ecx
cmp esi, dword [esp + 0x80]
mov ebp, esi
setg cl
xor edx, edx
cmp eax, edi
mov edi, dword [esp + 0x84]
setl dl
mov dword [esp + 0x24], ebp
or ecx, edx
xor edx, edx
cmp dword [esp + 0x60], edi
mov edi, dword [esp + 0x7c]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x60], edi
mov edi, dword [esp + 0x60]
setl dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [edi + edx]
or ecx, edx
jne 0x5d9e65
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5d9de5
mov ebp, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x64], ecx
jle 0x5d9df4
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x6c]
mov byte [edi + ecx], 1
lea ecx, [edx + ebp*4]
movzx edx, byte [esp + 0xa1]
mov esi, eax
sub esi, ebp
movzx ebp, byte [esp + 0xa0]
mov dword [esp + 0x58], edx
movzx edx, byte [esp + 0xa2]
add esi, 1
add ecx, dword [esp + 0x20]
mov dword [esp + 0x54], edx
mov edi, edi
movzx edx, byte [ecx]
imul edx, ebp
sar edx, 8
mov byte [ecx], dl
movzx edx, byte [ecx + 1]
imul edx, dword [esp + 0x58]
sar edx, 8
mov byte [ecx + 1], dl
movzx edx, byte [ecx + 2]
imul edx, dword [esp + 0x54]
sar edx, 8
mov byte [ecx + 2], dl
add ecx, 4
sub esi, 1
jne 0x5d9e30
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
xor ecx, ecx
cmp edx, dword [esp + 0x84]
setg cl
xor edx, edx
cmp dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp eax, edi
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x5c]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [edx + ebp]
or ecx, edx
jne 0x5d9f35
mov ecx, dword [esp + 0x24]
cmp ecx, edi
jge 0x5d9ec1
mov ecx, edi
mov edx, dword [esp + 0x80]
cmp eax, edx
jle 0x5d9ece
mov eax, edx
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
movzx ebp, byte [esp + 0xa0]
movzx edi, byte [esp + 0xa1]
sub eax, ecx
add eax, 1
mov byte [edx + esi], 1
mov esi, eax
mov eax, dword [esp + 0x68]
lea ecx, [eax + ecx*4]
add ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0xa2]
movzx edx, byte [ecx]
imul edx, ebp
sar edx, 8
mov byte [ecx], dl
movzx edx, byte [ecx + 1]
imul edx, edi
sar edx, 8
mov byte [ecx + 1], dl
movzx edx, byte [ecx + 2]
imul edx, eax
sar edx, 8
mov byte [ecx + 2], dl
add ecx, 4
sub esi, 1
jne 0x5d9f04
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5d9fa5
add ebp, dword [esp + 0x9c]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5d9f88
add dword [esp + 0x34], 1
add dword [esp + 0x60], 1
add dword [esp + 0x6c], edx
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], 1
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea edi, [edi + eax + 2]
mov dword [esp + 0x18], edi
jmp 0x5da032
sub dword [esp + 0x64], 1
add esi, 1
sub ebx, 1
cmp dword [esp + 0x14], 0
mov dword [esp + 0x74], esi
jl 0x5d9fd7
mov eax, dword [esp + 0x70]
sub eax, 4
sub dword [esp + 0x18], eax
mov edi, 2
sub edi, eax
add dword [esp + 0x14], edi
mov dword [esp + 0x70], eax
jmp 0x5da032
add ebp, dword [esp + 0x9c]
sub dword [esp + 0x70], 4
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5da010
add dword [esp + 0x34], 1
add dword [esp + 0x60], 1
add dword [esp + 0x6c], edx
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], 1
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea edi, [edi + eax + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea eax, [edi + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jg 0x5d9d74
mov edi, dword [esp + 0x94]
sub edi, dword [esp + 0x34]
mov eax, dword [esp + 0x90]
xor ecx, ecx
mov ebp, eax
sub ebp, ebx
lea esi, [ebx + eax]
mov eax, edi
cmp eax, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp ebp, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5da09f
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5da0ac
mov esi, ecx
mov ecx, dword [esp + 0x38]
movzx edi, byte [esp + 0xa1]
mov byte [eax + ecx], 1
imul eax, dword [esp + 0x1c]
movzx ecx, byte [esp + 0xa0]
sub esi, ebp
add esi, 1
add eax, dword [esp + 0x20]
lea eax, [eax + ebp*4]
movzx ebp, byte [esp + 0xa2]
lea ecx, [ecx]
movzx edx, byte [eax]
imul edx, ecx
sar edx, 8
mov byte [eax], dl
movzx edx, byte [eax + 1]
imul edx, edi
sar edx, 8
mov byte [eax + 1], dl
movzx edx, byte [eax + 2]
imul edx, ebp
sar edx, 8
mov byte [eax + 2], dl
add eax, 4
sub esi, 1
jne 0x5da0e0
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov edi, esi
sub edi, eax
add esi, eax
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl al
xor edx, edx
cmp esi, dword [esp + 0x78]
setl dl
xor ecx, ecx
or eax, edx
cmp edi, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x38]
setg cl
or eax, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x84]
setg cl
or eax, ecx
movzx ecx, byte [edi + edx]
or eax, ecx
jne 0x5da252
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5da196
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5da1a3
mov esi, ecx
mov ecx, dword [esp + 0x1c]
imul ecx, edx
sub esi, eax
add esi, 1
add ecx, dword [esp + 0x20]
mov byte [edi + edx], 1
mov edi, esi
lea eax, [ecx + eax*4]
lea esp, [esp]
movzx esi, byte [eax]
movzx ecx, byte [esp + 0xa0]
mov edx, esi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, esi
imul ecx, dword [0x8e80c0]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax], cl
movzx esi, byte [eax + 1]
movzx ecx, byte [esp + 0xa1]
mov edx, esi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, esi
imul ecx, dword [0x8e80c0]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax + 1], cl
movzx esi, byte [eax + 2]
movzx ecx, byte [esp + 0xa2]
mov edx, esi
imul edx, ecx
sar edx, 8
movzx ecx, dl
sub ecx, esi
imul ecx, dword [0x8e80c0]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax + 2], cl
add eax, 4
sub edi, 1
jne 0x5da1c0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], 0
jge 0x5da2a8
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5da28f
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5da31a
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
jl 0x5da2d3
lea eax, [ebx*4]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
jmp 0x5da31a
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5da2fc
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5da6b3
mov eax, dword [esp + 0x90]
add eax, ebx
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x34]
lea edi, [ecx + edx]
mov dword [esp + 0x64], eax
mov eax, edx
sub eax, ecx
mov ecx, edi
imul ecx, esi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x5c], ecx
mov ecx, esi
sub edi, ebx
neg ecx
mov dword [esp + 0x60], eax
imul eax, esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x58], eax
cmp dword [esp + 0x2c], 0
je 0x5da5ad
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
xor edx, edx
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x68]
setg cl
xor eax, eax
or edx, ecx
mov ecx, dword [esp + 0x78]
cmp esi, ecx
mov ecx, dword [esp + 0x38]
setl al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x84]
setg al
or edx, eax
movzx eax, byte [edi + ecx]
or edx, eax
jne 0x5da49f
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x6c], eax
jge 0x5da3df
mov dword [esp + 0x24], eax
jmp 0x5da3e3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x64], edx
jle 0x5da3f2
mov esi, edx
mov byte [edi + ecx], 1
mov ecx, dword [esp + 0x5c]
mov ebp, esi
sub ebp, eax
lea ecx, [ecx + eax*4]
add ebp, 1
add ecx, dword [esp + 0x20]
jmp 0x5da410
movzx edx, byte [ecx]
movzx edi, byte [esp + 0xa0]
mov eax, edx
imul eax, edi
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
movzx edi, byte [esp + 0xa1]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx], al
movzx edx, byte [ecx + 1]
mov eax, edx
imul eax, edi
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
movzx edi, byte [esp + 0xa2]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 1], al
movzx edx, byte [ecx + 2]
mov eax, edx
imul eax, edi
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 2], al
add ecx, 4
sub ebp, 1
jne 0x5da410
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x60]
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x84]
mov edi, dword [esp + 0x24]
setg dl
xor eax, eax
or ecx, edx
cmp esi, dword [esp + 0x78]
setl al
xor edx, edx
or ecx, eax
cmp edi, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne 0x5da5a5
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5da4f5
mov edi, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5da502
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
movzx ebp, byte [esp + 0xa0]
mov byte [eax + ecx], 1
sub esi, edi
lea ecx, [edx + edi*4]
add esi, 1
add ecx, dword [esp + 0x20]
movzx edx, byte [ecx]
mov eax, edx
imul eax, ebp
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
movzx edi, byte [esp + 0xa1]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx], al
movzx edx, byte [ecx + 1]
mov eax, edx
imul eax, edi
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
movzx edi, byte [esp + 0xa2]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 1], al
movzx edx, byte [ecx + 2]
mov eax, edx
imul eax, edi
sar eax, 8
movzx eax, al
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 2], al
add ecx, 4
sub esi, 1
jne 0x5da522
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x2c], 0
jge 0x5da60e
add ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5da5f9
mov esi, dword [esp + 0x1c]
add dword [esp + 0x34], 1
add dword [esp + 0x68], 1
add dword [esp + 0x5c], esi
add dword [esp + 0x58], ecx
sub dword [esp + 0x60], 1
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea edx, [edx + eax + 2]
jmp 0x5da6a0
mov esi, dword [esp + 0x14]
sub dword [esp + 0x64], 1
add edi, 1
sub ebx, 1
test esi, esi
mov dword [esp + 0x6c], edi
jl 0x5da645
mov eax, dword [esp + 0x74]
sub eax, 4
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, 2
sub edx, eax
add esi, edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], esi
jmp 0x5da6a4
add ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
sub dword [esp + 0x74], 4
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5da68a
mov edx, dword [esp + 0x1c]
add dword [esp + 0x5c], edx
add dword [esp + 0x34], 1
add dword [esp + 0x68], 1
add dword [esp + 0x58], ecx
sub dword [esp + 0x60], 1
mov edx, dword [esp + 0x18]
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea edx, [edx + eax + 2]
lea eax, [esi + eax + 2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jg 0x5da372
mov edx, dword [esp + 0x94]
sub edx, dword [esp + 0x34]
mov eax, dword [esp + 0x90]
xor ecx, ecx
mov ebp, eax
sub ebp, ebx
lea esi, [ebx + eax]
mov eax, edx
cmp eax, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp ebp, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5da711
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5da71e
mov esi, ecx
mov ecx, dword [esp + 0x38]
movzx edi, byte [esp + 0xa0]
movzx edx, byte [esp + 0xa2]
mov byte [eax + ecx], 1
imul eax, dword [esp + 0x1c]
sub esi, ebp
add esi, 1
add eax, dword [esp + 0x20]
lea eax, [eax + ebp*4]
movzx ebp, byte [esp + 0xa1]
nop
movzx ecx, byte [eax]
mov ebx, ecx
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax], bl
movzx ecx, byte [eax + 1]
mov ebx, ecx
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 1], bl
movzx ecx, byte [eax + 2]
mov ebx, ecx
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
sub esi, 1
jne 0x5da750
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
xor edx, edx
mov edi, esi
sub edi, eax
add esi, eax
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp esi, dword [esp + 0x78]
setl cl
xor eax, eax
or edx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x94]
setg al
xor ecx, ecx
or edx, eax
cmp edi, dword [esp + 0x84]
mov eax, dword [esp + 0x38]
setg cl
or edx, ecx
movzx ecx, byte [eax + edi]
or edx, ecx
jne 0x5da8ff
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5da848
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5da855
mov esi, ecx
mov edx, dword [esp + 0x38]
mov ecx, edi
mov byte [edx + ecx], 1
mov edx, dword [esp + 0x1c]
imul edx, ecx
mov cl, byte [esp + 0xa0]
sub esi, eax
add esi, 1
add edx, dword [esp + 0x20]
not cl
lea eax, [edx + eax*4]
mov dl, byte [esp + 0xa1]
not dl
movzx edx, dl
mov dword [esp + 0x70], edx
mov dl, byte [esp + 0xa2]
not dl
movzx edx, dl
mov edi, esi
movzx ecx, cl
mov dword [esp + 0x58], edx
movzx esi, byte [eax]
mov edx, ecx
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax], dl
movzx esi, byte [eax + 1]
mov edx, dword [esp + 0x70]
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax + 1], dl
movzx esi, byte [eax + 2]
mov edx, dword [esp + 0x58]
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax + 2], dl
add eax, 4
sub edi, 1
jne 0x5da8a0
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], 0
jge 0x5da951
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5da93c
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
jmp 0x5da9bb
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
jl 0x5da978
lea eax, [ebx*4]
mov edx, 2
sub edx, eax
sub ecx, eax
add dword [esp + 0x14], edx
jmp 0x5da9bb
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5da9a1
sub ebp, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
lea eax, [edx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
mov dword [esp + 0x18], ecx
jle 0x5dad4c
mov eax, dword [esp + 0x90]
add eax, ebx
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x34]
lea edx, [ecx + edi]
mov dword [esp + 0x64], eax
mov eax, edi
mov edi, dword [esp + 0x90]
sub eax, ecx
mov ecx, edx
imul ecx, esi
mov dword [esp + 0x5c], ecx
mov ecx, esi
sub edi, ebx
neg ecx
mov dword [esp + 0x60], eax
imul eax, esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x54], eax
jmp 0x5daa20
cmp dword [esp + 0x2c], 0
je 0x5dac43
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
xor edx, edx
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x68]
setg cl
xor eax, eax
or edx, ecx
mov ecx, dword [esp + 0x78]
cmp esi, ecx
mov ecx, dword [esp + 0x38]
setl al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x84]
setg al
or edx, eax
movzx eax, byte [edi + ecx]
or edx, eax
jne 0x5dab3e
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x6c], eax
jge 0x5daa8d
mov dword [esp + 0x24], eax
jmp 0x5daa91
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x64], edx
jle 0x5daaa0
mov esi, edx
mov dl, byte [esp + 0xa0]
mov byte [edi + ecx], 1
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + eax*4]
mov ebp, esi
sub ebp, eax
mov al, byte [esp + 0xa1]
not dl
not al
movzx edi, dl
movzx edx, al
mov al, byte [esp + 0xa2]
not al
mov dword [esp + 0x70], edx
movzx edx, al
add ebp, 1
add ecx, dword [esp + 0x20]
mov dword [esp + 0x58], edx
movzx edx, byte [ecx]
mov eax, edi
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx], al
movzx edx, byte [ecx + 1]
mov eax, dword [esp + 0x70]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 1], al
movzx edx, byte [ecx + 2]
mov eax, dword [esp + 0x58]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 2], al
add ecx, 4
sub ebp, 1
jne 0x5daae2
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x60]
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x84]
mov edi, dword [esp + 0x24]
setg dl
xor eax, eax
or ecx, edx
cmp esi, dword [esp + 0x78]
setl al
xor edx, edx
or ecx, eax
cmp edi, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne 0x5dac3b
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5dab94
mov edi, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5daba1
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov byte [eax + ecx], 1
mov al, byte [esp + 0xa0]
lea ecx, [edx + edi*4]
mov dl, byte [esp + 0xa1]
not al
movzx ebp, al
mov al, byte [esp + 0xa2]
sub esi, edi
not dl
not al
movzx edi, dl
movzx edx, al
add esi, 1
add ecx, dword [esp + 0x20]
mov dword [esp + 0x58], edx
movzx edx, byte [ecx]
mov eax, ebp
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx], al
movzx edx, byte [ecx + 1]
mov eax, edi
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 1], al
movzx edx, byte [ecx + 2]
mov eax, dword [esp + 0x58]
sub eax, edx
imul eax, dword [0x8e80c0]
shl edx, 8
add eax, edx
sar eax, 8
mov byte [ecx + 2], al
add ecx, 4
sub esi, 1
jne 0x5dabe1
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x2c], 0
jge 0x5daca4
add ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5dac8f
mov esi, dword [esp + 0x1c]
add dword [esp + 0x34], 1
add dword [esp + 0x68], 1
add dword [esp + 0x5c], esi
add dword [esp + 0x54], ecx
sub dword [esp + 0x60], 1
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea edx, [edx + eax + 2]
jmp 0x5dad39
mov esi, dword [esp + 0x14]
sub dword [esp + 0x64], 1
add edi, 1
sub ebx, 1
test esi, esi
mov dword [esp + 0x6c], edi
jl 0x5dacde
mov eax, dword [esp + 0x74]
sub eax, 4
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, 2
sub edx, eax
add esi, edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], esi
jmp 0x5dad3d
add ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
sub dword [esp + 0x74], 4
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x5dad23
mov edx, dword [esp + 0x1c]
add dword [esp + 0x5c], edx
add dword [esp + 0x34], 1
add dword [esp + 0x68], 1
add dword [esp + 0x54], ecx
sub dword [esp + 0x60], 1
mov edx, dword [esp + 0x18]
sub ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea edx, [edx + eax + 2]
lea eax, [esi + eax + 2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jg 0x5daa20
mov edi, dword [esp + 0x94]
sub edi, dword [esp + 0x34]
mov eax, dword [esp + 0x90]
xor ecx, ecx
mov ebp, eax
sub ebp, ebx
lea esi, [ebx + eax]
mov eax, edi
cmp eax, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp esi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp ebp, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5dadaa
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5dadb7
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov byte [eax + ecx], 1
imul eax, dword [esp + 0x1c]
mov cl, byte [esp + 0xa0]
not cl
sub esi, ebp
movzx edi, cl
mov cl, byte [esp + 0xa1]
add esi, 1
add eax, dword [esp + 0x20]
not cl
lea eax, [eax + ebp*4]
movzx ebp, cl
mov cl, byte [esp + 0xa2]
not cl
movzx edx, cl
movzx ecx, byte [eax]
mov ebx, edi
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax], bl
movzx ecx, byte [eax + 1]
mov ebx, ebp
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 1], bl
movzx ecx, byte [eax + 2]
mov ebx, edx
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
sub esi, 1
jne 0x5dadf4
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov ecx, dword [0x8e80e4]
mov edx, ecx
and edx, 0xffffff
cmp edx, 0xffffff
je 0x5daeca
mov eax, dword [esp + 0xa0]
mov edx, eax
sar edx, 5
and edx, 0x3f
movzx ecx, ch
imul edx, ecx
movzx ecx, byte [0x8e80e4]
and eax, 0x1f
imul eax, ecx
movzx ecx, byte [0x8e80e6]
sar eax, 5
and edx, 0xffffff07
or edx, eax
mov eax, dword [esp + 0xa0]
sar eax, 8
and eax, 0xfffffff8
imul eax, ecx
sar edx, 3
and eax, 0xfffff800
or edx, eax
mov dword [esp + 0xa0], edx
jmp 0x5daed1
mov edx, dword [esp + 0xa0]
mov eax, dword [0x8e80bc]
cmp eax, 0xb
ja case.0x5e09da.5
jmp dword [eax*4 + 0x5f01f4]
mov eax, dword [0x8e80c0]
cmp eax, 0xff
jne 0x5db3a9
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
lea edi, [eax + ecx]
mov esi, eax
sub esi, ecx
mov ecx, dword [esp + 0x94]
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x44], edi
setl al
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
xor ecx, ecx
or eax, edx
cmp esi, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
setg cl
or eax, ecx
xor ecx, ecx
cmp edx, dword [esp + 0x84]
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + edx]
or eax, ecx
mov cx, word [esp + 0xa0]
jne 0x5dafa2
mov eax, dword [esp + 0x78]
cmp esi, eax
jge 0x5daf6b
mov esi, eax
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
cmp eax, edi
jle 0x5daf7c
mov eax, edi
mov edi, dword [esp + 0x38]
mov byte [edi + edx], 1
mov edi, dword [esp + 0x1c]
imul edi, edx
sub eax, esi
add eax, 1
add edi, dword [esp + 0x20]
lea esi, [edi + esi*2]
mov word [esi], cx
add esi, 2
sub eax, 1
jne 0x5daf97
mov edi, dword [esp + 0x18]
test edi, edi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5dafee
mov ebp, dword [esp + 0x9c]
cmp ebp, esi
jl 0x5dafd2
mov eax, 1
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], eax
jmp 0x5dafd6
mov eax, dword [esp + 0x34]
lea ecx, [eax*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5db059
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
jl 0x5db01d
lea eax, [ebx*4]
sub edi, eax
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], edi
jmp 0x5db059
mov ebp, dword [esp + 0x9c]
cmp ebp, esi
jl 0x5db039
mov eax, 1
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], eax
jmp 0x5db03d
mov eax, dword [esp + 0x34]
mov ecx, eax
sub ecx, ebx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test ebx, ebx
jle 0x5db2ff
mov edi, dword [esp + 0x90]
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
lea ecx, [eax + edx]
mov dword [esp + 0x68], ecx
imul ecx, dword [esp + 0x1c]
add edi, ebx
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x90]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
sub edx, eax
sub edi, ebx
neg ecx
mov dword [esp + 0x60], edx
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x58], edx
nop
cmp dword [esp + 0x2c], 0
je 0x5db204
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
xor edx, edx
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x68]
setg cl
xor eax, eax
or edx, ecx
mov ecx, dword [esp + 0x78]
cmp esi, ecx
mov ecx, dword [esp + 0x38]
setl al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x84]
setg al
or edx, eax
movzx eax, byte [edi + ecx]
or edx, eax
jne 0x5db15b
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x6c], eax
jge 0x5db119
mov dword [esp + 0x24], eax
jmp 0x5db11d
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x64], edx
jle 0x5db12c
mov esi, edx
mov edx, dword [esp + 0x5c]
mov byte [edi + ecx], 1
mov ecx, esi
sub ecx, eax
lea eax, [edx + eax*2]
mov dx, word [esp + 0xa0]
add ecx, 1
add eax, dword [esp + 0x20]
lea ebx, [ebx]
mov word [eax], dx
add eax, 2
sub ecx, 1
jne 0x5db150
mov edi, dword [esp + 0x60]
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x84]
mov edi, dword [esp + 0x24]
setg dl
xor eax, eax
or ecx, edx
cmp esi, dword [esp + 0x78]
setl al
xor edx, edx
or ecx, eax
cmp edi, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne 0x5db1f8
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5db1ad
mov edi, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5db1ba
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov byte [eax + ecx], 1
mov eax, dword [esp + 0x58]
mov cx, word [esp + 0xa0]
sub esi, edi
mov edx, 1
lea eax, [eax + edi*2]
add esi, edx
add eax, dword [esp + 0x20]
mov edi, edi
mov word [eax], cx
add eax, 2
sub esi, edx
jne 0x5db1e0
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x5db209
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov edx, 1
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5db268
add ebp, dword [esp + 0x9c]
cmp ebp, esi
jl 0x5db24c
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x68], edx
add dword [esp + 0x5c], ecx
add eax, edx
mov edx, dword [esp + 0x3c]
add dword [esp + 0x58], edx
mov ecx, 1
sub dword [esp + 0x60], ecx
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x18]
lea ecx, [eax*4]
add dword [esp + 0x14], ecx
lea edx, [edx + ecx + 2]
mov dword [esp + 0x18], edx
jmp 0x5db2f0
sub dword [esp + 0x64], edx
add edi, edx
sub ebx, edx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x6c], edi
jl 0x5db297
mov ecx, dword [esp + 0x74]
sub ecx, 4
sub dword [esp + 0x18], ecx
mov edx, 2
sub edx, ecx
add dword [esp + 0x14], edx
mov dword [esp + 0x74], ecx
jmp 0x5db2f0
add ebp, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp ebp, esi
jl 0x5db2d0
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x68], edx
add dword [esp + 0x5c], ecx
add eax, edx
mov edx, dword [esp + 0x3c]
add dword [esp + 0x58], edx
mov ecx, 1
sub dword [esp + 0x60], ecx
mov dword [esp + 0x34], eax
sub ebp, esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
mov edx, eax
sub edx, ebx
add edx, edx
add edx, edx
lea ecx, [ecx + edx + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea edx, [ecx + edx + 2]
mov dword [esp + 0x14], edx
test ebx, ebx
jg 0x5db0b0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
sub edx, eax
mov eax, edx
mov esi, ecx
lea edi, [ebx + ecx]
xor ecx, ecx
sub esi, ebx
cmp eax, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp eax, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp esi, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5db35b
mov esi, ecx
mov ecx, dword [esp + 0x80]
cmp edi, ecx
jle 0x5db368
mov edi, ecx
mov ecx, dword [esp + 0x38]
mov byte [eax + ecx], 1
imul eax, dword [esp + 0x1c]
sub edi, esi
add edi, 1
add eax, dword [esp + 0x20]
lea eax, [eax + esi*2]
mov dx, word [esp + 0xa0]
mov word [eax], dx
add eax, 2
sub edi, 1
jne 0x5db381
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
test eax, eax
je case.0x5e09da.5
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov eax, ecx
add ecx, esi
sub eax, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x38]
setl al
xor ecx, ecx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl cl
or eax, ecx
xor ecx, ecx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x94]
setg cl
or eax, ecx
xor ecx, ecx
cmp esi, dword [esp + 0x84]
setg cl
or eax, ecx
movzx ecx, byte [esi + ebp]
or eax, ecx
jne 0x5db4fb
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5db431
mov ecx, eax
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x80]
jle 0x5db445
mov eax, dword [esp + 0x80]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
imul eax, esi
add eax, dword [esp + 0x20]
mov byte [esi + ebp], 1
lea eax, [eax + ecx*2]
mov ecx, edx
sar ecx, 0xb
mov esi, edx
sar esi, 5
mov dword [esp + 0x54], ecx
and esi, 0x3f
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x4c], ecx
jmp 0x5db488
mov esi, dword [esp + 0x58]
movzx ecx, word [eax]
movzx eax, cx
mov ebp, eax
shr ebp, 5
and ebp, 0x3f
sub esi, ebp
mov dword [esp + 0x44], eax
mov ebp, ecx
shr ebp, 5
shr eax, 0xb
and ebp, 0x3f
add bp, word [edi + esi*4]
mov esi, dword [esp + 0x54]
sub esi, eax
mov ax, cx
shr ax, 0xb
add ax, word [edi + esi*4]
mov esi, dword [esp + 0x4c]
shl ax, 0xb
shl bp, 5
or bp, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
sub esi, eax
mov eax, dword [esp + 0x2c]
and ecx, 0x1f
add cx, word [edi + esi*4]
add eax, 2
or bp, cx
sub dword [esp + 0x40], 1
mov word [eax - 2], bp
mov dword [esp + 0x2c], eax
jne 0x5db484
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x2c], 0
jge 0x5db54d
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5db534
sub eax, dword [esp + 0x30]
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [eax + ebp + 2]
mov dword [esp + 0x18], ecx
jmp 0x5db5c7
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
jl 0x5db57c
lea eax, [ebx*4]
mov ecx, 2
sub ebp, eax
sub ecx, eax
add dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
jmp 0x5db5c7
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5db5a9
mov ebp, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [eax + ebp + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5db9ae
mov eax, dword [esp + 0x90]
mov ebp, dword [esp + 0x34]
add eax, ebx
lea ecx, [ebx*4]
mov dword [esp + 0x64], eax
mov eax, esi
mov dword [esp + 0x74], ecx
lea ecx, [esi + ebp]
mov esi, dword [esp + 0x90]
sub eax, ebp
mov ebp, dword [esp + 0x1c]
sub esi, ebx
mov dword [esp + 0x68], esi
mov esi, ebp
mov dword [esp + 0x5c], ecx
imul ecx, ebp
neg esi
mov dword [esp + 0x60], eax
imul eax, ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x50], eax
test ebp, ebp
je 0x5db884
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
xor ecx, ecx
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], ebp
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x80]
mov ebp, esi
setg al
mov dword [esp + 0x44], esi
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x78]
mov ebp, dword [esp + 0x5c]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x84]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebp]
or ecx, eax
jne 0x5db764
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x68], eax
jge 0x5db697
mov dword [esp + 0x24], eax
jmp 0x5db69b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x64], ecx
jle 0x5db6ae
mov esi, ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x38]
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x6c]
sub esi, eax
lea eax, [ecx + eax*2]
add eax, dword [esp + 0x20]
mov ebx, edx
sar ebx, 5
mov ebp, edx
add esi, 1
and ebx, 0x3f
sar ebp, 0xb
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], ecx
jmp 0x5db6f8
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x4c]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5db6f0
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x60]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x84]
mov ebp, dword [esp + 0x24]
setg al
or ecx, eax
xor eax, eax
cmp esi, dword [esp + 0x78]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x80]
mov ebp, dword [esp + 0x60]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebp]
or ecx, eax
jne 0x5db880
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
cmp eax, ecx
jge 0x5db7be
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5db7cb
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x60]
mov byte [ebx + ecx], 1
mov ecx, dword [esp + 0x50]
sub esi, eax
lea eax, [ecx + eax*2]
add eax, dword [esp + 0x20]
mov ebx, edx
sar ebx, 5
mov ebp, edx
add esi, 1
and ebx, 0x3f
sar ebp, 0xb
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], ecx
jmp 0x5db818
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x4c]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5db810
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
xor ebp, ebp
cmp dword [esp + 0x18], ebp
jge 0x5db8ee
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x30]
cmp eax, esi
mov dword [esp + 0x28], eax
jl 0x5db8d1
mov ebp, dword [esp + 0x3c]
add ecx, dword [esp + 0x1c]
add dword [esp + 0x50], ebp
add dword [esp + 0x34], 1
add dword [esp + 0x5c], 1
sub dword [esp + 0x60], 1
sub eax, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x28], eax
mov ebp, 1
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea esi, [esi + eax + 2]
mov dword [esp + 0x18], esi
jmp 0x5db99f
cmp dword [esp + 0x14], 0
jl 0x5db927
mov eax, 1
add dword [esp + 0x68], eax
sub dword [esp + 0x64], eax
sub ebx, eax
mov eax, dword [esp + 0x74]
sub eax, 4
sub dword [esp + 0x18], eax
mov esi, 2
sub esi, eax
add dword [esp + 0x14], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x74], eax
jmp 0x5db99f
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
mov esi, 1
add dword [esp + 0x68], esi
sub dword [esp + 0x64], esi
sub ebx, esi
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x28], eax
jl 0x5db97d
add dword [esp + 0x34], esi
add dword [esp + 0x5c], esi
mov esi, dword [esp + 0x3c]
add ecx, dword [esp + 0x1c]
add dword [esp + 0x50], esi
mov ebp, 1
sub dword [esp + 0x60], ebp
sub eax, dword [esp + 0x30]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea esi, [esi + eax + 2]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
lea eax, [esi + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jg 0x5db625
mov esi, dword [esp + 0x94]
sub esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x90]
lea ebp, [ebx + ecx]
mov eax, ecx
sub eax, ebx
xor ecx, ecx
cmp esi, dword [esp + 0x7c]
setl cl
xor ebx, ebx
cmp ebp, dword [esp + 0x78]
setl bl
or ecx, ebx
xor ebx, ebx
cmp esi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp eax, dword [esp + 0x80]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [esi + ebx]
or ecx, ebx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5dba0a
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp ebp, ecx
jle 0x5dba17
mov ebp, ecx
mov ecx, dword [esp + 0x38]
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
sub ebp, eax
add ebp, 1
mov ebx, edx
mov dword [esp + 0x40], ebp
sar ebx, 5
mov ebp, edx
and ebx, 0x3f
sar ebp, 0xb
and edx, 0x1f
lea esi, [esi + eax*2]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], edx
jmp 0x5dba5a
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
movzx eax, word [esi]
movzx ecx, ax
mov edx, ecx
shr edx, 5
and edx, 0x3f
sub ebx, edx
mov edx, eax
shr edx, 5
and edx, 0x3f
add dx, word [edi + ebx*4]
mov ebx, ecx
shr ebx, 0xb
sub ebp, ebx
mov bx, ax
shr bx, 0xb
add bx, word [edi + ebp*4]
shl dx, 5
shl bx, 0xb
or dx, bx
mov ebx, dword [esp + 0x4c]
and ecx, 0x1f
sub ebx, ecx
and eax, 0x1f
add ax, word [edi + ebx*4]
add esi, 2
or dx, ax
sub dword [esp + 0x40], 1
mov word [esi - 2], dx
jne 0x5dba52
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov eax, ecx
add ecx, edi
sub eax, edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x94]
setl al
xor ecx, ecx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl cl
or eax, ecx
xor ecx, ecx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x38]
setg cl
or eax, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x84]
setg cl
or eax, ecx
movzx ecx, byte [edi + ebp]
or eax, ecx
jne 0x5dbc24
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5dbb56
mov ecx, eax
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x80]
jle 0x5dbb6a
mov eax, dword [esp + 0x80]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
imul eax, ebp
add eax, dword [esp + 0x20]
mov byte [edi + ebp], 1
lea edi, [eax + ecx*2]
mov ecx, edx
sar ecx, 0xb
lea eax, [esi + ecx*4]
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
mov dword [esp + 0x54], eax
lea eax, [esi + ecx*4]
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x50], eax
lea eax, [esi + ecx*4]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x54]
mov ax, word [ecx]
mov ecx, dword [esp + 0x50]
shl ax, 6
add ax, word [ecx]
mov ecx, dword [esp + 0x4c]
shl ax, 5
add ax, word [ecx]
movzx ecx, word [edi]
movzx edi, cx
movzx eax, ax
mov ecx, eax
and ecx, 0xf7def7df
and edi, 0xf7def7df
add edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebp, ecx
shr ebp, 5
sub ecx, ebp
mov ebp, dword [esp + 0x2c]
movzx ebp, word [ebp]
or eax, ebp
and eax, 0x820
or ecx, eax
or ecx, edi
mov edi, dword [esp + 0x2c]
mov word [edi], cx
add edi, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], edi
jne 0x5dbbb0
mov ebp, dword [esp + 0x94]
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5dbc79
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5dbc5c
sub eax, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5dbcf1
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
jl 0x5dbca6
lea eax, [ebx*4]
sub dword [esp + 0x18], eax
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
jmp 0x5dbcf1
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5dbccf
sub eax, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5dc0a3
mov edi, dword [esp + 0x90]
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x34]
lea eax, [ecx + ebp]
mov dword [esp + 0x60], eax
lea eax, [ebx + edi]
mov dword [esp + 0x64], eax
mov eax, ebp
mov ebp, dword [esp + 0x60]
sub eax, ecx
mov ecx, dword [esp + 0x1c]
imul ebp, ecx
mov dword [esp + 0x68], ebp
mov ebp, edi
mov edi, ecx
neg edi
sub ebp, ebx
mov dword [esp + 0x5c], eax
imul eax, ecx
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x58], eax
nop
test edi, edi
je 0x5dbf8e
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], ebp
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x80]
mov ebp, dword [esp + 0x60]
setg cl
mov dword [esp + 0x44], edi
or eax, ecx
xor ecx, ecx
cmp edi, ebx
setl cl
or eax, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x84]
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ebx, byte [ecx + ebp]
or eax, ebx
jne 0x5dbe7c
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x6c], eax
jge 0x5dbdbe
mov dword [esp + 0x24], eax
jmp 0x5dbdc2
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x64], ebx
jle 0x5dbdd5
mov edi, ebx
mov dword [esp + 0x44], ebx
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x68]
sub edi, eax
lea eax, [ecx + eax*2]
add eax, dword [esp + 0x20]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
add edi, 1
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
add eax, 2
movzx edi, cx
movzx ecx, word [eax - 2]
movzx ebp, cx
mov ecx, edi
and ecx, 0xf7def7df
and ebp, 0xf7def7df
add ebp, ecx
mov ecx, ebp
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
movzx ebx, word [eax - 2]
or edi, ebx
and edi, 0x820
or ecx, edi
or ecx, ebp
sub dword [esp + 0x40], 1
mov word [eax - 2], cx
jne 0x5dbe14
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x5c]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x5c]
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x84]
mov ebp, dword [esp + 0x24]
setg al
or ecx, eax
xor eax, eax
cmp edi, dword [esp + 0x78]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x80]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx ebx, byte [ebx + eax]
or ecx, ebx
jne 0x5dbf86
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5dbed2
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp edi, ecx
jle 0x5dbedf
mov edi, ecx
mov ecx, dword [esp + 0x5c]
mov byte [ecx + eax], 1
mov eax, dword [esp + 0x58]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
sub edi, ebp
lea eax, [eax + ebp*2]
add eax, dword [esp + 0x20]
add edi, 1
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
add eax, 2
movzx edi, cx
movzx ecx, word [eax - 2]
movzx ebp, cx
mov ecx, edi
and ecx, 0xf7def7df
and ebp, 0xf7def7df
add ebp, ecx
mov ecx, ebp
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
movzx ebx, word [eax - 2]
or edi, ebx
and edi, 0x820
or ecx, edi
or ecx, ebp
sub dword [esp + 0x40], 1
mov word [eax - 2], cx
jne 0x5dbf22
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
xor edi, edi
cmp dword [esp + 0x18], edi
mov dword [esp + 0x2c], edi
jge 0x5dbffc
add ecx, dword [esp + 0x9c]
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x5dbfdf
mov ecx, 1
add dword [esp + 0x34], ecx
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
mov edi, 1
sub dword [esp + 0x5c], edi
sub dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5dc09b
sub dword [esp + 0x64], 1
sub ebx, 1
add ebp, 1
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x6c], ebp
jl 0x5dc035
mov eax, dword [esp + 0x74]
sub eax, 4
sub dword [esp + 0x18], eax
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
mov dword [esp + 0x74], eax
jmp 0x5dc09b
add ecx, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x5dc075
mov ecx, 1
add dword [esp + 0x34], ecx
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
mov edi, 1
sub dword [esp + 0x5c], edi
sub dword [esp + 0x28], eax
jmp 0x5dc079
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jg 0x5dbd50
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
sub edi, dword [esp + 0x34]
lea ebp, [ebx + ecx]
mov eax, ecx
sub eax, ebx
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
setl cl
xor ebx, ebx
cmp ebp, dword [esp + 0x78]
setl bl
or ecx, ebx
xor ebx, ebx
cmp edi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp eax, dword [esp + 0x80]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [edi + ebx]
or ecx, ebx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5dc106
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp ebp, ecx
jle 0x5dc113
mov ebp, ecx
mov ecx, dword [esp + 0x38]
mov byte [edi + ecx], 1
imul edi, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
sub ebp, eax
lea ebx, [edi + eax*2]
mov eax, edx
sar eax, 0xb
lea ecx, [esi + eax*4]
mov eax, edx
sar eax, 5
and eax, 0x3f
add ebp, 1
and edx, 0x1f
mov dword [esp + 0x54], ecx
lea ecx, [esi + eax*4]
lea edx, [esi + edx*4]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x54]
mov cx, word [eax]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
shl cx, 6
add cx, word [edx]
movzx edx, word [ebx]
shl cx, 5
add cx, word [eax]
movzx edi, dx
movzx ecx, cx
mov eax, ecx
and eax, 0xf7def7df
and edi, 0xf7def7df
add edi, eax
mov eax, edi
and eax, 0x8210820
mov esi, eax
shr esi, 5
or ecx, edx
sub eax, esi
and ecx, 0x820
or eax, ecx
or eax, edi
mov word [ebx], ax
add ebx, 2
sub ebp, 1
jne 0x5dc151
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov eax, ecx
sub eax, edi
add ecx, edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x44], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x38]
setl cl
xor eax, eax
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl al
or ecx, eax
xor eax, eax
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x84]
setg al
or ecx, eax
xor eax, eax
cmp dword [esp + 0x94], edi
mov edi, dword [esp + 0x94]
setg al
or ecx, eax
movzx eax, byte [edi + ebp]
or ecx, eax
jne 0x5dc306
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5dc254
mov ecx, eax
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x80]
jle 0x5dc268
mov eax, dword [esp + 0x80]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
imul eax, edi
add eax, dword [esp + 0x20]
mov byte [edi + ebp], 1
lea ebp, [eax + ecx*2]
mov ecx, edx
sar ecx, 0xb
lea eax, [esi + ecx*4]
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
mov dword [esp + 0x54], eax
lea eax, [esi + ecx*4]
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x50], eax
lea eax, [esi + ecx*4]
mov dword [esp + 0x4c], eax
lea ebx, [ebx]
mov ecx, dword [esp + 0x54]
mov ax, word [ecx]
mov ecx, dword [esp + 0x50]
shl ax, 6
add ax, word [ecx]
mov ecx, dword [esp + 0x4c]
shl ax, 5
add ax, word [ecx]
movzx ecx, word [ebp]
movzx eax, ax
and eax, 0xf7def7df
or ecx, 0x8210820
sub ecx, eax
mov eax, ecx
and eax, 0x8210820
mov edi, eax
shr edi, 5
sub eax, edi
and eax, ecx
mov word [ebp], ax
add ebp, 2
sub dword [esp + 0x40], 1
jne 0x5dc2b0
mov edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x2c], 0
jge 0x5dc35a
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
mov dword [esp + 0x28], eax
jl 0x5dc33e
mov ecx, 1
sub eax, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
jmp 0x5dc342
mov ecx, dword [esp + 0x34]
lea edi, [ecx*4]
add dword [esp + 0x14], edi
lea ebp, [edi + ebp + 2]
mov dword [esp + 0x18], ebp
jmp 0x5dc3dc
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
jl 0x5dc394
lea eax, [ebx*4]
mov ecx, 2
sub ecx, eax
sub ebp, eax
add dword [esp + 0x14], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], ebp
jmp 0x5dc3e3
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
mov dword [esp + 0x28], eax
jl 0x5dc3bc
mov ecx, 1
sub eax, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
jmp 0x5dc3c0
mov ecx, dword [esp + 0x34]
mov edi, ecx
sub edi, ebx
add edi, edi
add edi, edi
lea ebp, [edi + ebp + 2]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x14]
lea edi, [edi + ebp + 2]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x94]
test ebx, ebx
jle 0x5dc787
lea ebp, [ebx*4]
mov dword [esp + 0x74], ebp
lea ebp, [ecx + edi]
sub edi, ecx
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x58], edi
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x5c]
add ebp, ebx
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x1c]
imul edi, ebp
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x90]
sub edi, ebx
mov dword [esp + 0x68], edi
mov edi, ebp
neg edi
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x58]
imul edi, ebp
mov dword [esp + 0x60], edi
cmp dword [esp + 0x2c], 0
je 0x5dc66b
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
xor ebx, ebx
cmp edi, dword [esp + 0x80]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x78]
setg bl
xor ecx, ecx
cmp eax, edi
mov edi, dword [esp + 0x84]
setl cl
mov ebp, dword [esp + 0x5c]
or ebx, ecx
xor ecx, ecx
cmp dword [esp + 0x5c], edi
mov edi, dword [esp + 0x7c]
setg cl
or ebx, ecx
xor ecx, ecx
cmp dword [esp + 0x5c], edi
setl cl
or ebx, ecx
mov ecx, dword [esp + 0x38]
movzx edi, byte [ecx + ebp]
or ebx, edi
jne 0x5dc561
mov edi, dword [esp + 0x78]
cmp dword [esp + 0x68], edi
jge 0x5dc4b8
mov dword [esp + 0x24], edi
jmp 0x5dc4bc
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x64], ebx
jle 0x5dc4cb
mov eax, ebx
mov byte [ecx + ebp], 1
mov ecx, eax
sub ecx, edi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x6c]
lea ebp, [ecx + edi*2]
add ebp, dword [esp + 0x20]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
lea esp, [esp]
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
movzx edi, word [ebp]
movzx ecx, cx
and ecx, 0xf7def7df
or edi, 0x8210820
sub edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edi
mov word [ebp], cx
add ebp, 2
sub dword [esp + 0x40], 1
jne 0x5dc510
mov edi, dword [esp + 0x84]
xor ecx, ecx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x7c]
setg cl
xor ebx, ebx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl bl
or ecx, ebx
xor ebx, ebx
cmp eax, dword [esp + 0x78]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x38]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x44]
movzx edi, byte [ebx + edi]
or ecx, edi
jne 0x5dc65f
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x78]
cmp ecx, edi
jge 0x5dc5bf
mov ecx, edi
mov edi, dword [esp + 0x80]
cmp eax, edi
jle 0x5dc5cc
mov eax, edi
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
sub eax, ecx
mov byte [edi + ebx], 1
mov edi, dword [esp + 0x60]
lea ebp, [edi + ecx*2]
add ebp, dword [esp + 0x20]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
mov ecx, edx
add eax, 1
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
nop
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
movzx edi, word [ebp]
movzx ecx, cx
and ecx, 0xf7def7df
or edi, 0x8210820
sub edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edi
mov word [ebp], cx
add ebp, 2
sub eax, 1
jne 0x5dc610
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x18], 0
mov edi, 1
mov dword [esp + 0x2c], 0
jge 0x5dc6df
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5dc6c3
add dword [esp + 0x5c], edi
add ecx, edi
mov edi, dword [esp + 0x1c]
add dword [esp + 0x6c], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x60], edi
mov edi, 1
sub dword [esp + 0x44], edi
sub eax, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
mov ebp, dword [esp + 0x18]
lea edi, [ecx*4]
add dword [esp + 0x14], edi
lea ebp, [edi + ebp + 2]
mov dword [esp + 0x18], ebp
jmp 0x5dc778
add dword [esp + 0x68], edi
sub dword [esp + 0x64], edi
sub ebx, edi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
jl 0x5dc713
mov edi, dword [esp + 0x74]
sub edi, 4
sub dword [esp + 0x18], edi
mov ebp, 2
sub ebp, edi
add dword [esp + 0x14], ebp
mov dword [esp + 0x74], edi
jmp 0x5dc778
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5dc758
add dword [esp + 0x5c], edi
add ecx, edi
mov edi, dword [esp + 0x1c]
add dword [esp + 0x6c], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x60], edi
mov edi, 1
sub dword [esp + 0x44], edi
sub eax, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
mov ebp, dword [esp + 0x18]
mov edi, ecx
sub edi, ebx
add edi, edi
add edi, edi
lea ebp, [edi + ebp + 2]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x14]
lea edi, [edi + ebp + 2]
mov dword [esp + 0x14], edi
test ebx, ebx
jg 0x5dc443
mov edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x90]
sub edi, ecx
mov eax, ebp
sub eax, ebx
mov dword [esp + 0x24], eax
xor eax, eax
add ebp, ebx
cmp edi, dword [esp + 0x7c]
mov dword [esp + 0x44], ebp
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x78]
mov ebp, dword [esp + 0x24]
setl cl
or eax, ecx
xor ecx, ecx
cmp edi, dword [esp + 0x84]
setg cl
or eax, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x80]
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [edi + ecx]
or eax, ecx
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp ebp, eax
jge 0x5dc7ec
mov ebp, eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x44]
cmp eax, ecx
jle 0x5dc7fd
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov byte [edi + ecx], 1
imul edi, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
sub eax, ebp
add eax, 1
mov ebx, eax
mov ecx, edx
mov eax, edx
sar eax, 0xb
sar ecx, 5
and ecx, 0x3f
lea edi, [edi + ebp*2]
lea ebp, [esi + eax*4]
lea eax, [esi + ecx*4]
and edx, 0x1f
mov dword [esp + 0x50], eax
lea esi, [esi + edx*4]
jmp 0x5dc840
mov cx, word [ebp]
mov edx, dword [esp + 0x50]
shl cx, 6
add cx, word [edx]
add edi, 2
shl cx, 5
add cx, word [esi]
movzx eax, cx
movzx ecx, word [edi - 2]
and eax, 0xf7def7df
or ecx, 0x8210820
sub ecx, eax
mov eax, ecx
and eax, 0x8210820
mov edx, eax
shr edx, 5
sub eax, edx
and eax, ecx
sub ebx, 1
mov word [edi - 2], ax
jne 0x5dc840
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov eax, ecx
add ecx, esi
sub eax, esi
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
xor eax, eax
cmp dword [esp + 0x94], ecx
mov ebp, dword [esp + 0x94]
setl al
xor ecx, ecx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl cl
or eax, ecx
xor ecx, ecx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x84]
setg cl
or eax, ecx
xor ecx, ecx
cmp dword [esp + 0x94], edi
mov edi, dword [esp + 0x38]
setg cl
or eax, ecx
movzx ecx, byte [edi + ebp]
or eax, ecx
jne 0x5dc9c9
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5dc922
mov ecx, eax
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x80]
cmp eax, esi
jle 0x5dc933
mov eax, esi
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
imul eax, ebp
add eax, dword [esp + 0x20]
mov byte [edi + ebp], 1
lea eax, [eax + ecx*2]
mov edi, edx
mov esi, edx
and edi, 0x7e0
mov ecx, edx
and esi, 0xf800
and ecx, 0x1f
mov dword [esp + 0x58], edi
mov dword [esp + 0x4c], ecx
jmp 0x5dc974
mov edi, dword [esp + 0x58]
movzx ecx, word [eax]
mov ebp, ecx
and ebp, 0x7e0
imul ebp, edi
mov edi, ecx
and edi, 0xf800
imul edi, esi
and ecx, 0x1f
imul ecx, dword [esp + 0x4c]
shr ebp, 0xb
shr edi, 0x10
and ebp, 0x7e0
and edi, 0xf800
or ebp, edi
shr ecx, 5
or ebp, ecx
mov word [eax], bp
add eax, 2
sub dword [esp + 0x40], 1
jne 0x5dc970
mov esi, dword [esp + 0x98]
mov ebp, dword [esp + 0x94]
mov ecx, dword [esp + 0x18]
xor edi, edi
test ecx, ecx
jge 0x5dca12
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x30]
cmp eax, esi
mov dword [esp + 0x28], eax
jl 0x5dc9f9
sub eax, esi
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov edi, 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5dca7e
cmp dword [esp + 0x14], 0
lea ebx, [esi - 1]
mov dword [esp + 0x48], ebx
jl 0x5dca3a
lea eax, [ebx*4]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
jmp 0x5dca7e
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x30]
cmp eax, esi
mov dword [esp + 0x28], eax
jl 0x5dca60
sub eax, esi
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov edi, 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5dcdde
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x90]
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
lea ecx, [esi + ebp]
mov dword [esp + 0x68], ecx
imul ecx, dword [esp + 0x1c]
add eax, ebx
mov dword [esp + 0x64], eax
mov eax, ebp
sub eax, esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
mov ebp, eax
sub esi, ebx
neg ecx
imul eax, dword [esp + 0x1c]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x6c], esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x5c], eax
lea esp, [esp]
test edi, edi
je 0x5dccc3
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x64]
xor ecx, ecx
cmp eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x68]
setl cl
xor eax, eax
cmp esi, dword [esp + 0x80]
mov dword [esp + 0x24], esi
setg al
or ecx, eax
xor eax, eax
cmp edi, ebx
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x84]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx ebx, byte [eax + ebp]
or ecx, ebx
jne 0x5dcbe0
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x6c], ecx
jge 0x5dcb4a
mov esi, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x64], ecx
jle 0x5dcb59
mov edi, ecx
mov ecx, dword [esp + 0x60]
mov byte [eax + ebp], 1
mov eax, edi
sub eax, esi
add eax, 1
mov dword [esp + 0x40], eax
lea esi, [ecx + esi*2]
add esi, dword [esp + 0x20]
mov ebx, edx
mov eax, edx
and ebx, 0x7e0
mov ecx, edx
and eax, 0xf800
and ecx, 0x1f
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], ecx
jmp 0x5dcb95
mov ebx, dword [esp + 0x58]
movzx ecx, word [esi]
mov ebp, ecx
and ebp, 0x7e0
imul ebp, ebx
mov ebx, ecx
and ebx, 0xf800
imul ebx, eax
and ecx, 0x1f
imul ecx, dword [esp + 0x4c]
shr ebp, 0xb
shr ebx, 0x10
and ebp, 0x7e0
and ebx, 0xf800
or ebp, ebx
shr ecx, 5
or ebp, ecx
mov word [esi], bp
add esi, 2
sub dword [esp + 0x40], 1
jne 0x5dcb91
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x54]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x84]
setg al
or ecx, eax
xor eax, eax
cmp edi, dword [esp + 0x78]
setl al
or ecx, eax
xor eax, eax
cmp esi, dword [esp + 0x80]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx ebx, byte [eax + ebp]
or ecx, ebx
jne 0x5dccbb
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5dcc2e
mov esi, ecx
mov ecx, dword [esp + 0x80]
cmp edi, ecx
jle 0x5dcc3b
mov edi, ecx
mov ecx, dword [esp + 0x5c]
sub edi, esi
add edi, 1
mov byte [eax + ebp], 1
mov dword [esp + 0x40], edi
lea esi, [ecx + esi*2]
add esi, dword [esp + 0x20]
mov eax, edx
mov edi, edx
mov ecx, edx
and eax, 0x7e0
and edi, 0xf800
and ecx, 0x1f
mov dword [esp + 0x4c], ecx
jmp 0x5dcc70
movzx ecx, word [esi]
mov ebx, ecx
and ebx, 0x7e0
mov ebp, ecx
imul ebx, eax
and ebp, 0xf800
imul ebp, edi
and ecx, 0x1f
imul ecx, dword [esp + 0x4c]
shr ebx, 0xb
shr ebp, 0x10
and ebx, 0x7e0
and ebp, 0xf800
or ebx, ebp
shr ecx, 5
or ebx, ecx
mov word [esi], bx
add esi, 2
sub dword [esp + 0x40], 1
jne 0x5dcc70
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
xor edi, edi
cmp dword [esp + 0x18], edi
mov dword [esp + 0x2c], edi
jge 0x5dcd34
add ecx, dword [esp + 0x9c]
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x5dcd17
mov ecx, 1
add dword [esp + 0x34], ecx
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x5c], ecx
sub ebp, 1
sub dword [esp + 0x28], eax
mov dword [esp + 0x54], ebp
mov edi, 1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5dcdd6
sub dword [esp + 0x64], 1
sub ebx, 1
add esi, 1
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x6c], esi
jl 0x5dcd6d
mov eax, dword [esp + 0x74]
sub eax, 4
sub dword [esp + 0x18], eax
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
mov dword [esp + 0x74], eax
jmp 0x5dcdd6
add ecx, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x5dcdb0
mov ecx, 1
add dword [esp + 0x34], ecx
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x5c], ecx
sub ebp, 1
sub dword [esp + 0x28], eax
mov dword [esp + 0x54], ebp
mov edi, 1
jmp 0x5dcdb4
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jg 0x5dcae0
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
sub esi, dword [esp + 0x34]
mov eax, ecx
sub eax, ebx
lea edi, [ebx + ecx]
xor ecx, ecx
cmp esi, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
setl cl
xor eax, eax
cmp edi, dword [esp + 0x78]
mov ebx, dword [esp + 0x80]
setl al
or ecx, eax
xor eax, eax
cmp esi, dword [esp + 0x84]
setg al
or ecx, eax
xor eax, eax
cmp dword [esp + 0x24], ebx
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [esi + eax]
or ecx, eax
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
cmp eax, ecx
jge 0x5dce4d
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp edi, ecx
jle 0x5dce5a
mov edi, ecx
mov ecx, dword [esp + 0x38]
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
sub edi, eax
mov ecx, edx
mov ebx, edx
add edi, 1
and ecx, 0x7e0
and ebx, 0xf800
mov dword [esp + 0x40], edi
lea esi, [esi + eax*2]
and edx, 0x1f
lea ebx, [ebx]
movzx eax, word [esi]
mov edi, eax
and edi, 0x7e0
mov ebp, eax
imul edi, ecx
and ebp, 0xf800
imul ebp, ebx
and eax, 0x1f
imul eax, edx
shr edi, 0xb
shr ebp, 0x10
and edi, 0x7e0
and ebp, 0xf800
or edi, ebp
shr eax, 5
or edi, eax
mov word [esi], di
add esi, 2
sub dword [esp + 0x40], 1
jne 0x5dce90
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov eax, ecx
add ecx, esi
sub eax, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x38]
setl al
xor ecx, ecx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl cl
or eax, ecx
xor ecx, ecx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x94]
setg cl
or eax, ecx
xor ecx, ecx
cmp esi, dword [esp + 0x84]
setg cl
or eax, ecx
movzx ecx, byte [esi + ebp]
or eax, ecx
jne 0x5dd056
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5dcf6a
mov ecx, eax
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x80]
jle 0x5dcf7e
mov eax, dword [esp + 0x80]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
imul eax, esi
add eax, dword [esp + 0x20]
mov byte [esi + ebp], 1
lea eax, [eax + ecx*2]
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
mov dword [esp + 0x58], ecx
mov ecx, edx
sar ecx, 0xb
mov dword [esp + 0x54], ecx
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], ecx
jmp 0x5dcfc0
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
mov ebp, esi
and esi, 0x1f
mov dword [esp + 0x10], esi
mov esi, eax
imul esi, dword [esp + 0x58]
shr ebp, 0xb
mov dword [esp + 0x50], ebp
sar esi, 6
sub esi, eax
mov eax, dword [esp + 0x50]
mov ebp, ecx
shr ebp, 5
and ebp, 0x3f
add bp, word [edi + esi*4]
mov esi, dword [esp + 0x54]
imul esi, eax
sar esi, 5
sub esi, eax
mov ax, cx
shr ax, 0xb
add ax, word [edi + esi*4]
shl bp, 5
shl ax, 0xb
or bp, ax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x4c]
sar eax, 5
sub eax, dword [esp + 0x10]
and ecx, 0x1f
add cx, word [edi + eax*4]
mov eax, dword [esp + 0x2c]
or bp, cx
mov word [eax], bp
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5dcfc0
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x2c], 0
jge 0x5dd0a8
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5dd08f
sub eax, dword [esp + 0x30]
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [eax + ebp + 2]
mov dword [esp + 0x18], ecx
jmp 0x5dd122
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
jl 0x5dd0d7
lea eax, [ebx*4]
mov ecx, 2
sub ebp, eax
sub ecx, eax
add dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
jmp 0x5dd122
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5dd104
mov ebp, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [eax + ebp + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5dd530
mov eax, dword [esp + 0x90]
mov ebp, dword [esp + 0x34]
add eax, ebx
lea ecx, [ebx*4]
mov dword [esp + 0x64], eax
mov eax, esi
mov dword [esp + 0x74], ecx
lea ecx, [esi + ebp]
mov esi, dword [esp + 0x90]
sub eax, ebp
mov ebp, dword [esp + 0x1c]
sub esi, ebx
mov dword [esp + 0x68], esi
mov esi, ebp
mov dword [esp + 0x5c], ecx
imul ecx, ebp
neg esi
mov dword [esp + 0x60], eax
imul eax, ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x70], eax
test ebp, ebp
je 0x5dd406
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
xor ecx, ecx
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x24], ebp
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x80]
mov ebp, esi
setg al
mov dword [esp + 0x44], esi
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x78]
mov ebp, dword [esp + 0x5c]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x84]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebp]
or ecx, eax
jne 0x5dd2d2
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x68], eax
jge 0x5dd1f2
mov dword [esp + 0x24], eax
jmp 0x5dd1f6
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x64], ecx
jle 0x5dd209
mov esi, ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x38]
sub esi, eax
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x6c]
lea ebp, [ecx + eax*2]
add ebp, dword [esp + 0x20]
mov eax, edx
sar eax, 5
and eax, 0x3f
mov dword [esp + 0x58], eax
mov eax, edx
sar eax, 0xb
mov dword [esp + 0x54], eax
add esi, 1
mov eax, edx
and eax, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], eax
movzx ecx, word [ebp]
movzx eax, cx
mov esi, eax
mov ebx, eax
and eax, 0x1f
mov dword [esp + 0x10], eax
shr esi, 5
and esi, 0x3f
mov eax, esi
imul eax, dword [esp + 0x58]
sar eax, 6
sub eax, esi
shr ebx, 0xb
mov esi, ecx
shr esi, 5
and esi, 0x3f
add si, word [edi + eax*4]
mov dword [esp + 0x50], ebx
mov eax, ebx
mov ebx, dword [esp + 0x54]
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, cx
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x4c]
sar eax, 5
sub eax, dword [esp + 0x10]
and ecx, 0x1f
add cx, word [edi + eax*4]
add ebp, 2
or si, cx
sub dword [esp + 0x40], 1
mov word [ebp - 2], si
jne 0x5dd243
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x60]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x84]
mov ebp, dword [esp + 0x24]
setg al
or ecx, eax
xor eax, eax
cmp esi, dword [esp + 0x78]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x80]
mov ebp, dword [esp + 0x60]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebp]
or ecx, eax
jne 0x5dd402
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
cmp eax, ecx
jge 0x5dd32c
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5dd339
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x60]
sub esi, eax
mov byte [ebx + ecx], 1
mov ecx, dword [esp + 0x70]
lea ebp, [ecx + eax*2]
add ebp, dword [esp + 0x20]
mov eax, edx
sar eax, 5
and eax, 0x3f
mov dword [esp + 0x58], eax
mov eax, edx
sar eax, 0xb
mov dword [esp + 0x54], eax
add esi, 1
mov eax, edx
and eax, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], eax
movzx ecx, word [ebp]
movzx eax, cx
mov esi, eax
mov ebx, eax
and eax, 0x1f
mov dword [esp + 0x10], eax
shr esi, 5
and esi, 0x3f
mov eax, esi
imul eax, dword [esp + 0x58]
sar eax, 6
sub eax, esi
shr ebx, 0xb
mov esi, ecx
shr esi, 5
and esi, 0x3f
add si, word [edi + eax*4]
mov dword [esp + 0x50], ebx
mov eax, ebx
mov ebx, dword [esp + 0x54]
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, cx
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x4c]
sar eax, 5
sub eax, dword [esp + 0x10]
and ecx, 0x1f
add cx, word [edi + eax*4]
add ebp, 2
or si, cx
sub dword [esp + 0x40], 1
mov word [ebp - 2], si
jne 0x5dd377
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
xor ebp, ebp
cmp dword [esp + 0x18], ebp
jge 0x5dd470
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x30]
cmp eax, esi
mov dword [esp + 0x28], eax
jl 0x5dd453
mov ebp, dword [esp + 0x3c]
add ecx, dword [esp + 0x1c]
add dword [esp + 0x70], ebp
add dword [esp + 0x34], 1
add dword [esp + 0x5c], 1
sub dword [esp + 0x60], 1
sub eax, esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x28], eax
mov ebp, 1
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea esi, [esi + eax + 2]
mov dword [esp + 0x18], esi
jmp 0x5dd521
cmp dword [esp + 0x14], 0
jl 0x5dd4a9
mov eax, 1
add dword [esp + 0x68], eax
sub dword [esp + 0x64], eax
sub ebx, eax
mov eax, dword [esp + 0x74]
sub eax, 4
sub dword [esp + 0x18], eax
mov esi, 2
sub esi, eax
add dword [esp + 0x14], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x74], eax
jmp 0x5dd521
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
mov esi, 1
add dword [esp + 0x68], esi
sub dword [esp + 0x64], esi
sub ebx, esi
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x28], eax
jl 0x5dd4ff
add dword [esp + 0x34], esi
add dword [esp + 0x5c], esi
mov esi, dword [esp + 0x3c]
add ecx, dword [esp + 0x1c]
add dword [esp + 0x70], esi
mov ebp, 1
sub dword [esp + 0x60], ebp
sub eax, dword [esp + 0x30]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea esi, [esi + eax + 2]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
lea eax, [esi + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jg 0x5dd180
mov esi, dword [esp + 0x94]
sub esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x90]
lea ebp, [ebx + ecx]
mov eax, ecx
sub eax, ebx
xor ecx, ecx
cmp esi, dword [esp + 0x7c]
setl cl
xor ebx, ebx
cmp ebp, dword [esp + 0x78]
setl bl
or ecx, ebx
xor ebx, ebx
cmp esi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp eax, dword [esp + 0x80]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [esi + ebx]
or ecx, ebx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5dd58c
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp ebp, ecx
jle 0x5dd599
mov ebp, ecx
mov ecx, dword [esp + 0x38]
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
sub ebp, eax
add ebp, 1
mov dword [esp + 0x40], ebp
lea esi, [esi + eax*2]
mov ebp, edx
sar ebp, 5
mov eax, edx
sar eax, 0xb
and ebp, 0x3f
and edx, 0x1f
mov dword [esp + 0x2c], esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], edx
movzx eax, word [esi]
movzx esi, ax
mov ecx, esi
shr ecx, 5
and ecx, 0x3f
mov edx, ecx
imul edx, ebp
sar edx, 6
sub edx, ecx
mov ecx, eax
shr ecx, 5
and ecx, 0x3f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x54]
mov ebx, esi
shr ebx, 0xb
imul edx, ebx
sar edx, 5
sub edx, ebx
mov bx, ax
and esi, 0x1f
shr bx, 0xb
add bx, word [edi + edx*4]
mov edx, esi
imul edx, dword [esp + 0x4c]
sar edx, 5
sub edx, esi
mov esi, dword [esp + 0x2c]
shl cx, 5
and eax, 0x1f
add ax, word [edi + edx*4]
shl bx, 0xb
or cx, bx
or cx, ax
mov word [esi], cx
add esi, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], esi
jne 0x5dd5d2
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov eax, ecx
add ecx, esi
sub eax, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x94]
setl al
xor ecx, ecx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl cl
or eax, ecx
xor ecx, ecx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x38]
setg cl
or eax, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x84]
setg cl
or eax, ecx
movzx ecx, byte [esi + ebp]
or eax, ecx
jne 0x5dd7b7
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5dd6e0
mov ecx, eax
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x80]
jle 0x5dd6f4
mov eax, dword [esp + 0x80]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
imul eax, ebp
add eax, dword [esp + 0x20]
mov byte [esi + ebp], 1
lea eax, [eax + ecx*2]
mov ecx, edx
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
mov ebp, ecx
and esi, 0x3f
shr ebp, 0xb
and ecx, 0x1f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x50], ecx
jmp 0x5dd744
mov esi, dword [esp + 0x54]
movzx ecx, word [eax]
movzx eax, cx
mov ebp, eax
shr ebp, 5
and ebp, 0x3f
sub esi, ebp
mov dword [esp + 0x44], eax
mov ebp, ecx
shr ebp, 5
shr eax, 0xb
and ebp, 0x3f
add bp, word [edi + esi*4]
mov esi, dword [esp + 0x58]
sub esi, eax
mov ax, cx
shr ax, 0xb
add ax, word [edi + esi*4]
mov esi, dword [esp + 0x50]
shl ax, 0xb
shl bp, 5
or bp, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
sub esi, eax
mov eax, dword [esp + 0x2c]
and ecx, 0x1f
add cx, word [edi + esi*4]
add eax, 2
or bp, cx
sub dword [esp + 0x40], 1
mov word [eax - 2], bp
mov dword [esp + 0x2c], eax
jne 0x5dd740
mov ebp, dword [esp + 0x94]
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5dd80c
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5dd7ef
sub eax, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5dd887
mov ebx, dword [esp + 0x98]
add ebx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
jl 0x5dd83c
lea eax, [ebx*4]
sub dword [esp + 0x18], eax
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
jmp 0x5dd887
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x5dd865
sub eax, ecx
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x5ddc59
mov esi, dword [esp + 0x90]
lea ecx, [ebx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x34]
lea eax, [ecx + ebp]
mov dword [esp + 0x60], eax
lea eax, [ebx + esi]
mov dword [esp + 0x64], eax
mov eax, ebp
mov ebp, dword [esp + 0x60]
sub eax, ecx
mov ecx, dword [esp + 0x1c]
imul ebp, ecx
mov dword [esp + 0x6c], ebp
mov ebp, esi
mov esi, ecx
neg esi
sub ebp, ebx
mov dword [esp + 0x5c], eax
imul eax, ecx
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x68], eax
test esi, esi
je 0x5ddb44
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], ebp
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x80]
mov ebp, dword [esp + 0x60]
setg cl
mov dword [esp + 0x44], esi
or eax, ecx
xor ecx, ecx
cmp esi, ebx
setl cl
or eax, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x84]
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ebx, byte [ecx + ebp]
or eax, ebx
jne 0x5dda20
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x70], eax
jge 0x5dd953
mov dword [esp + 0x24], eax
jmp 0x5dd957
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x64], ebx
jle 0x5dd96a
mov esi, ebx
mov dword [esp + 0x44], ebx
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x6c]
sub esi, eax
lea eax, [ecx + eax*2]
add eax, dword [esp + 0x20]
mov ecx, edx
not ecx
movzx ecx, cx
mov ebx, ecx
shr ebx, 5
mov ebp, ecx
add esi, 1
and ebx, 0x3f
shr ebp, 0xb
and ecx, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x50], ecx
jmp 0x5dd9b8
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x50]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5dd9b0
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x5c]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x5c]
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x84]
mov ebp, dword [esp + 0x24]
setg al
or ecx, eax
xor eax, eax
cmp esi, dword [esp + 0x78]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x80]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx ebx, byte [ebx + eax]
or ecx, ebx
jne 0x5ddb3c
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5dda76
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5dda83
mov esi, ecx
mov ecx, dword [esp + 0x5c]
mov byte [ecx + eax], 1
mov eax, dword [esp + 0x68]
mov ecx, edx
not ecx
movzx ecx, cx
sub esi, ebp
lea eax, [eax + ebp*2]
add eax, dword [esp + 0x20]
mov ebx, ecx
shr ebx, 5
mov ebp, ecx
add esi, 1
and ebx, 0x3f
shr ebp, 0xb
and ecx, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x50], ecx
jmp 0x5ddad8
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x50]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5ddad0
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
xor esi, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x2c], esi
jge 0x5ddbb2
add ecx, dword [esp + 0x9c]
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x5ddb95
mov ecx, 1
add dword [esp + 0x34], ecx
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
mov esi, 1
sub dword [esp + 0x5c], esi
sub dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
jmp 0x5ddc51
sub dword [esp + 0x64], 1
sub ebx, 1
add ebp, 1
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x70], ebp
jl 0x5ddbeb
mov eax, dword [esp + 0x74]
sub eax, 4
sub dword [esp + 0x18], eax
mov ecx, 2
sub ecx, eax
add dword [esp + 0x14], ecx
mov dword [esp + 0x74], eax
jmp 0x5ddc51
add ecx, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x5ddc2b
mov ecx, 1
add dword [esp + 0x34], ecx
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
mov esi, 1
sub dword [esp + 0x5c], esi
sub dword [esp + 0x28], eax
jmp 0x5ddc2f
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub eax, ebx
add eax, eax
add eax, eax
lea ecx, [ecx + eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x14], eax
test ebx, ebx
jg 0x5dd8e5
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
sub esi, dword [esp + 0x34]
lea ebp, [ebx + ecx]
mov eax, ecx
sub eax, ebx
xor ecx, ecx
cmp esi, dword [esp + 0x7c]
setl cl
xor ebx, ebx
cmp ebp, dword [esp + 0x78]
setl bl
or ecx, ebx
xor ebx, ebx
cmp esi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp eax, dword [esp + 0x80]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [esi + ebx]
or ecx, ebx
jne case.0x5e09da.5
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5ddcbc
mov eax, ecx
mov ecx, dword [esp + 0x80]
cmp ebp, ecx
jle 0x5ddcc9
mov ebp, ecx
mov ecx, dword [esp + 0x38]
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
not edx
sub ebp, eax
lea esi, [esi + eax*2]
movzx eax, dx
mov edx, eax
shr edx, 5
mov ebx, eax
add ebp, 1
and edx, 0x3f
shr ebx, 0xb
and eax, 0x1f
mov dword [esp + 0x40], ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x50], eax
jmp 0x5ddd18
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
movzx eax, word [esi]
movzx ecx, ax
mov ebp, ecx
shr ebp, 5
and ebp, 0x3f
sub edx, ebp
mov ebp, eax
shr ebp, 5
and ebp, 0x3f
add bp, word [edi + edx*4]
mov edx, ecx
shr edx, 0xb
sub ebx, edx
mov dx, ax
shr dx, 0xb
add dx, word [edi + ebx*4]
shl bp, 5
shl dx, 0xb
or bp, dx
mov edx, dword [esp + 0x50]
and ecx, 0x1f
sub edx, ecx
and eax, 0x1f
add ax, word [edi + edx*4]
add esi, 2
or bp, ax
sub dword [esp + 0x40], 1
mov word [esi - 2], bp
jne 0x5ddd10
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
imul eax, eax
cdq
idiv ecx
lea edx, [ecx + ecx]
mov ebx, 3
sub ebx, edx
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x30], eax
mov eax, ecx
add ecx, ecx
add ecx, ecx
mov edx, ecx
mov ecx, 3
sub ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [edx + 0x1c]
sub ecx, ebp
mov dword [esp + 0x48], eax
je 0x5e094e
sub ecx, 1
jne case.0x5e09da.5
mov edx, dword [0x8e80e4]
mov ecx, edx
and ecx, 0xffffff
cmp ecx, 0xffffff
je 0x5dde4e
movzx ecx, byte [esp + 0xa2]
movzx edi, byte [0x8e80e6]
imul ecx, edi
sar ecx, 8
mov byte [esp + 0xa2], cl
movzx ecx, byte [esp + 0xa1]
movzx edi, dh
imul ecx, edi
sar ecx, 8
mov byte [esp + 0xa1], cl
movzx ecx, byte [esp + 0xa0]
movzx edx, dl
imul ecx, edx
sar ecx, 8
mov byte [esp + 0xa0], cl
mov ecx, dword [0x8e80bc]
cmp ecx, 0xb
ja case.0x5e09da.5
jmp dword [ecx*4 + 0x5f0224]
mov ecx, dword [0x8e80c0]
cmp ecx, 0xff
jne 0x5de316
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ecx, edx
sub ecx, esi
add edx, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x44], edx
xor edx, edx
cmp ecx, dword [esp + 0x7c]
setl dl
xor ecx, ecx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x38]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x94]
movzx esi, byte [esi + ecx]
or edx, esi
jne 0x5ddf3a
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp esi, edx
jge 0x5ddefd
mov esi, edx
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
cmp edx, edi
jle 0x5ddf0e
mov edx, edi
mov edi, dword [esp + 0x38]
mov byte [edi + ecx], 1
mov edi, dword [esp + 0x1c]
imul edi, ecx
sub edx, esi
add edx, 1
add edi, dword [esp + 0x20]
lea esi, [edi + esi*4]
mov edi, dword [esp + 0xa0]
mov dword [esi], edi
add esi, 4
sub edx, 1
jne 0x5ddf30
xor esi, esi
test ebx, ebx
jge 0x5ddf54
mov esi, 1
add ebx, 6
add dword [esp + 0x14], 4
mov ebp, esi
jmp 0x5ddfc3
cmp dword [esp + 0x14], 0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x28], edx
jl 0x5ddf8d
mov edi, dword [esp + 0x30]
cmp edx, edi
jl 0x5ddf77
lea eax, [edx - 1]
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [eax*4]
mov edi, 2
sub edi, edx
sub ebx, edx
add dword [esp + 0x14], edi
jmp 0x5ddfc3
mov esi, dword [esp + 0x30]
cmp edx, esi
jl 0x5ddf9e
lea eax, [edx - 1]
sub edx, esi
mov dword [esp + 0x28], edx
lea edi, [eax*4]
mov edx, 4
sub edx, edi
mov edi, dword [esp + 0x14]
lea ebx, [ebx + edx + 2]
mov ebp, 1
lea edx, [edi + edx + 2]
mov esi, ebp
mov dword [esp + 0x14], edx
test eax, eax
jle 0x5de267
mov edi, dword [esp + 0x90]
lea edx, [eax*4]
mov dword [esp + 0x70], edx
lea edx, [ecx + ebp]
mov dword [esp + 0x5c], edx
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x90]
sub edx, eax
add edi, eax
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x60], edi
sub ecx, ebp
mov edi, edx
neg edi
mov dword [esp + 0x58], ecx
imul ecx, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], ecx
lea esp, [esp]
test esi, esi
je 0x5de17e
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x38]
setl cl
xor edx, edx
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x84]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [esi + edi]
or ecx, edx
jne 0x5de0da
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5de09c
mov dword [esp + 0x24], ecx
jmp 0x5de0a0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x60], edx
jle 0x5de0b1
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x44]
mov byte [esi + edi], 1
mov esi, dword [esp + 0x6c]
sub edx, ecx
lea ecx, [esi + ecx*4]
mov esi, dword [esp + 0xa0]
add edx, 1
add ecx, dword [esp + 0x20]
mov dword [ecx], esi
add ecx, 4
sub edx, 1
jne 0x5de0d0
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
xor ecx, ecx
cmp dword [esp + 0x58], edx
mov edi, dword [esp + 0x58]
setl cl
xor edx, edx
cmp dword [esp + 0x58], esi
mov esi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx esi, byte [edi + edx]
or ecx, esi
jne 0x5de17a
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5de13c
mov esi, ecx
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x80]
jle 0x5de150
mov ecx, dword [esp + 0x80]
sub ecx, esi
add ecx, 1
mov byte [edi + edx], 1
mov edx, ecx
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + esi*4]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0xa0]
lea ecx, [ecx]
mov dword [ecx], esi
add ecx, 4
sub edx, 1
jne 0x5de170
mov edi, dword [esp + 0x3c]
xor esi, esi
test ebx, ebx
jge 0x5de1af
mov edx, dword [esp + 0x1c]
add dword [esp + 0x6c], edx
add dword [esp + 0x68], edi
mov esi, 1
add dword [esp + 0x5c], esi
sub dword [esp + 0x58], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
jmp 0x5de254
mov edx, dword [esp + 0x14]
test edx, edx
jl 0x5de1fa
mov edx, dword [esp + 0x28]
add edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x30]
cmp edx, ecx
mov dword [esp + 0x28], edx
jl 0x5de1e4
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov edx, 2
sub edx, ecx
sub ebx, ecx
add dword [esp + 0x14], edx
jmp 0x5de258
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
cmp ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5de229
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
add dword [esp + 0x68], edi
mov esi, 1
add dword [esp + 0x5c], esi
sub dword [esp + 0x58], esi
add ebp, esi
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea edx, [edx + ecx + 2]
mov dword [esp + 0x14], edx
lea ebx, [ebx + ecx + 2]
test eax, eax
jg 0x5de020
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
lea edi, [eax + edx]
mov esi, edx
sub esi, eax
xor eax, eax
sub ecx, ebp
cmp ecx, dword [esp + 0x7c]
setl al
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
or eax, edx
xor edx, edx
cmp ecx, dword [esp + 0x84]
setg dl
or eax, edx
xor edx, edx
cmp esi, dword [esp + 0x80]
setg dl
or eax, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [ecx + edx]
or eax, edx
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp esi, eax
jge 0x5de2c1
mov esi, eax
mov eax, dword [esp + 0x80]
cmp edi, eax
jle 0x5de2ce
mov edi, eax
mov eax, dword [esp + 0x38]
mov byte [ecx + eax], 1
imul ecx, dword [esp + 0x1c]
sub edi, esi
add edi, 1
add ecx, dword [esp + 0x20]
lea ecx, [ecx + esi*4]
jmp 0x5de2f0
mov edx, dword [esp + 0xa0]
mov dword [ecx], edx
add ecx, 4
sub edi, 1
jne 0x5de2f0
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
test ecx, ecx
je case.0x5e09da.5
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ecx, edx
add edx, esi
sub ecx, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x94]
setl cl
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x38]
setg dl
or ecx, edx
movzx edx, byte [esi + edi]
or ecx, edx
jne 0x5de43d
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp ecx, edx
jge 0x5de3a5
mov ecx, edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x80]
jle 0x5de3b9
mov edx, dword [esp + 0x80]
mov byte [esi + edi], 1
mov esi, dword [esp + 0x1c]
imul esi, edi
sub edx, ecx
add edx, 1
add esi, dword [esp + 0x20]
lea esi, [esi + ecx*4]
movzx edi, byte [esi]
movzx ecx, byte [esp + 0xa0]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, byte [esp + 0xa2]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub edx, 1
jne 0x5de3d0
mov edi, dword [esp + 0x94]
xor esi, esi
test ebx, ebx
jge 0x5de457
mov esi, 1
add ebx, 6
add dword [esp + 0x14], 4
mov ebp, esi
jmp 0x5de4c2
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5de490
cmp ecx, edx
jl 0x5de47a
lea eax, [ecx - 1]
sub ecx, edx
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edx, 2
sub edx, ecx
sub ebx, ecx
add dword [esp + 0x14], edx
jmp 0x5de4c6
cmp ecx, edx
jl 0x5de49d
lea eax, [ecx - 1]
sub ecx, edx
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edx, 4
sub edx, ecx
mov ecx, dword [esp + 0x14]
lea ebx, [ebx + edx + 2]
mov ebp, 1
lea edx, [ecx + edx + 2]
mov esi, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], ebx
jle 0x5de831
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
lea edx, [edi + ebp]
mov dword [esp + 0x60], ecx
mov ecx, edi
mov edi, dword [esp + 0x90]
sub edi, eax
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x1c]
sub ecx, ebp
mov dword [esp + 0x58], edx
imul edx, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x5c], ecx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], ecx
test esi, esi
je 0x5de749
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x24], edx
xor edx, edx
cmp ecx, dword [esp + 0x7c]
setl dl
xor ecx, ecx
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x78]
setg cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x84]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x58], esi
mov esi, dword [esp + 0x58]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esi + ecx]
or edx, ecx
jne 0x5de642
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5de59e
mov dword [esp + 0x24], ecx
jmp 0x5de5a2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x60], edx
jle 0x5de5b3
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x38]
movzx edi, byte [esp + 0xa0]
movzx ebp, byte [esp + 0xa1]
mov byte [esi + edx], 1
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x6c]
sub esi, ecx
lea ecx, [edx + ecx*4]
add esi, 1
add ecx, dword [esp + 0x20]
nop
movzx edx, byte [ecx]
mov ebx, edi
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx], bl
movzx edx, byte [ecx + 1]
mov ebx, ebp
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 1], bl
movzx edx, byte [ecx + 2]
movzx ebx, byte [esp + 0xa2]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub esi, 1
jne 0x5de5e0
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
xor ecx, ecx
cmp dword [esp + 0x5c], edx
setl cl
xor edx, edx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x5c]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [esi + edx]
or ecx, edx
jne 0x5de745
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edx, ecx
jge 0x5de6a4
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x80]
cmp ecx, esi
jle 0x5de6b5
mov ecx, esi
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x5c]
movzx ebp, byte [esp + 0xa0]
sub ecx, edx
add ecx, 1
mov byte [edi + esi], 1
movzx edi, byte [esp + 0xa1]
mov esi, ecx
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + edx*4]
add ecx, dword [esp + 0x20]
movzx edx, byte [ecx]
mov ebx, ebp
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx], bl
movzx edx, byte [ecx + 1]
mov ebx, edi
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 1], bl
movzx edx, byte [ecx + 2]
movzx ebx, byte [esp + 0xa2]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub esi, 1
jne 0x5de6e3
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
xor esi, esi
test ebx, ebx
jge 0x5de77e
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
add edx, dword [esp + 0x1c]
mov esi, 1
add dword [esp + 0x58], esi
sub dword [esp + 0x5c], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
jmp 0x5de81d
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], ecx
jl 0x5de7ca
cmp ecx, dword [esp + 0x30]
jl 0x5de7b4
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov edi, 2
sub edi, ecx
sub ebx, ecx
add dword [esp + 0x14], edi
jmp 0x5de825
mov esi, dword [esp + 0x30]
cmp ecx, esi
jl 0x5de7ea
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, esi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
add edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov esi, 1
add dword [esp + 0x58], esi
sub dword [esp + 0x5c], esi
add ebp, esi
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], ebx
jg 0x5de522
mov ecx, dword [esp + 0x90]
lea esi, [eax + ecx]
xor edx, edx
mov edi, ecx
mov ecx, dword [esp + 0x94]
sub edi, eax
sub ecx, ebp
cmp ecx, dword [esp + 0x7c]
setl dl
xor eax, eax
cmp esi, dword [esp + 0x78]
setl al
or edx, eax
xor eax, eax
cmp ecx, dword [esp + 0x84]
setg al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x80]
setg al
or edx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [ecx + eax]
or edx, eax
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp edi, eax
jge 0x5de892
mov edi, eax
mov eax, dword [esp + 0x80]
cmp esi, eax
jle 0x5de89f
mov esi, eax
mov edx, dword [esp + 0x38]
movzx ebp, byte [esp + 0xa1]
mov byte [ecx + edx], 1
imul ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xa2]
sub esi, edi
add esi, 1
add ecx, dword [esp + 0x20]
lea eax, [ecx + edi*4]
movzx edi, byte [esp + 0xa0]
movzx ecx, byte [eax]
mov ebx, edi
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax], bl
movzx ecx, byte [eax + 1]
mov ebx, ebp
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 1], bl
movzx ecx, byte [eax + 2]
mov ebx, edx
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
sub esi, 1
jne 0x5de8d0
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov ecx, edx
sub ecx, edi
add edi, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x7c]
xor edx, edx
cmp dword [esp + 0x94], ecx
mov dword [esp + 0x44], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x78]
mov edi, dword [esp + 0x80]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x38]
setg cl
xor ebx, ebx
or edx, ecx
mov ecx, dword [esp + 0x94]
cmp ecx, dword [esp + 0x84]
movzx edi, byte [edi + ecx]
setg bl
or edx, ebx
or edx, edi
jne 0x5dea92
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp edi, edx
jge 0x5de9c2
mov edi, edx
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp edx, ebx
jle 0x5de9d3
mov edx, ebx
mov ebx, dword [esp + 0x38]
sub edx, edi
add edx, 1
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x1c]
imul edx, ecx
add edx, dword [esp + 0x20]
mov byte [ebx + ecx], 1
movzx ecx, byte [esp + 0xa0]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
movzx ecx, byte [esp + 0xa1]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
movzx ecx, byte [esp + 0xa2]
lea edx, [edx + edi*4]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x54]
movzx ecx, byte [ecx]
mov edx, dword [edx]
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x4c]
movzx ecx, byte [ecx]
mov byte [esp + 0x11], cl
mov ecx, dword [esp + 0x50]
movzx ecx, byte [ecx]
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x10]
mov edi, edx
or edx, dword [esp + 0x10]
and ecx, 0xfefeff
and edi, 0xfefeff
add edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
and edx, 0x10100
sub ecx, ebx
or ecx, edx
mov edx, dword [esp + 0x2c]
or ecx, edi
mov dword [edx], ecx
add edx, 4
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], edx
jne 0x5dea23
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x2c], 0
jge 0x5deaaf
add edx, 6
add dword [esp + 0x14], 4
jmp 0x5deb1e
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], edi
jl 0x5deaef
cmp edi, ebx
jl 0x5dead6
lea eax, [edi - 1]
sub edi, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], edi
lea edi, [eax*4]
mov ebx, 2
sub ebx, edi
sub edx, edi
add dword [esp + 0x14], ebx
jmp 0x5deb2b
cmp edi, ebx
jl 0x5deb00
lea eax, [edi - 1]
sub edi, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], edi
lea ebx, [eax*4]
mov edi, 4
sub edi, ebx
mov ebx, dword [esp + 0x14]
lea edx, [edx + edi + 2]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
mov ebp, 1
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], edx
jle 0x5deeee
mov ebx, dword [esp + 0x90]
lea edi, [eax*4]
mov dword [esp + 0x6c], edi
lea edi, [ecx + ebp]
mov dword [esp + 0x68], edi
imul edi, dword [esp + 0x1c]
add ebx, eax
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x90]
sub ecx, ebp
sub edi, eax
neg ebx
mov dword [esp + 0x60], ecx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x70], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x2c], 0
je 0x5dedde
mov edx, dword [esp + 0x64]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x68]
xor ecx, ecx
cmp edx, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl cl
xor edx, edx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x64], edi
mov edi, dword [esp + 0x68]
setl dl
or ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x84]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx ebx, byte [edi + edx]
or ecx, ebx
jne 0x5decba
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x70], ecx
jge 0x5debf8
mov dword [esp + 0x24], ecx
jmp 0x5debfc
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x64], eax
jle 0x5dec0d
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov byte [edi + edx], 1
mov edx, dword [esp + 0x5c]
lea ebp, [edx + ecx*4]
sub eax, ecx
movzx ecx, byte [esp + 0xa0]
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa1]
mov dword [esp + 0x54], edx
lea edx, [esi + ecx*4]
movzx ecx, byte [esp + 0xa2]
mov dword [esp + 0x4c], edx
lea edx, [esi + ecx*4]
add eax, 1
add ebp, dword [esp + 0x20]
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x54]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x10], dl
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x11], dl
movzx edx, byte [ecx]
mov byte [esp + 0x12], dl
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
and ecx, 0xfefeff
mov edi, edx
or edx, dword [esp + 0x10]
and edi, 0xfefeff
add edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and edx, 0x10100
or ecx, edx
or ecx, edi
mov dword [ebp], ecx
add ebp, 4
sub eax, 1
jne 0x5dec52
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x60]
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x60]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x84]
mov edi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x24]
setl dl
or ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx ebx, byte [ebx + edx]
or ecx, ebx
jne 0x5dedd6
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5ded14
mov edi, ecx
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp ecx, ebx
jle 0x5ded25
mov ecx, ebx
mov ebx, dword [esp + 0x60]
sub ecx, edi
add ecx, 1
mov byte [ebx + edx], 1
movzx edx, byte [esp + 0xa0]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x58]
lea ebp, [ecx + edi*4]
add ebp, dword [esp + 0x20]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa1]
mov dword [esp + 0x54], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa2]
mov dword [esp + 0x4c], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x50], ecx
mov edi, edi
mov edx, dword [esp + 0x54]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x10], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x50]
mov byte [esp + 0x11], cl
movzx ecx, byte [edx]
mov edx, dword [ebp]
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xfefeff
mov edi, edx
or edx, dword [esp + 0x10]
and edi, 0xfefeff
add edi, ecx
mov ecx, edi
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and edx, 0x10100
or ecx, edx
or ecx, edi
mov dword [ebp], ecx
add ebp, 4
sub dword [esp + 0x40], 1
jne 0x5ded70
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x2c], 0
jge 0x5dee26
sub dword [esp + 0x60], 1
mov ecx, 1
add dword [esp + 0x68], ecx
add ebp, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edx, [edx + ecx + 2]
jmp 0x5deed7
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
jl 0x5dee7a
cmp ebx, ecx
jl 0x5dee64
sub dword [esp + 0x64], 1
sub dword [esp + 0x6c], 4
sub eax, 1
add edi, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x6c]
mov ebx, 2
sub ebx, ecx
sub edx, ecx
add dword [esp + 0x14], ebx
jmp 0x5deedb
cmp ebx, ecx
jl 0x5dee9a
sub dword [esp + 0x64], 1
sub dword [esp + 0x6c], 4
sub eax, 1
add edi, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
add dword [esp + 0x68], 1
mov ebx, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x60], ecx
mov dword [esp + 0x2c], ecx
add ebp, 1
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea edx, [edx + ecx + 2]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], edx
jg 0x5deb85
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
sub ecx, ebp
mov edx, edi
sub edx, eax
add edi, eax
mov dword [esp + 0x24], edx
xor edx, edx
cmp ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
setl dl
xor eax, eax
cmp edi, dword [esp + 0x78]
setl al
or edx, eax
xor eax, eax
cmp ecx, dword [esp + 0x84]
setg al
or edx, eax
xor eax, eax
cmp dword [esp + 0x24], ebp
setg al
or edx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [ecx + eax]
or edx, eax
jne case.0x5e09da.5
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp eax, edx
jge 0x5def53
mov eax, edx
cmp edi, ebp
jle 0x5def59
mov edi, ebp
mov edx, dword [esp + 0x38]
mov byte [ecx + edx], 1
imul ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xa1]
sub edi, eax
add edi, 1
add ecx, dword [esp + 0x20]
mov ebp, edi
lea edi, [ecx + eax*4]
movzx eax, byte [esp + 0xa0]
lea ecx, [esi + eax*4]
mov dword [esp + 0x54], ecx
movzx ecx, byte [esp + 0xa2]
lea eax, [esi + edx*4]
lea edx, [esi + ecx*4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x54]
mov cl, byte [eax]
mov edx, dword [esp + 0x4c]
mov al, byte [edx]
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x50]
mov dl, byte [ecx]
mov ecx, dword [edi]
mov byte [esp + 0x11], al
mov byte [esp + 0x12], dl
mov ebx, dword [esp + 0x10]
mov edx, ecx
mov eax, ebx
and eax, 0xfefeff
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov esi, eax
shr esi, 8
or ecx, ebx
sub eax, esi
and ecx, 0x10100
or eax, ecx
or eax, edx
mov dword [edi], eax
add edi, 4
sub ebp, 1
jne 0x5defa1
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov ecx, edx
sub ecx, edi
add edi, edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x94], edx
mov ebx, dword [esp + 0x94]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x78]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], edi
setg dl
or ecx, edx
xor edx, edx
cmp ebx, dword [esp + 0x84]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [edx + ebx]
or ecx, edx
jne 0x5df14e
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edx, ecx
jge 0x5df098
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
cmp ecx, edi
jle 0x5df0a9
mov ecx, edi
mov edi, dword [esp + 0x38]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ebx
add ecx, dword [esp + 0x20]
mov byte [edi + ebx], 1
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa0]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa1]
mov dword [esp + 0x54], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa2]
mov dword [esp + 0x4c], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x54]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x10], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x50]
mov byte [esp + 0x11], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x40], 1
jne 0x5df0f5
mov ebx, dword [esp + 0x94]
mov edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x2c], 0
jge 0x5df16b
add edx, 6
add dword [esp + 0x14], 4
jmp 0x5df1d2
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5df1a7
cmp ecx, edi
jl 0x5df18e
lea eax, [ecx - 1]
sub ecx, edi
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edi, 2
sub edi, ecx
sub edx, ecx
add dword [esp + 0x14], edi
jmp 0x5df1db
cmp ecx, edi
jl 0x5df1b4
lea eax, [ecx - 1]
sub ecx, edi
mov dword [esp + 0x28], ecx
lea edi, [eax*4]
mov ecx, 4
sub ecx, edi
mov edi, dword [esp + 0x14]
lea edx, [edx + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov ebp, 1
mov dword [esp + 0x2c], ebp
test eax, eax
mov dword [esp + 0x18], edx
jle 0x5df576
lea edi, [ebx + ebp]
mov dword [esp + 0x68], edi
imul edi, dword [esp + 0x1c]
lea ecx, [eax*4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x90]
sub ecx, ebp
sub edi, eax
neg ebx
mov dword [esp + 0x60], ecx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x70], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x58], ecx
jmp 0x5df240
cmp dword [esp + 0x2c], 0
je 0x5df47a
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x44], edx
xor edx, edx
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], edi
setl dl
xor ecx, ecx
cmp edi, dword [esp + 0x80]
mov edi, dword [esp + 0x78]
setg cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x64], edi
mov edi, dword [esp + 0x68]
setl cl
or edx, ecx
xor ecx, ecx
cmp edi, dword [esp + 0x84]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x38]
movzx ebx, byte [edi + ecx]
or edx, ebx
jne 0x5df363
mov edx, dword [esp + 0x78]
cmp dword [esp + 0x70], edx
jge 0x5df2b3
mov dword [esp + 0x24], edx
jmp 0x5df2b7
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x64], ebx
jle 0x5df2c8
mov dword [esp + 0x44], ebx
mov byte [edi + ecx], 1
mov ecx, dword [esp + 0x44]
sub ecx, edx
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x5c]
lea edi, [ecx + edx*4]
movzx edx, byte [esp + 0xa0]
add edi, dword [esp + 0x20]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa1]
mov dword [esp + 0x54], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa2]
mov dword [esp + 0x4c], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x54]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x10], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x50]
mov byte [esp + 0x11], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x40], 1
jne 0x5df311
mov edi, dword [esp + 0x60]
xor ecx, ecx
cmp edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x60]
setl cl
xor edx, edx
cmp edi, dword [esp + 0x84]
mov edi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x24]
setl dl
or ecx, edx
xor edx, edx
cmp edi, dword [esp + 0x80]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx ebx, byte [ebx + edx]
or ecx, ebx
jne 0x5df472
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5df3bd
mov edi, ecx
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp ecx, ebx
jle 0x5df3ce
mov ecx, ebx
mov ebx, dword [esp + 0x60]
sub ecx, edi
add ecx, 1
mov byte [ebx + edx], 1
movzx edx, byte [esp + 0xa0]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x58]
lea edi, [ecx + edi*4]
add edi, dword [esp + 0x20]
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa1]
mov dword [esp + 0x54], ecx
lea ecx, [esi + edx*4]
movzx edx, byte [esp + 0xa2]
mov dword [esp + 0x4c], ecx
lea ecx, [esi + edx*4]
mov dword [esp + 0x50], ecx
jmp 0x5df420
mov edx, dword [esp + 0x54]
movzx ecx, byte [edx]
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x10], cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x50]
mov byte [esp + 0x11], cl
movzx ecx, byte [edx]
mov edx, dword [edi]
mov byte [esp + 0x12], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xfefefeff
or edx, 0x1010100
sub edx, ecx
mov ecx, edx
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
and ecx, edx
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x40], 1
jne 0x5df420
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x2c], 0
jge 0x5df4be
sub dword [esp + 0x60], 1
mov ecx, 1
add dword [esp + 0x68], ecx
add ebp, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edx, [edx + ecx + 2]
jmp 0x5df563
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
jl 0x5df50a
cmp ebx, ecx
jl 0x5df4f4
sub dword [esp + 0x64], 1
sub dword [esp + 0x6c], 4
add edi, 1
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x6c]
mov ebx, 2
sub ebx, ecx
sub edx, ecx
add dword [esp + 0x14], ebx
jmp 0x5df563
cmp ebx, ecx
jl 0x5df526
sub dword [esp + 0x64], 1
sub dword [esp + 0x6c], 4
add edi, 1
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
add dword [esp + 0x68], 1
mov ebx, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x60], ecx
mov dword [esp + 0x2c], ecx
add ebp, 1
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea edx, [edx + ecx + 2]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
test eax, eax
mov dword [esp + 0x18], edx
jg 0x5df240
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
sub ebx, ebp
mov ecx, edi
sub ecx, eax
add edi, eax
xor eax, eax
mov dword [esp + 0x24], ecx
mov ecx, ebx
cmp ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
setl al
xor ebx, ebx
cmp edi, dword [esp + 0x78]
setl bl
or eax, ebx
xor ebx, ebx
cmp ecx, dword [esp + 0x84]
setg bl
or eax, ebx
xor ebx, ebx
cmp dword [esp + 0x24], edx
setg bl
or eax, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [ecx + ebx]
or eax, ebx
jne case.0x5e09da.5
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x78]
cmp eax, ebx
jge 0x5df5dd
mov eax, ebx
cmp edi, edx
jle 0x5df5e3
mov edi, edx
mov edx, dword [esp + 0x38]
mov byte [ecx + edx], 1
imul ecx, dword [esp + 0x1c]
sub edi, eax
add edi, 1
add ecx, dword [esp + 0x20]
lea edx, [ecx + eax*4]
movzx eax, byte [esp + 0xa0]
movzx ecx, byte [esp + 0xa1]
lea ebx, [esi + eax*4]
movzx eax, byte [esp + 0xa2]
lea ebp, [esi + ecx*4]
lea ecx, [esi + eax*4]
mov dword [esp + 0x50], ecx
mov al, byte [ebx]
movzx ecx, byte [ebp]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x50]
mov byte [esp + 0x11], cl
movzx ecx, byte [eax]
mov byte [esp + 0x12], cl
mov ecx, dword [edx]
mov eax, dword [esp + 0x10]
and eax, 0xfefefeff
or ecx, 0x1010100
sub ecx, eax
mov eax, ecx
and eax, 0x1010100
mov esi, eax
shr esi, 8
sub eax, esi
and eax, ecx
mov dword [edx], eax
add edx, 4
sub edi, 1
jne 0x5df621
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ecx, edx
add edx, esi
sub ecx, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x7c]
setl cl
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x38]
setg dl
or ecx, edx
mov edx, dword [esp + 0x94]
movzx esi, byte [esi + edx]
or ecx, esi
jne 0x5df795
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5df703
mov esi, ecx
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
cmp ecx, edi
jle 0x5df714
mov ecx, edi
sub ecx, esi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
imul ecx, edx
add ecx, dword [esp + 0x20]
mov byte [edi + edx], 1
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
mov dword [esp + 0x70], ecx
movzx ecx, byte [esp + 0xa1]
mov dword [esp + 0x58], ecx
movzx ecx, byte [esp + 0xa2]
mov dword [esp + 0x54], ecx
jmp 0x5df760
movzx ecx, byte [esi]
imul ecx, dword [esp + 0x70]
sar ecx, 8
mov byte [esi], cl
movzx ecx, byte [esi + 1]
imul ecx, dword [esp + 0x58]
sar ecx, 8
mov byte [esi + 1], cl
movzx ecx, byte [esi + 2]
imul ecx, dword [esp + 0x54]
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub dword [esp + 0x40], 1
jne 0x5df760
xor edi, edi
test ebx, ebx
jge 0x5df7af
mov edi, 1
add ebx, 6
add dword [esp + 0x14], 4
mov ebp, edi
jmp 0x5df81a
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5df7e8
cmp ecx, esi
jl 0x5df7d2
lea eax, [ecx - 1]
sub ecx, esi
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov esi, 2
sub esi, ecx
sub ebx, ecx
add dword [esp + 0x14], esi
jmp 0x5df81a
cmp ecx, esi
jl 0x5df7f5
lea eax, [ecx - 1]
sub ecx, esi
mov dword [esp + 0x28], ecx
lea esi, [eax*4]
mov ecx, 4
sub ecx, esi
mov esi, dword [esp + 0x14]
lea ebx, [ebx + ecx + 2]
mov ebp, 1
lea ecx, [esi + ecx + 2]
mov edi, ebp
mov dword [esp + 0x14], ecx
test eax, eax
jle 0x5dfb50
lea ecx, [eax*4]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x90]
lea esi, [edx + ebp]
add ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, edx
mov edx, esi
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x1c]
sub ecx, ebp
sub esi, eax
neg edx
mov dword [esp + 0x5c], ecx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x4c], ecx
test edi, edi
je 0x5dfa57
mov edx, dword [esp + 0x64]
xor ecx, ecx
cmp esi, dword [esp + 0x80]
mov dword [esp + 0x44], edx
setg cl
xor edx, edx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x78]
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x84]
setl dl
mov edi, dword [esp + 0x38]
or ecx, edx
xor edx, edx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x7c]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x60]
setl dl
or ecx, edx
movzx edx, byte [esi + edi]
or ecx, edx
jne 0x5df973
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x6c], ecx
jge 0x5df8e8
mov dword [esp + 0x24], ecx
jmp 0x5df8ec
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x64], edx
jle 0x5df8fd
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x50]
mov byte [esi + edi], 1
mov esi, dword [esp + 0x44]
sub esi, ecx
lea ecx, [edx + ecx*4]
movzx edx, byte [esp + 0xa0]
mov dword [esp + 0x70], edx
movzx edx, byte [esp + 0xa1]
mov dword [esp + 0x58], edx
movzx edx, byte [esp + 0xa2]
add esi, 1
add ecx, dword [esp + 0x20]
mov dword [esp + 0x54], edx
lea esp, [esp]
movzx edx, byte [ecx]
imul edx, dword [esp + 0x70]
sar edx, 8
mov byte [ecx], dl
movzx edx, byte [ecx + 1]
imul edx, dword [esp + 0x58]
sar edx, 8
mov byte [ecx + 1], dl
movzx edx, byte [ecx + 2]
imul edx, dword [esp + 0x54]
sar edx, 8
mov byte [ecx + 2], dl
add ecx, 4
sub esi, 1
jne 0x5df940
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x7c]
xor ecx, ecx
cmp dword [esp + 0x5c], edx
setg cl
xor edx, edx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x78]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [esi + edi]
or ecx, edx
jne 0x5dfa53
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edx, ecx
jge 0x5df9d1
mov edx, ecx
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x80]
jle 0x5df9e5
mov ecx, dword [esp + 0x80]
sub ecx, edx
add ecx, 1
mov byte [esi + edi], 1
mov esi, ecx
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx + edx*4]
movzx edx, byte [esp + 0xa0]
add ecx, dword [esp + 0x20]
mov dword [esp + 0x70], edx
movzx edx, byte [esp + 0xa1]
mov dword [esp + 0x58], edx
movzx edx, byte [esp + 0xa2]
mov dword [esp + 0x54], edx
nop
movzx edx, byte [ecx]
imul edx, dword [esp + 0x70]
sar edx, 8
mov byte [ecx], dl
movzx edx, byte [ecx + 1]
imul edx, dword [esp + 0x58]
sar edx, 8
mov byte [ecx + 1], dl
movzx edx, byte [ecx + 2]
imul edx, dword [esp + 0x54]
sar edx, 8
mov byte [ecx + 2], dl
add ecx, 4
sub esi, 1
jne 0x5dfa20
mov esi, dword [esp + 0x6c]
xor edi, edi
test ebx, ebx
jge 0x5dfa8c
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x50], ecx
mov edx, dword [esp + 0x3c]
add dword [esp + 0x4c], edx
mov edi, 1
add dword [esp + 0x60], edi
sub dword [esp + 0x5c], edi
add ebp, edi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
jmp 0x5dfb3d
mov edx, dword [esp + 0x14]
test edx, edx
jl 0x5dfadd
mov edx, dword [esp + 0x28]
add edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x30]
cmp edx, ecx
mov dword [esp + 0x28], edx
jl 0x5dfac7
sub dword [esp + 0x64], 1
sub dword [esp + 0x68], 4
add esi, 1
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x6c], esi
mov ecx, dword [esp + 0x68]
mov edx, 2
sub edx, ecx
sub ebx, ecx
add dword [esp + 0x14], edx
jmp 0x5dfb41
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
cmp ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5dfb0e
sub dword [esp + 0x64], 1
sub dword [esp + 0x68], 4
add esi, 1
sub eax, 1
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x4c], ecx
mov edi, 1
add dword [esp + 0x60], edi
sub dword [esp + 0x5c], edi
add ebp, edi
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea edx, [edx + ecx + 2]
mov dword [esp + 0x14], edx
lea ebx, [ebx + ecx + 2]
test eax, eax
jg 0x5df874
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
sub edx, ebp
lea esi, [eax + ecx]
mov edi, ecx
sub edi, eax
mov ecx, edx
xor eax, eax
cmp ecx, dword [esp + 0x7c]
setl al
xor edx, edx
cmp esi, dword [esp + 0x78]
setl dl
or eax, edx
xor edx, edx
cmp ecx, dword [esp + 0x84]
setg dl
or eax, edx
xor edx, edx
cmp edi, dword [esp + 0x80]
setg dl
or eax, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [ecx + edx]
or eax, edx
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp edi, eax
jge 0x5dfbac
mov edi, eax
mov eax, dword [esp + 0x80]
cmp esi, eax
jle 0x5dfbb9
mov esi, eax
mov eax, dword [esp + 0x38]
movzx ebp, byte [esp + 0xa2]
mov byte [ecx + eax], 1
imul ecx, dword [esp + 0x1c]
sub esi, edi
add esi, 1
add ecx, dword [esp + 0x20]
lea eax, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esp + 0xa1]
lea ebx, [ebx]
movzx edx, byte [eax]
imul edx, ecx
sar edx, 8
mov byte [eax], dl
movzx edx, byte [eax + 1]
imul edx, edi
sar edx, 8
mov byte [eax + 1], dl
movzx edx, byte [eax + 2]
imul edx, ebp
sar edx, 8
mov byte [eax + 2], dl
add eax, 4
sub esi, 1
jne 0x5dfbf0
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ecx, edx
add edx, esi
sub ecx, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x94]
setl cl
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x94], esi
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [edx + edi]
or ecx, edx
jne 0x5dfd8c
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5dfcb9
mov esi, ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x80]
cmp edx, ecx
jle 0x5dfcca
mov edx, ecx
sub edx, esi
mov ecx, dword [esp + 0x38]
add edx, 1
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x1c]
imul edx, edi
add edx, dword [esp + 0x20]
mov byte [ecx + edi], 1
movzx ecx, byte [esp + 0xa0]
lea esi, [edx + esi*4]
movzx edx, byte [esp + 0xa1]
mov dword [esp + 0x58], edx
movzx edx, byte [esp + 0xa2]
mov dword [esp + 0x54], edx
lea esp, [esp]
movzx edi, byte [esi]
mov edx, edi
imul edx, ecx
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0x8e80c0]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi], dl
movzx edi, byte [esi + 1]
mov edx, edi
imul edx, dword [esp + 0x58]
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0x8e80c0]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 1], dl
movzx edi, byte [esi + 2]
mov edx, edi
imul edx, dword [esp + 0x54]
sar edx, 8
movzx edx, dl
sub edx, edi
imul edx, dword [0x8e80c0]
shl edi, 8
add edx, edi
sar edx, 8
mov byte [esi + 2], dl
add esi, 4
sub dword [esp + 0x40], 1
jne 0x5dfd10
mov edi, dword [esp + 0x94]
xor esi, esi
test ebx, ebx
jge 0x5dfda6
mov esi, 1
add ebx, 6
add dword [esp + 0x14], 4
mov ebp, esi
jmp 0x5dfe11
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5dfddf
cmp ecx, edx
jl 0x5dfdc9
lea eax, [ecx - 1]
sub ecx, edx
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edx, 2
sub edx, ecx
sub ebx, ecx
add dword [esp + 0x14], edx
jmp 0x5dfe15
cmp ecx, edx
jl 0x5dfdec
lea eax, [ecx - 1]
sub ecx, edx
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edx, 4
sub edx, ecx
mov ecx, dword [esp + 0x14]
lea ebx, [ebx + edx + 2]
mov ebp, 1
lea edx, [ecx + edx + 2]
mov esi, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], ebx
jle 0x5e01b5
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
lea edx, [edi + ebp]
mov dword [esp + 0x60], ecx
mov ecx, edi
mov edi, dword [esp + 0x90]
sub edi, eax
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x1c]
sub ecx, ebp
mov dword [esp + 0x5c], edx
imul edx, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x58], ecx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], ecx
test esi, esi
je 0x5e00cd
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
xor edx, edx
cmp ecx, dword [esp + 0x7c]
setl dl
xor ecx, ecx
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x78]
setg cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x84]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esi + ecx]
or edx, ecx
jne 0x5dffad
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5dfeed
mov dword [esp + 0x24], ecx
jmp 0x5dfef1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x60], edx
jle 0x5dff02
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x38]
movzx edi, byte [esp + 0xa0]
mov byte [esi + edx], 1
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x6c]
sub esi, ecx
lea ecx, [edx + ecx*4]
add esi, 1
add ecx, dword [esp + 0x20]
movzx edx, byte [ecx]
mov ebx, edx
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
movzx ebp, byte [esp + 0xa1]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx], bl
movzx edx, byte [ecx + 1]
mov ebx, edx
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
movzx ebp, byte [esp + 0xa2]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 1], bl
movzx edx, byte [ecx + 2]
mov ebx, edx
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub esi, 1
jne 0x5dff26
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
xor ecx, ecx
cmp dword [esp + 0x58], edx
mov edi, dword [esp + 0x58]
setl cl
xor edx, edx
cmp dword [esp + 0x58], esi
mov esi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [edi + edx]
or ecx, edx
jne 0x5e00c9
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edx, ecx
jge 0x5e000f
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x80]
cmp ecx, esi
jle 0x5e0020
mov ecx, esi
mov esi, dword [esp + 0x38]
movzx ebp, byte [esp + 0xa0]
sub ecx, edx
add ecx, 1
mov byte [edi + esi], 1
mov esi, ecx
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + edx*4]
add ecx, dword [esp + 0x20]
movzx edx, byte [ecx]
mov ebx, edx
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
movzx edi, byte [esp + 0xa1]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx], bl
movzx edx, byte [ecx + 1]
mov ebx, edx
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
movzx edi, byte [esp + 0xa2]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 1], bl
movzx edx, byte [ecx + 2]
mov ebx, edx
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub esi, 1
jne 0x5e0042
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
xor esi, esi
test ebx, ebx
jge 0x5e0102
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
add edx, dword [esp + 0x1c]
mov esi, 1
add dword [esp + 0x5c], esi
sub dword [esp + 0x58], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
jmp 0x5e01a1
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], ecx
jl 0x5e014e
cmp ecx, dword [esp + 0x30]
jl 0x5e0138
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov edi, 2
sub edi, ecx
sub ebx, ecx
add dword [esp + 0x14], edi
jmp 0x5e01a9
mov esi, dword [esp + 0x30]
cmp ecx, esi
jl 0x5e016e
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, esi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
add edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov esi, 1
add dword [esp + 0x5c], esi
sub dword [esp + 0x58], esi
add ebp, esi
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], ebx
jg 0x5dfe71
mov ecx, dword [esp + 0x90]
lea esi, [eax + ecx]
xor edx, edx
mov edi, ecx
mov ecx, dword [esp + 0x94]
sub edi, eax
sub ecx, ebp
cmp ecx, dword [esp + 0x7c]
setl dl
xor eax, eax
cmp esi, dword [esp + 0x78]
setl al
or edx, eax
xor eax, eax
cmp ecx, dword [esp + 0x84]
setg al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x80]
setg al
or edx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [ecx + eax]
or edx, eax
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp edi, eax
jge 0x5e0216
mov edi, eax
mov eax, dword [esp + 0x80]
cmp esi, eax
jle 0x5e0223
mov esi, eax
mov edx, dword [esp + 0x38]
movzx ebp, byte [esp + 0xa1]
mov byte [ecx + edx], 1
imul ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xa2]
sub esi, edi
add esi, 1
add ecx, dword [esp + 0x20]
lea eax, [ecx + edi*4]
movzx edi, byte [esp + 0xa0]
movzx ecx, byte [eax]
mov ebx, ecx
imul ebx, edi
sar ebx, 8
movzx ebx, bl
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax], bl
movzx ecx, byte [eax + 1]
mov ebx, ecx
imul ebx, ebp
sar ebx, 8
movzx ebx, bl
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 1], bl
movzx ecx, byte [eax + 2]
mov ebx, ecx
imul ebx, edx
sar ebx, 8
movzx ebx, bl
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
sub esi, 1
jne 0x5e0254
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ecx, edx
add edx, esi
sub ecx, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x94]
setl cl
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x38]
setg dl
or ecx, edx
movzx edx, byte [esi + edi]
or ecx, edx
jne 0x5e0421
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp ecx, edx
jge 0x5e035f
mov ecx, edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x80]
jle 0x5e0373
mov edx, dword [esp + 0x80]
mov byte [esi + edi], 1
mov esi, dword [esp + 0x1c]
sub edx, ecx
imul esi, edi
add edx, 1
add esi, dword [esp + 0x20]
lea esi, [esi + ecx*4]
mov cl, byte [esp + 0xa0]
not cl
movzx ecx, cl
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0xa1]
not cl
movzx ecx, cl
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0xa2]
not cl
movzx ecx, cl
mov dword [esp + 0x58], ecx
lea ebx, [ebx]
movzx edi, byte [esi]
mov ecx, dword [esp + 0x74]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
mov ecx, dword [esp + 0x70]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov ecx, dword [esp + 0x58]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
add esi, 4
sub edx, 1
jne 0x5e03c0
mov edi, dword [esp + 0x94]
xor esi, esi
test ebx, ebx
jge 0x5e043b
mov esi, 1
add ebx, 6
add dword [esp + 0x14], 4
mov ebp, esi
jmp 0x5e04a6
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e0474
cmp ecx, edx
jl 0x5e045e
lea eax, [ecx - 1]
sub ecx, edx
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edx, 2
sub edx, ecx
sub ebx, ecx
add dword [esp + 0x14], edx
jmp 0x5e04aa
cmp ecx, edx
jl 0x5e0481
lea eax, [ecx - 1]
sub ecx, edx
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edx, 4
sub edx, ecx
mov ecx, dword [esp + 0x14]
lea ebx, [ebx + edx + 2]
mov ebp, 1
lea edx, [ecx + edx + 2]
mov esi, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], ebx
jle 0x5e083a
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
lea edx, [edi + ebp]
mov dword [esp + 0x68], ecx
mov ecx, edi
mov edi, dword [esp + 0x90]
sub edi, eax
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x1c]
sub ecx, ebp
mov dword [esp + 0x60], edx
imul edx, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x5c], ecx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x54], ecx
test esi, esi
je 0x5e0752
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
xor ecx, ecx
cmp esi, dword [esp + 0x78]
mov dword [esp + 0x24], edx
setl cl
xor edx, edx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x84]
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x7c]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x60]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [esi + edx]
or ecx, edx
jne 0x5e0635
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5e057e
mov dword [esp + 0x24], ecx
jmp 0x5e0582
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x68], edx
jle 0x5e0593
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x38]
mov byte [esi + edx], 1
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x44]
sub esi, ecx
lea ecx, [edx + ecx*4]
mov dl, byte [esp + 0xa0]
not dl
movzx edi, dl
mov dl, byte [esp + 0xa1]
not dl
movzx ebp, dl
mov dl, byte [esp + 0xa2]
not dl
movzx edx, dl
add esi, 1
add ecx, dword [esp + 0x20]
mov dword [esp + 0x58], edx
movzx edx, byte [ecx]
mov ebx, edi
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx], bl
movzx edx, byte [ecx + 1]
mov ebx, ebp
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 1], bl
movzx edx, byte [ecx + 2]
mov ebx, dword [esp + 0x58]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub esi, 1
jne 0x5e05d7
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
xor ecx, ecx
cmp dword [esp + 0x5c], edx
setl cl
xor edx, edx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x5c]
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [esi + edx]
or ecx, edx
jne 0x5e074e
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edx, ecx
jge 0x5e0697
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x80]
cmp ecx, esi
jle 0x5e06a8
mov ecx, esi
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x5c]
sub ecx, edx
add ecx, 1
mov byte [edi + esi], 1
mov esi, ecx
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + edx*4]
mov dl, byte [esp + 0xa0]
add ecx, dword [esp + 0x20]
not dl
movzx ebp, dl
mov dl, byte [esp + 0xa1]
not dl
movzx edi, dl
mov dl, byte [esp + 0xa2]
not dl
movzx edx, dl
mov dword [esp + 0x58], edx
mov edi, edi
movzx edx, byte [ecx]
mov ebx, ebp
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx], bl
movzx edx, byte [ecx + 1]
mov ebx, edi
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 1], bl
movzx edx, byte [ecx + 2]
mov ebx, dword [esp + 0x58]
sub ebx, edx
imul ebx, dword [0x8e80c0]
shl edx, 8
add ebx, edx
sar ebx, 8
mov byte [ecx + 2], bl
add ecx, 4
sub esi, 1
jne 0x5e06f0
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
xor esi, esi
test ebx, ebx
jge 0x5e0787
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x54], ecx
add edx, dword [esp + 0x1c]
mov esi, 1
add dword [esp + 0x60], esi
sub dword [esp + 0x5c], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
jmp 0x5e0826
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], ecx
jl 0x5e07d3
cmp ecx, dword [esp + 0x30]
jl 0x5e07bd
add dword [esp + 0x64], 1
sub dword [esp + 0x68], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov edi, 2
sub edi, ecx
sub ebx, ecx
add dword [esp + 0x14], edi
jmp 0x5e082e
mov esi, dword [esp + 0x30]
cmp ecx, esi
jl 0x5e07f3
add dword [esp + 0x64], 1
sub dword [esp + 0x68], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, esi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x54], ecx
add edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov esi, 1
add dword [esp + 0x60], esi
sub dword [esp + 0x5c], esi
add ebp, esi
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x34], ebp
test eax, eax
mov dword [esp + 0x18], ebx
jg 0x5e0506
mov ecx, dword [esp + 0x90]
lea esi, [eax + ecx]
xor edx, edx
mov edi, ecx
mov ecx, dword [esp + 0x94]
sub edi, eax
sub ecx, ebp
cmp ecx, dword [esp + 0x7c]
setl dl
xor eax, eax
cmp esi, dword [esp + 0x78]
setl al
or edx, eax
xor eax, eax
cmp ecx, dword [esp + 0x84]
setg al
or edx, eax
xor eax, eax
cmp edi, dword [esp + 0x80]
setg al
or edx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [ecx + eax]
or edx, eax
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp edi, eax
jge 0x5e089b
mov edi, eax
mov eax, dword [esp + 0x80]
cmp esi, eax
jle 0x5e08a8
mov esi, eax
mov edx, dword [esp + 0x38]
mov byte [ecx + edx], 1
imul ecx, dword [esp + 0x1c]
sub esi, edi
add esi, 1
add ecx, dword [esp + 0x20]
lea eax, [ecx + edi*4]
mov cl, byte [esp + 0xa0]
not cl
movzx edi, cl
mov cl, byte [esp + 0xa1]
not cl
movzx ebp, cl
mov cl, byte [esp + 0xa2]
not cl
movzx edx, cl
movzx ecx, byte [eax]
mov ebx, edi
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax], bl
movzx ecx, byte [eax + 1]
mov ebx, ebp
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 1], bl
movzx ecx, byte [eax + 2]
mov ebx, edx
sub ebx, ecx
imul ebx, dword [0x8e80c0]
shl ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [eax + 2], bl
add eax, 4
sub esi, 1
jne 0x5e08e5
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov ecx, dword [0x8e80e4]
mov edx, ecx
and edx, 0xffffff
cmp edx, 0xffffff
je 0x5e09c4
mov ebx, dword [esp + 0xa0]
mov edx, ebx
movzx ecx, ch
sar edx, 5
and edx, 0x3f
imul edx, ecx
movzx ecx, byte [0x8e80e4]
and ebx, 0x1f
imul ebx, ecx
mov ecx, dword [esp + 0xa0]
sar ebx, 5
and edx, 0xffffff07
or edx, ebx
movzx ebx, byte [0x8e80e6]
sar ecx, 8
and ecx, 0xfffffff8
imul ecx, ebx
mov ebx, dword [esp + 0x18]
sar edx, 3
and ecx, 0xfffff800
or edx, ecx
mov dword [esp + 0xa0], edx
jmp 0x5e09cb
mov edx, dword [esp + 0xa0]
mov ecx, dword [0x8e80bc]
cmp ecx, 0xb
ja case.0x5e09da.5
jmp dword [ecx*4 + 0x5f0254]
mov ecx, dword [0x8e80c0]
cmp ecx, 0xff
jne 0x5e0e98
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ecx, edx
sub ecx, esi
add edx, esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x44], edx
xor edx, edx
cmp ecx, dword [esp + 0x7c]
setl dl
xor ecx, ecx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg cl
or edx, ecx
xor ecx, ecx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x38]
setg cl
or edx, ecx
mov ecx, dword [esp + 0x94]
movzx esi, byte [esi + ecx]
or edx, esi
jne 0x5e0abb
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x78]
cmp esi, edx
jge 0x5e0a7a
mov esi, edx
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x80]
cmp edx, edi
jle 0x5e0a8b
mov edx, edi
mov edi, dword [esp + 0x38]
mov byte [edi + ecx], 1
mov edi, dword [esp + 0x1c]
imul edi, ecx
sub edx, esi
add edx, 1
add edi, dword [esp + 0x20]
lea esi, [edi + esi*2]
mov di, word [esp + 0xa0]
mov edi, edi
mov word [esi], di
add esi, 2
sub edx, 1
jne 0x5e0ab0
xor esi, esi
test ebx, ebx
jge 0x5e0ad5
mov esi, 1
add ebx, 6
add dword [esp + 0x14], 4
mov ebp, esi
jmp 0x5e0b47
cmp dword [esp + 0x14], 0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x28], edx
jl 0x5e0b11
mov edi, dword [esp + 0x30]
cmp edx, edi
jl 0x5e0af8
lea eax, [edx - 1]
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [eax*4]
mov edi, 2
sub edi, edx
sub ebx, edx
add dword [esp + 0x14], edi
jmp 0x5e0b47
mov esi, dword [esp + 0x30]
cmp edx, esi
jl 0x5e0b22
lea eax, [edx - 1]
sub edx, esi
mov dword [esp + 0x28], edx
lea edi, [eax*4]
mov edx, 4
sub edx, edi
mov edi, dword [esp + 0x14]
lea ebx, [ebx + edx + 2]
mov ebp, 1
lea edx, [edi + edx + 2]
mov esi, ebp
mov dword [esp + 0x14], edx
test eax, eax
jle 0x5e0df0
mov edi, dword [esp + 0x90]
lea edx, [eax*4]
mov dword [esp + 0x70], edx
lea edx, [ecx + ebp]
mov dword [esp + 0x5c], edx
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x90]
sub edx, eax
add edi, eax
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x60], edi
sub ecx, ebp
mov edi, edx
neg edi
mov dword [esp + 0x58], ecx
imul ecx, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x68], ecx
lea ecx, [ecx]
test esi, esi
je 0x5e0cff
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x38]
setl cl
xor edx, edx
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x84]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg dl
or ecx, edx
movzx edx, byte [esi + edi]
or ecx, edx
jne 0x5e0c5c
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5e0c1c
mov dword [esp + 0x24], ecx
jmp 0x5e0c20
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x60], edx
jle 0x5e0c31
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x44]
mov byte [esi + edi], 1
mov esi, dword [esp + 0x6c]
sub edx, ecx
lea ecx, [esi + ecx*2]
mov si, word [esp + 0xa0]
add edx, 1
add ecx, dword [esp + 0x20]
mov word [ecx], si
add ecx, 2
sub edx, 1
jne 0x5e0c51
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
xor ecx, ecx
cmp dword [esp + 0x58], edx
mov edi, dword [esp + 0x58]
setl cl
xor edx, edx
cmp dword [esp + 0x58], esi
mov esi, dword [esp + 0x78]
setg dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl dl
or ecx, edx
xor edx, edx
cmp dword [esp + 0x24], esi
setg dl
or ecx, edx
mov edx, dword [esp + 0x38]
movzx esi, byte [edi + edx]
or ecx, esi
jne 0x5e0cfb
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5e0cbe
mov esi, ecx
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x80]
jle 0x5e0cd2
mov ecx, dword [esp + 0x80]
sub ecx, esi
add ecx, 1
mov byte [edi + edx], 1
mov edx, ecx
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + esi*2]
add ecx, dword [esp + 0x20]
mov si, word [esp + 0xa0]
mov word [ecx], si
add ecx, 2
sub edx, 1
jne 0x5e0cf0
mov edi, dword [esp + 0x3c]
xor esi, esi
test ebx, ebx
jge 0x5e0d34
mov edx, dword [esp + 0x1c]
add dword [esp + 0x6c], edx
add dword [esp + 0x68], edi
mov esi, 1
add dword [esp + 0x5c], esi
sub dword [esp + 0x58], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
jmp 0x5e0ddd
mov edx, dword [esp + 0x14]
test edx, edx
jl 0x5e0d83
mov edx, dword [esp + 0x28]
add edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x30]
cmp edx, ecx
mov dword [esp + 0x28], edx
jl 0x5e0d6d
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov edx, 2
sub edx, ecx
sub ebx, ecx
add dword [esp + 0x14], edx
jmp 0x5e0de1
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
cmp ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e0db2
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
add dword [esp + 0x68], edi
mov esi, 1
add dword [esp + 0x5c], esi
sub dword [esp + 0x58], esi
add ebp, esi
mov ecx, ebp
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea edx, [edx + ecx + 2]
mov dword [esp + 0x14], edx
lea ebx, [ebx + ecx + 2]
test eax, eax
jg 0x5e0ba0
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
lea edi, [eax + edx]
mov esi, edx
sub esi, eax
xor eax, eax
sub ecx, ebp
cmp ecx, dword [esp + 0x7c]
setl al
xor edx, edx
cmp edi, dword [esp + 0x78]
setl dl
or eax, edx
xor edx, edx
cmp ecx, dword [esp + 0x84]
setg dl
or eax, edx
xor edx, edx
cmp esi, dword [esp + 0x80]
setg dl
or eax, edx
mov edx, dword [esp + 0x38]
movzx edx, byte [ecx + edx]
or eax, edx
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp esi, eax
jge 0x5e0e4a
mov esi, eax
mov eax, dword [esp + 0x80]
cmp edi, eax
jle 0x5e0e57
mov edi, eax
mov eax, dword [esp + 0x38]
mov byte [ecx + eax], 1
imul ecx, dword [esp + 0x1c]
sub edi, esi
add edi, 1
add ecx, dword [esp + 0x20]
lea ecx, [ecx + esi*2]
mov dx, word [esp + 0xa0]
mov word [ecx], dx
add ecx, 2
sub edi, 1
jne 0x5e0e70
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
test ecx, ecx
je case.0x5e09da.5
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
mov ecx, esi
add esi, ebx
sub ecx, ebx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x7c]
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x78]
setl cl
xor ebx, ebx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x94]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [ebx + esi]
or ecx, ebx
jne 0x5e0ffc
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp ebx, ecx
jge 0x5e0f27
mov ebx, ecx
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x80]
cmp ecx, ebp
jle 0x5e0f38
mov ecx, ebp
mov ebp, dword [esp + 0x38]
sub ecx, ebx
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, esi
add ecx, dword [esp + 0x20]
mov byte [esi + ebp], 1
lea ecx, [ecx + ebx*2]
mov esi, edx
sar esi, 0xb
mov ebx, edx
sar ebx, 5
mov dword [esp + 0x54], esi
and ebx, 0x3f
mov esi, edx
and esi, 0x1f
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], esi
jmp 0x5e0f84
mov ebx, dword [esp + 0x58]
movzx ecx, word [ecx]
movzx esi, cx
mov ebp, esi
shr ebp, 5
and ebp, 0x3f
sub ebx, ebp
mov ebp, ecx
shr ebp, 5
mov dword [esp + 0x44], esi
and ebp, 0x3f
add bp, word [edi + ebx*4]
mov ebx, dword [esp + 0x54]
shr esi, 0xb
sub ebx, esi
mov si, cx
shr si, 0xb
add si, word [edi + ebx*4]
mov ebx, dword [esp + 0x4c]
shl si, 0xb
shl bp, 5
or bp, si
mov esi, dword [esp + 0x44]
and esi, 0x1f
and ecx, 0x1f
sub ebx, esi
add cx, word [edi + ebx*4]
mov ebx, 1
or bp, cx
mov ecx, dword [esp + 0x2c]
mov word [ecx], bp
add ecx, 2
sub dword [esp + 0x40], ebx
mov dword [esp + 0x2c], ecx
jne 0x5e0f80
mov esi, dword [esp + 0x94]
jmp 0x5e1001
mov ebx, 1
mov ebp, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x2c], 0
jge 0x5e101e
add ebp, 6
add dword [esp + 0x14], 4
jmp 0x5e10a0
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x28], ecx
jl 0x5e1066
mov ebx, dword [esp + 0x30]
cmp ecx, ebx
jl 0x5e1049
lea eax, [ecx - 1]
sub ecx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov ebx, 2
sub ebx, ecx
sub ebp, ecx
add dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x34]
jmp 0x5e10a8
mov esi, dword [esp + 0x30]
cmp ecx, esi
jl 0x5e107b
lea eax, [ecx - 1]
sub ecx, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea esi, [eax*4]
mov ecx, 4
sub ecx, esi
mov esi, dword [esp + 0x14]
lea ebp, [ecx + ebp + 2]
lea ecx, [esi + ecx + 2]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], ebp
jle 0x5e1487
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
lea ecx, [ebx + esi]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x5c]
sub esi, ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x1c]
imul ecx, esi
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, esi
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x58]
imul ecx, esi
mov dword [esp + 0x68], ecx
lea esp, [esp]
cmp dword [esp + 0x2c], 0
je 0x5e137b
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
xor ecx, ecx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x80]
setl cl
xor ebx, ebx
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x78]
setg bl
mov ebp, dword [esp + 0x38]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x84]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg bl
or ecx, ebx
movzx ebx, byte [esi + ebp]
or ecx, ebx
jne 0x5e1254
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5e118f
mov dword [esp + 0x24], ecx
jmp 0x5e1193
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x60], eax
jle 0x5e11a4
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
mov byte [esi + ebp], 1
lea eax, [eax + ecx*2]
add eax, dword [esp + 0x20]
mov ebx, edx
sar ebx, 5
mov ebp, edx
and ebx, 0x3f
sar ebp, 0xb
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], ecx
jmp 0x5e11ec
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x4c]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5e11e4
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
xor ecx, ecx
cmp esi, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
setl cl
xor ebx, ebx
cmp dword [esp + 0x50], esi
mov esi, dword [esp + 0x78]
setg bl
mov ebp, dword [esp + 0x38]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x50]
setg bl
or ecx, ebx
movzx ebx, byte [esi + ebp]
or ecx, ebx
jne 0x5e1373
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5e12b6
mov ecx, eax
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp eax, ebx
jle 0x5e12c7
mov eax, ebx
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x68]
mov byte [esi + ebp], 1
lea eax, [eax + ecx*2]
add eax, dword [esp + 0x20]
mov ebx, edx
sar ebx, 5
mov ebp, edx
and ebx, 0x3f
sar ebp, 0xb
mov ecx, edx
and ecx, 0x1f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], ecx
jmp 0x5e130b
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x4c]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5e1303
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x2c], 0
jge 0x5e13c3
sub dword [esp + 0x50], 1
mov ecx, 1
add dword [esp + 0x5c], ecx
add ebx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
lea ecx, [ebx*4]
add dword [esp + 0x14], ecx
lea ebp, [ecx + ebp + 2]
jmp 0x5e1470
mov esi, dword [esp + 0x28]
add esi, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], esi
jl 0x5e1415
cmp esi, ecx
jl 0x5e13ff
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x70]
mov esi, 2
sub esi, ecx
sub ebp, ecx
add dword [esp + 0x14], esi
jmp 0x5e1474
cmp esi, ecx
jl 0x5e1433
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
add dword [esp + 0x5c], 1
mov esi, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x50], ecx
mov dword [esp + 0x2c], ecx
add ebx, 1
mov ecx, ebx
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea ebp, [ecx + ebp + 2]
lea ecx, [esi + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], ebp
jg 0x5e1110
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x90]
sub esi, ebx
mov ecx, ebp
sub ecx, eax
add ebp, eax
xor eax, eax
cmp esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x78]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x24]
setl cl
or eax, ecx
xor ecx, ecx
cmp esi, dword [esp + 0x84]
setg cl
xor ebx, ebx
or eax, ecx
mov ecx, dword [esp + 0x80]
cmp ebp, ecx
setg bl
or eax, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [esi + ebx]
or eax, ebx
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp ebp, eax
jge 0x5e14ee
mov ebp, eax
mov eax, dword [esp + 0x44]
cmp eax, ecx
jle 0x5e14f8
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
sub eax, ebp
mov ebx, edx
lea esi, [esi + ebp*2]
sar ebx, 5
mov ebp, edx
add eax, 1
and ebx, 0x3f
sar ebp, 0xb
and edx, 0x1f
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], edx
jmp 0x5e153b
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
movzx eax, word [esi]
movzx ecx, ax
mov edx, ecx
shr edx, 5
and edx, 0x3f
sub ebx, edx
mov edx, eax
shr edx, 5
and edx, 0x3f
add dx, word [edi + ebx*4]
mov ebx, ecx
shr ebx, 0xb
sub ebp, ebx
mov bx, ax
shr bx, 0xb
add bx, word [edi + ebp*4]
shl dx, 5
shl bx, 0xb
or dx, bx
mov ebx, dword [esp + 0x4c]
and ecx, 0x1f
sub ebx, ecx
and eax, 0x1f
add ax, word [edi + ebx*4]
add esi, 2
or dx, ax
sub dword [esp + 0x40], 1
mov word [esi - 2], dx
jne 0x5e1533
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
mov ecx, edi
add edi, ebx
sub ecx, ebx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x7c]
cmp dword [esp + 0x94], edi
mov edi, dword [esp + 0x78]
setl cl
xor ebx, ebx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl bl
mov ebp, dword [esp + 0x94]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x94], edi
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx edi, byte [ebx + ebp]
or ecx, edi
jne 0x5e1715
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5e163e
mov edi, ecx
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x80]
jle 0x5e1652
mov ecx, dword [esp + 0x80]
sub ecx, edi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ebp
add ecx, dword [esp + 0x20]
mov byte [ebx + ebp], 1
lea ebx, [ecx + edi*2]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ecx
jmp 0x5e16a0
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
movzx edi, cx
movzx ecx, word [ebx]
movzx ebx, cx
mov ecx, edi
and ecx, 0xf7def7df
and ebx, 0xf7def7df
add ebx, ecx
mov ecx, ebx
and ecx, 0x8210820
mov ebp, ecx
shr ebp, 5
sub ecx, ebp
mov ebp, dword [esp + 0x2c]
movzx ebp, word [ebp]
or edi, ebp
and edi, 0x820
or ecx, edi
or ecx, ebx
mov ebx, dword [esp + 0x2c]
mov word [ebx], cx
add ebx, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], ebx
jne 0x5e16a0
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0x18]
test edi, edi
mov dword [esp + 0x2c], 0
jge 0x5e1732
add edi, 6
add dword [esp + 0x14], 4
jmp 0x5e17b0
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e177a
cmp ecx, ebx
jl 0x5e175d
lea eax, [ecx - 1]
sub ecx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov ebx, 2
sub ebx, ecx
sub edi, ecx
add dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x34]
jmp 0x5e17bd
cmp ecx, ebx
jl 0x5e178b
lea eax, [ecx - 1]
sub ecx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea ebp, [eax*4]
mov ecx, 4
sub ecx, ebp
mov ebp, dword [esp + 0x14]
lea edi, [edi + ecx + 2]
lea ecx, [ecx + ebp + 2]
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x14], ecx
mov ebx, 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], edi
jle 0x5e1b84
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
lea ecx, [ebx + ebp]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x60]
sub ebp, ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x1c]
imul ecx, ebp
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, eax
mov dword [esp + 0x68], ecx
mov ecx, ebp
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ebp
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x2c], 0
je 0x5e1a70
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], ebp
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x80]
mov ebp, dword [esp + 0x60]
setg cl
mov dword [esp + 0x44], edi
or eax, ecx
xor ecx, ecx
cmp edi, ebx
setl cl
or eax, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x84]
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ebx, byte [ecx + ebp]
or eax, ebx
jne 0x5e1958
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x68], eax
jge 0x5e1896
mov dword [esp + 0x24], eax
jmp 0x5e189a
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x64], ebx
jle 0x5e18ad
mov edi, ebx
mov dword [esp + 0x44], ebx
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x6c]
sub edi, eax
lea eax, [ecx + eax*2]
add eax, dword [esp + 0x20]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
add edi, 1
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], ecx
lea esp, [esp]
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
add eax, 2
movzx edi, cx
movzx ecx, word [eax - 2]
movzx ebp, cx
mov ecx, edi
and ecx, 0xf7def7df
and ebp, 0xf7def7df
add ebp, ecx
mov ecx, ebp
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
movzx ebx, word [eax - 2]
or edi, ebx
and edi, 0x820
or ecx, edi
or ecx, ebp
sub dword [esp + 0x40], 1
mov word [eax - 2], cx
jne 0x5e18f0
mov edi, dword [esp + 0x44]
mov ebp, dword [esp + 0x5c]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x5c]
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x84]
mov ebp, dword [esp + 0x24]
setg al
or ecx, eax
xor eax, eax
cmp edi, dword [esp + 0x78]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x80]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx ebx, byte [ebx + eax]
or ecx, ebx
jne 0x5e1a64
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5e19ae
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp edi, ecx
jle 0x5e19bb
mov edi, ecx
mov ecx, dword [esp + 0x5c]
mov byte [ecx + eax], 1
mov eax, dword [esp + 0x58]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
sub edi, ebp
lea eax, [eax + ebp*2]
add eax, dword [esp + 0x20]
add edi, 1
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], ecx
mov edi, edi
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
add eax, 2
movzx edi, cx
movzx ecx, word [eax - 2]
movzx ebp, cx
mov ecx, edi
and ecx, 0xf7def7df
and ebp, 0xf7def7df
add ebp, ecx
mov ecx, ebp
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
movzx ebx, word [eax - 2]
or edi, ebx
and edi, 0x820
or ecx, edi
or ecx, ebp
sub dword [esp + 0x40], 1
mov word [eax - 2], cx
jne 0x5e1a00
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
test edi, edi
mov dword [esp + 0x2c], 0
jge 0x5e1ab8
sub dword [esp + 0x5c], 1
mov ecx, 1
add dword [esp + 0x60], ecx
add ebx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
lea ecx, [ebx*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
jmp 0x5e1b6d
mov ebp, dword [esp + 0x28]
add ebp, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ebp
jl 0x5e1b0e
cmp ebp, ecx
jl 0x5e1af8
add dword [esp + 0x68], 1
sub dword [esp + 0x64], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x70]
mov ebp, 2
sub ebp, ecx
sub edi, ecx
add dword [esp + 0x14], ebp
jmp 0x5e1b71
cmp ebp, ecx
jl 0x5e1b30
add dword [esp + 0x68], 1
sub dword [esp + 0x64], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x58], ecx
add dword [esp + 0x60], 1
mov ebp, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x5c], ecx
mov dword [esp + 0x2c], ecx
add ebx, 1
mov ecx, ebx
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
lea ecx, [ecx + ebp + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], edi
jg 0x5e1821
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
sub ebp, ebx
xor ebx, ebx
mov ecx, edi
sub ecx, eax
add eax, edi
mov edi, ebp
cmp edi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
setl bl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
setl cl
xor eax, eax
or ebx, ecx
cmp edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x24]
setg al
or ebx, eax
xor eax, eax
cmp ecx, ebp
setg al
or ebx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [edi + eax]
or ebx, eax
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5e1bed
mov ecx, eax
mov eax, dword [esp + 0x44]
cmp eax, ebp
jle 0x5e1bf7
mov eax, ebp
mov ebx, dword [esp + 0x38]
mov byte [edi + ebx], 1
imul edi, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
sub eax, ecx
lea ebx, [edi + ecx*2]
add eax, 1
mov ecx, edx
sar ecx, 0xb
mov ebp, eax
lea eax, [esi + ecx*4]
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
mov dword [esp + 0x54], eax
lea eax, [esi + ecx*4]
and edx, 0x1f
lea ecx, [esi + edx*4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
jmp 0x5e1c40
mov edx, dword [esp + 0x54]
mov ax, word [edx]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
shl ax, 6
add ax, word [ecx]
add ebx, 2
shl ax, 5
add ax, word [edx]
movzx edx, word [ebx - 2]
movzx ecx, ax
movzx edi, dx
mov eax, ecx
and eax, 0xf7def7df
and edi, 0xf7def7df
add edi, eax
mov eax, edi
and eax, 0x8210820
mov esi, eax
shr esi, 5
or ecx, edx
sub eax, esi
and ecx, 0x820
or eax, ecx
or eax, edi
sub ebp, 1
mov word [ebx - 2], ax
jne 0x5e1c40
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5e09da.5
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
mov ecx, edi
add edi, ebx
sub ecx, ebx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x7c]
cmp dword [esp + 0x94], edi
mov edi, dword [esp + 0x78]
setl cl
xor ebx, ebx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl bl
mov ebp, dword [esp + 0x94]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x94], edi
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx edi, byte [ebx + ebp]
or ecx, edi
jne 0x5e1df6
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5e1d45
mov edi, ecx
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x80]
jle 0x5e1d59
mov ecx, dword [esp + 0x80]
sub ecx, edi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ebp
add ecx, dword [esp + 0x20]
mov byte [ebx + ebp], 1
lea ebx, [ecx + edi*2]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
jmp 0x5e1da0
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
movzx edi, word [ebx]
movzx ecx, cx
and ecx, 0xf7def7df
or edi, 0x8210820
sub edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebp, ecx
shr ebp, 5
sub ecx, ebp
and ecx, edi
mov word [ebx], cx
add ebx, 2
sub dword [esp + 0x40], 1
jne 0x5e1da0
mov ebp, dword [esp + 0x94]
mov ebx, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x2c], 0
jge 0x5e1e13
add ebx, 6
add dword [esp + 0x14], 4
jmp 0x5e1e89
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e1e57
cmp ecx, edi
jl 0x5e1e3a
lea eax, [ecx - 1]
sub ecx, edi
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edi, 2
sub edi, ecx
sub ebx, ecx
add dword [esp + 0x14], edi
mov edi, dword [esp + 0x34]
jmp 0x5e1e96
cmp ecx, edi
jl 0x5e1e64
lea eax, [ecx - 1]
sub ecx, edi
mov dword [esp + 0x28], ecx
lea ebp, [eax*4]
mov ecx, 4
sub ecx, ebp
mov ebp, dword [esp + 0x14]
lea ebx, [ebx + ecx + 2]
lea ecx, [ecx + ebp + 2]
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x14], ecx
mov edi, 1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
test eax, eax
mov dword [esp + 0x18], ebx
jle 0x5e2249
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
lea ecx, [edi + ebp]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x5c]
sub ebp, edi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x1c]
imul ecx, ebp
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, ebp
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ebp
mov dword [esp + 0x68], ecx
lea ebx, [ebx]
cmp dword [esp + 0x2c], 0
je 0x5e2149
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x5c]
xor ebx, ebx
cmp ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x5c]
setl bl
xor ecx, ecx
cmp dword [esp + 0x64], edi
mov edi, dword [esp + 0x78]
setg cl
or ebx, ecx
xor ecx, ecx
cmp dword [esp + 0x60], edi
mov edi, dword [esp + 0x84]
setl cl
or ebx, ecx
xor ecx, ecx
cmp dword [esp + 0x5c], edi
setg cl
or ebx, ecx
mov ecx, dword [esp + 0x38]
movzx edi, byte [ecx + ebp]
or ebx, edi
jne 0x5e2031
mov edi, dword [esp + 0x78]
cmp dword [esp + 0x64], edi
jge 0x5e1f7f
mov dword [esp + 0x24], edi
jmp 0x5e1f83
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x60], ebx
jle 0x5e1f94
mov dword [esp + 0x44], ebx
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x44]
sub ecx, edi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x6c]
lea ebp, [ecx + edi*2]
add ebp, dword [esp + 0x20]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
jmp 0x5e1fe0
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
movzx edi, word [ebp]
movzx ecx, cx
and ecx, 0xf7def7df
or edi, 0x8210820
sub edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edi
mov word [ebp], cx
add ebp, 2
sub dword [esp + 0x40], 1
jne 0x5e1fe0
mov edi, dword [esp + 0x84]
xor ecx, ecx
cmp dword [esp + 0x48], edi
mov edi, dword [esp + 0x7c]
setg cl
xor ebx, ebx
cmp dword [esp + 0x48], edi
mov edi, dword [esp + 0x78]
setl bl
mov ebp, dword [esp + 0x48]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x44], edi
mov edi, dword [esp + 0x80]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], edi
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx edi, byte [ebx + ebp]
or ecx, edi
jne 0x5e2141
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp edi, ecx
jge 0x5e2093
mov edi, ecx
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x80]
jle 0x5e20a7
mov ecx, dword [esp + 0x80]
sub ecx, edi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x68]
mov byte [ebx + ebp], 1
lea ebp, [ecx + edi*2]
add ebp, dword [esp + 0x20]
mov ecx, edx
sar ecx, 0xb
lea ecx, [esi + ecx*4]
mov dword [esp + 0x54], ecx
mov ecx, edx
sar ecx, 5
and ecx, 0x3f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x50], ecx
mov ecx, edx
and ecx, 0x1f
lea ecx, [esi + ecx*4]
mov dword [esp + 0x4c], ecx
jmp 0x5e20f0
mov ecx, dword [esp + 0x54]
mov cx, word [ecx]
mov edi, dword [esp + 0x50]
shl cx, 6
add cx, word [edi]
mov edi, dword [esp + 0x4c]
shl cx, 5
add cx, word [edi]
movzx edi, word [ebp]
movzx ecx, cx
and ecx, 0xf7def7df
or edi, 0x8210820
sub edi, ecx
mov ecx, edi
and ecx, 0x8210820
mov ebx, ecx
shr ebx, 5
sub ecx, ebx
and ecx, edi
mov word [ebp], cx
add ebp, 2
sub dword [esp + 0x40], 1
jne 0x5e20f0
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x2c], 0
jge 0x5e2191
sub dword [esp + 0x48], 1
mov ecx, 1
add dword [esp + 0x5c], ecx
add edi, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
lea ecx, [edi*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
jmp 0x5e2232
mov ebp, dword [esp + 0x28]
add ebp, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ebp
jl 0x5e21db
cmp ebp, ecx
jl 0x5e21c5
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov ebp, 2
sub ebp, ecx
sub ebx, ecx
add dword [esp + 0x14], ebp
jmp 0x5e2236
cmp ebp, ecx
jl 0x5e21f5
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x68], ecx
add dword [esp + 0x5c], 1
mov ebp, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ecx
add edi, 1
mov ecx, edi
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
lea ecx, [ecx + ebp + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], edi
test eax, eax
mov dword [esp + 0x18], ebx
jg 0x5e1f00
mov ebp, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ecx, ebx
sub ecx, eax
add eax, ebx
sub ebp, edi
xor ebx, ebx
mov edi, ebp
cmp edi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
setl bl
mov ebp, dword [esp + 0x24]
xor ecx, ecx
cmp eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
setl cl
xor eax, eax
or ebx, ecx
cmp edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
setg al
or ebx, eax
xor eax, eax
cmp ebp, ecx
setg al
or ebx, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [edi + eax]
or ebx, eax
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp ebp, eax
jge 0x5e22b2
mov ebp, eax
mov eax, dword [esp + 0x44]
cmp eax, ecx
jle 0x5e22bc
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov byte [edi + ecx], 1
imul edi, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
sub eax, ebp
add eax, 1
mov ebx, eax
mov ecx, edx
mov eax, edx
sar eax, 0xb
sar ecx, 5
and ecx, 0x3f
lea edi, [edi + ebp*2]
lea ebp, [esi + eax*4]
lea eax, [esi + ecx*4]
and edx, 0x1f
mov dword [esp + 0x50], eax
lea esi, [esi + edx*4]
mov cx, word [ebp]
mov edx, dword [esp + 0x50]
shl cx, 6
add cx, word [edx]
add edi, 2
shl cx, 5
add cx, word [esi]
movzx eax, cx
movzx ecx, word [edi - 2]
and eax, 0xf7def7df
or ecx, 0x8210820
sub ecx, eax
mov eax, ecx
and eax, 0x8210820
mov edx, eax
shr edx, 5
sub eax, edx
and eax, ecx
sub ebx, 1
mov word [edi - 2], ax
jne 0x5e22f4
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ecx, edi
sub ecx, esi
add edi, esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x78]
setl cl
xor ebx, ebx
cmp edi, esi
mov esi, dword [esp + 0x80]
setl bl
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x44], edi
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x94]
movzx edi, byte [esi + ebp]
setg bl
or ecx, ebx
or ecx, edi
jne 0x5e2478
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x78]
cmp ecx, edi
jge 0x5e23d4
mov ecx, edi
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp edi, ebx
jle 0x5e23e5
mov edi, ebx
sub edi, ecx
add edi, 1
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x1c]
imul edi, esi
add edi, dword [esp + 0x20]
mov byte [esi + ebp], 1
lea edi, [edi + ecx*2]
mov ebx, edx
mov esi, edx
and ebx, 0x7e0
mov ecx, edx
and esi, 0xf800
and ecx, 0x1f
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], ecx
jmp 0x5e2424
mov ebx, dword [esp + 0x58]
movzx ecx, word [edi]
mov ebp, ecx
and ebp, 0x7e0
imul ebp, ebx
mov ebx, ecx
and ebx, 0xf800
imul ebx, esi
and ecx, 0x1f
imul ecx, dword [esp + 0x4c]
shr ebp, 0xb
and ebp, 0x7e0
shr ebx, 0x10
and ebx, 0xf800
or ebp, ebx
shr ecx, 5
or ebp, ecx
mov word [edi], bp
mov ebp, 1
add edi, 2
sub dword [esp + 0x40], ebp
jne 0x5e2420
mov esi, dword [esp + 0x94]
jmp 0x5e247d
mov ebp, 1
mov ebx, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x2c], 0
jge 0x5e24a0
add ebx, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
mov edi, ebp
jmp 0x5e2511
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e24e0
cmp ecx, edi
jl 0x5e24c3
lea eax, [ecx - 1]
sub ecx, edi
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov edi, 2
sub edi, ecx
sub ebx, ecx
add dword [esp + 0x14], edi
mov edi, dword [esp + 0x34]
jmp 0x5e2515
cmp ecx, edi
jl 0x5e24ed
lea eax, [ecx - 1]
sub ecx, edi
mov dword [esp + 0x28], ecx
mov edi, ebp
mov dword [esp + 0x2c], ebp
lea ebp, [eax*4]
mov ecx, 4
sub ecx, ebp
mov ebp, dword [esp + 0x14]
lea ebx, [ebx + ecx + 2]
lea ecx, [ecx + ebp + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], edi
test eax, eax
mov dword [esp + 0x18], ebx
jle 0x5e2894
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x90]
lea ebp, [edi + esi]
add ecx, eax
mov dword [esp + 0x60], ecx
mov ecx, esi
mov esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x90]
sub esi, eax
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x1c]
sub ecx, edi
neg esi
mov dword [esp + 0x5c], ecx
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x54], ecx
cmp dword [esp + 0x2c], 0
je 0x5e2797
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
setl cl
xor ebx, ebx
cmp esi, ebp
mov ebp, dword [esp + 0x78]
setg bl
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], edi
or ecx, ebx
xor ebx, ebx
cmp edi, ebp
mov ebp, dword [esp + 0x84]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x68]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [ebx + ebp]
or ecx, ebx
jne 0x5e268f
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5e25e8
mov esi, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x60], ecx
jle 0x5e25fb
mov edi, ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x38]
mov byte [ecx + ebp], 1
mov ecx, edi
sub ecx, esi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x6c]
lea esi, [ecx + esi*2]
add esi, dword [esp + 0x20]
mov ebx, edx
mov edi, edx
and ebx, 0x7e0
mov ecx, edx
and edi, 0xf800
and ecx, 0x1f
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], ecx
jmp 0x5e2644
mov ebx, dword [esp + 0x58]
movzx ecx, word [esi]
mov ebp, ecx
and ebp, 0x7e0
imul ebp, ebx
mov ebx, ecx
and ebx, 0xf800
imul ebx, edi
and ecx, 0x1f
imul ecx, dword [esp + 0x4c]
shr ebp, 0xb
shr ebx, 0x10
and ebp, 0x7e0
and ebx, 0xf800
or ebp, ebx
shr ecx, 5
or ebp, ecx
mov word [esi], bp
add esi, 2
sub dword [esp + 0x40], 1
jne 0x5e2640
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x5c]
xor ecx, ecx
cmp esi, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
setl cl
xor ebx, ebx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x78]
setg bl
mov edi, dword [esp + 0x38]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], esi
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x5c]
movzx esi, byte [ebx + edi]
or ecx, esi
jne 0x5e278f
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5e26f1
mov esi, ecx
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x80]
cmp ecx, ebp
jle 0x5e2702
mov ecx, ebp
sub ecx, esi
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x54]
mov byte [ebx + edi], 1
lea esi, [ecx + esi*2]
add esi, dword [esp + 0x20]
mov ebx, edx
mov edi, edx
and ebx, 0x7e0
mov ecx, edx
and edi, 0xf800
and ecx, 0x1f
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], ecx
jmp 0x5e2744
mov ebx, dword [esp + 0x58]
movzx ecx, word [esi]
mov ebp, ecx
and ebp, 0x7e0
imul ebp, ebx
mov ebx, ecx
and ebx, 0xf800
imul ebx, edi
and ecx, 0x1f
imul ecx, dword [esp + 0x4c]
shr ebp, 0xb
shr ebx, 0x10
and ebp, 0x7e0
and ebx, 0xf800
or ebp, ebx
shr ecx, 5
or ebp, ecx
mov word [esi], bp
add esi, 2
sub dword [esp + 0x40], 1
jne 0x5e2740
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x2c], 0
jge 0x5e27da
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x54], ecx
sub dword [esp + 0x5c], 1
add edi, 1
lea ecx, [edi*4]
add ebp, 1
add dword [esp + 0x14], ecx
mov dword [esp + 0x2c], 1
lea ebx, [ebx + ecx + 2]
jmp 0x5e2879
mov esi, dword [esp + 0x28]
add esi, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], esi
jl 0x5e2824
cmp esi, ecx
jl 0x5e280e
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov esi, 2
sub esi, ecx
sub ebx, ecx
add dword [esp + 0x14], esi
jmp 0x5e2881
cmp esi, ecx
jl 0x5e283e
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x54], ecx
mov esi, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x5c], ecx
mov dword [esp + 0x2c], ecx
add edi, 1
mov ecx, edi
sub ecx, eax
add ecx, ecx
add ebp, 1
add ecx, ecx
lea ebx, [ebx + ecx + 2]
lea ecx, [esi + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x34], edi
test eax, eax
mov dword [esp + 0x18], ebx
jg 0x5e2573
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
lea ebp, [eax + ebx]
sub esi, edi
mov ecx, ebx
sub ecx, eax
xor eax, eax
cmp esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x80]
setl cl
or eax, ecx
xor ecx, ecx
cmp esi, dword [esp + 0x84]
setg cl
or eax, ecx
xor ecx, ecx
cmp dword [esp + 0x24], edi
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esi + ecx]
or eax, ecx
jne case.0x5e09da.5
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jge 0x5e28fa
mov eax, ecx
cmp ebp, edi
jle 0x5e2900
mov ebp, edi
mov ecx, dword [esp + 0x38]
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
sub ebp, eax
mov ecx, edx
mov edi, edx
add ebp, 1
and ecx, 0x7e0
and edi, 0xf800
mov dword [esp + 0x40], ebp
lea esi, [esi + eax*2]
and edx, 0x1f
movzx eax, word [esi]
mov ebx, eax
and ebx, 0x7e0
mov ebp, eax
imul ebx, ecx
and ebp, 0xf800
imul ebp, edi
and eax, 0x1f
imul eax, edx
shr ebx, 0xb
shr ebp, 0x10
and ebx, 0x7e0
and ebp, 0xf800
or ebx, ebp
shr eax, 5
or ebx, eax
mov word [esi], bx
add esi, 2
sub dword [esp + 0x40], 1
jne 0x5e2930
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
mov ecx, esi
add esi, ebx
sub ecx, ebx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x7c]
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x78]
setl cl
xor ebx, ebx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x94]
setg bl
or ecx, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [ebx + esi]
or ecx, ebx
jne 0x5e2af9
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp ebx, ecx
jge 0x5e2a11
mov ebx, ecx
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x80]
cmp ecx, ebp
jle 0x5e2a22
mov ecx, ebp
mov ebp, dword [esp + 0x38]
sub ecx, ebx
add ecx, 1
mov byte [esi + ebp], 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, esi
add ecx, dword [esp + 0x20]
mov esi, edx
sar esi, 5
and esi, 0x3f
mov dword [esp + 0x58], esi
mov esi, edx
sar esi, 0xb
mov dword [esp + 0x54], esi
mov esi, edx
lea ecx, [ecx + ebx*2]
and esi, 0x1f
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x4c], esi
movzx ecx, word [ecx]
movzx ebx, cx
mov esi, ebx
shr esi, 5
and esi, 0x3f
mov ebp, ebx
and ebx, 0x1f
mov dword [esp + 0x10], ebx
mov ebx, esi
imul ebx, dword [esp + 0x58]
shr ebp, 0xb
mov dword [esp + 0x50], ebp
mov ebp, ecx
sar ebx, 6
sub ebx, esi
mov esi, dword [esp + 0x50]
shr ebp, 5
and ebp, 0x3f
add bp, word [edi + ebx*4]
mov ebx, dword [esp + 0x54]
imul ebx, esi
sar ebx, 5
sub ebx, esi
mov si, cx
shr si, 0xb
add si, word [edi + ebx*4]
shl bp, 5
shl si, 0xb
or bp, si
mov esi, dword [esp + 0x10]
imul esi, dword [esp + 0x4c]
sar esi, 5
sub esi, dword [esp + 0x10]
and ecx, 0x1f
add cx, word [edi + esi*4]
or bp, cx
mov ecx, dword [esp + 0x2c]
mov word [ecx], bp
add ecx, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], ecx
jne 0x5e2a63
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x2c], 0
jge 0x5e2b16
add ebp, 6
add dword [esp + 0x14], 4
jmp 0x5e2b98
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x28], ecx
jl 0x5e2b5e
mov ebx, dword [esp + 0x30]
cmp ecx, ebx
jl 0x5e2b41
lea eax, [ecx - 1]
sub ecx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov ebx, 2
sub ebx, ecx
sub ebp, ecx
add dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x34]
jmp 0x5e2ba5
mov esi, dword [esp + 0x30]
cmp ecx, esi
jl 0x5e2b73
lea eax, [ecx - 1]
sub ecx, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea esi, [eax*4]
mov ecx, 4
sub ecx, esi
mov esi, dword [esp + 0x14]
lea ebp, [ecx + ebp + 2]
lea ecx, [esi + ecx + 2]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x14], ecx
mov ebx, 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], ebp
jle 0x5e2fb3
lea ecx, [eax*4]
mov dword [esp + 0x70], ecx
lea ecx, [ebx + esi]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x5c]
sub esi, ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x1c]
imul ecx, esi
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, esi
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x58]
imul ecx, esi
mov dword [esp + 0x74], ecx
lea esp, [esp]
cmp dword [esp + 0x2c], 0
je 0x5e2ea7
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
xor ecx, ecx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x80]
setl cl
xor ebx, ebx
cmp dword [esp + 0x64], esi
mov esi, dword [esp + 0x78]
setg bl
mov ebp, dword [esp + 0x38]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x60], esi
mov esi, dword [esp + 0x84]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x5c], esi
mov esi, dword [esp + 0x5c]
setg bl
or ecx, ebx
movzx ebx, byte [esi + ebp]
or ecx, ebx
jne 0x5e2d6b
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], ecx
jge 0x5e2c8f
mov dword [esp + 0x24], ecx
jmp 0x5e2c93
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x60], eax
jle 0x5e2ca4
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
mov byte [esi + ebp], 1
lea ebp, [eax + ecx*2]
add ebp, dword [esp + 0x20]
mov eax, edx
sar eax, 5
and eax, 0x3f
mov dword [esp + 0x58], eax
mov eax, edx
sar eax, 0xb
mov dword [esp + 0x54], eax
mov eax, edx
and eax, 0x1f
mov dword [esp + 0x4c], eax
mov edi, edi
movzx ecx, word [ebp]
movzx eax, cx
mov esi, eax
mov ebx, eax
and eax, 0x1f
mov dword [esp + 0x10], eax
shr esi, 5
and esi, 0x3f
mov eax, esi
imul eax, dword [esp + 0x58]
sar eax, 6
sub eax, esi
shr ebx, 0xb
mov esi, ecx
shr esi, 5
and esi, 0x3f
add si, word [edi + eax*4]
mov dword [esp + 0x50], ebx
mov eax, ebx
mov ebx, dword [esp + 0x54]
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, cx
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x4c]
sar eax, 5
sub eax, dword [esp + 0x10]
and ecx, 0x1f
add cx, word [edi + eax*4]
add ebp, 2
or si, cx
sub dword [esp + 0x40], 1
mov word [ebp - 2], si
jne 0x5e2ce0
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x68]
xor ecx, ecx
cmp esi, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
setl cl
xor ebx, ebx
cmp dword [esp + 0x68], esi
mov esi, dword [esp + 0x78]
setg bl
mov ebp, dword [esp + 0x38]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x68]
setg bl
or ecx, ebx
movzx ebx, byte [esi + ebp]
or ecx, ebx
jne 0x5e2e9f
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
cmp ecx, eax
jge 0x5e2dcd
mov ecx, eax
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp eax, ebx
jle 0x5e2dde
mov eax, ebx
sub eax, ecx
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x74]
mov byte [esi + ebp], 1
lea ebp, [eax + ecx*2]
add ebp, dword [esp + 0x20]
mov eax, edx
sar eax, 5
and eax, 0x3f
mov dword [esp + 0x58], eax
mov eax, edx
sar eax, 0xb
mov dword [esp + 0x54], eax
mov eax, edx
and eax, 0x1f
mov dword [esp + 0x4c], eax
movzx ecx, word [ebp]
movzx eax, cx
mov esi, eax
mov ebx, eax
and eax, 0x1f
mov dword [esp + 0x10], eax
shr esi, 5
and esi, 0x3f
mov eax, esi
imul eax, dword [esp + 0x58]
sar eax, 6
sub eax, esi
shr ebx, 0xb
mov esi, ecx
shr esi, 5
and esi, 0x3f
add si, word [edi + eax*4]
mov dword [esp + 0x50], ebx
mov eax, ebx
mov ebx, dword [esp + 0x54]
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, cx
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x4c]
sar eax, 5
sub eax, dword [esp + 0x10]
and ecx, 0x1f
add cx, word [edi + eax*4]
add ebp, 2
or si, cx
sub dword [esp + 0x40], 1
mov word [ebp - 2], si
jne 0x5e2e14
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
test ebp, ebp
mov dword [esp + 0x2c], 0
jge 0x5e2eef
sub dword [esp + 0x68], 1
mov ecx, 1
add dword [esp + 0x5c], ecx
add ebx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x74], ecx
lea ecx, [ebx*4]
add dword [esp + 0x14], ecx
lea ebp, [ecx + ebp + 2]
jmp 0x5e2f9c
mov esi, dword [esp + 0x28]
add esi, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], esi
jl 0x5e2f41
cmp esi, ecx
jl 0x5e2f2b
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x70]
mov esi, 2
sub esi, ecx
sub ebp, ecx
add dword [esp + 0x14], esi
jmp 0x5e2fa0
cmp esi, ecx
jl 0x5e2f5f
add dword [esp + 0x64], 1
sub dword [esp + 0x60], 1
sub dword [esp + 0x70], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x74], ecx
add dword [esp + 0x5c], 1
mov esi, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x68], ecx
mov dword [esp + 0x2c], ecx
add ebx, 1
mov ecx, ebx
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea ebp, [ecx + ebp + 2]
lea ecx, [esi + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], ebp
jg 0x5e2c10
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x90]
sub esi, ebx
mov ecx, ebp
sub ecx, eax
add ebp, eax
xor eax, eax
cmp esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x78]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x24]
setl cl
or eax, ecx
xor ecx, ecx
cmp esi, dword [esp + 0x84]
setg cl
xor ebx, ebx
or eax, ecx
mov ecx, dword [esp + 0x80]
cmp ebp, ecx
setg bl
or eax, ebx
mov ebx, dword [esp + 0x38]
movzx ebx, byte [esi + ebx]
or eax, ebx
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp ebp, eax
jge 0x5e301a
mov ebp, eax
mov eax, dword [esp + 0x44]
cmp eax, ecx
jle 0x5e3024
mov eax, ecx
mov ecx, dword [esp + 0x38]
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
sub eax, ebp
add eax, 1
lea esi, [esi + ebp*2]
mov ebp, edx
mov dword [esp + 0x40], eax
sar ebp, 5
mov eax, edx
sar eax, 0xb
and ebp, 0x3f
and edx, 0x1f
mov dword [esp + 0x2c], esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], edx
lea ecx, [ecx]
movzx eax, word [esi]
movzx esi, ax
mov ecx, esi
shr ecx, 5
and ecx, 0x3f
mov edx, ecx
imul edx, ebp
sar edx, 6
sub edx, ecx
mov ecx, eax
shr ecx, 5
and ecx, 0x3f
add cx, word [edi + edx*4]
mov edx, dword [esp + 0x54]
mov ebx, esi
shr ebx, 0xb
imul edx, ebx
sar edx, 5
sub edx, ebx
mov bx, ax
and esi, 0x1f
shr bx, 0xb
add bx, word [edi + edx*4]
mov edx, esi
imul edx, dword [esp + 0x4c]
sar edx, 5
sub edx, esi
mov esi, dword [esp + 0x2c]
shl cx, 5
and eax, 0x1f
add ax, word [edi + edx*4]
shl bx, 0xb
or cx, bx
or cx, ax
mov word [esi], cx
add esi, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], esi
jne 0x5e3060
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
mov ecx, esi
add esi, ebx
sub ecx, ebx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x78]
setl cl
xor ebx, ebx
cmp dword [esp + 0x44], esi
mov esi, dword [esp + 0x80]
setl bl
mov ebp, dword [esp + 0x94]
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x84]
setg bl
or ecx, ebx
xor ebx, ebx
cmp dword [esp + 0x94], esi
mov esi, dword [esp + 0x38]
movzx esi, byte [esi + ebp]
setg bl
or ecx, ebx
or ecx, esi
jne 0x5e3246
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
cmp esi, ecx
jge 0x5e3175
mov esi, ecx
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp ecx, ebx
jle 0x5e3186
mov ecx, ebx
sub ecx, esi
mov ebx, dword [esp + 0x38]
add ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
imul ecx, ebp
add ecx, dword [esp + 0x20]
mov byte [ebx + ebp], 1
lea ecx, [ecx + esi*2]
mov esi, edx
not esi
movzx esi, si
mov ebx, esi
shr ebx, 5
mov ebp, esi
and ebx, 0x3f
shr ebp, 0xb
and esi, 0x1f
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x50], esi
jmp 0x5e31d4
mov ebx, dword [esp + 0x54]
movzx ecx, word [ecx]
movzx esi, cx
mov ebp, esi
shr ebp, 5
and ebp, 0x3f
sub ebx, ebp
mov ebp, ecx
shr ebp, 5
mov dword [esp + 0x44], esi
and ebp, 0x3f
add bp, word [edi + ebx*4]
mov ebx, dword [esp + 0x58]
shr esi, 0xb
sub ebx, esi
mov si, cx
shr si, 0xb
add si, word [edi + ebx*4]
mov ebx, dword [esp + 0x50]
shl si, 0xb
shl bp, 5
or bp, si
mov esi, dword [esp + 0x44]
and esi, 0x1f
and ecx, 0x1f
sub ebx, esi
add cx, word [edi + ebx*4]
or bp, cx
mov ecx, dword [esp + 0x2c]
mov word [ecx], bp
add ecx, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], ecx
jne 0x5e31d0
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x18]
test esi, esi
mov dword [esp + 0x2c], 0
jge 0x5e3263
add esi, 6
add dword [esp + 0x14], 4
jmp 0x5e32e1
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e32ab
cmp ecx, ebx
jl 0x5e328e
lea eax, [ecx - 1]
sub ecx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea ecx, [eax*4]
mov ebx, 2
sub ebx, ecx
sub esi, ecx
add dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x34]
jmp 0x5e32ee
cmp ecx, ebx
jl 0x5e32bc
lea eax, [ecx - 1]
sub ecx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ecx
lea ebp, [eax*4]
mov ecx, 4
sub ecx, ebp
mov ebp, dword [esp + 0x14]
lea esi, [esi + ecx + 2]
lea ecx, [ecx + ebp + 2]
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x14], ecx
mov ebx, 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], esi
jle 0x5e36c4
lea ecx, [eax*4]
mov dword [esp + 0x74], ecx
lea ecx, [ebx + ebp]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x64]
sub ebp, ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x1c]
imul ecx, ebp
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x90]
sub ecx, eax
mov dword [esp + 0x5c], ecx
mov ecx, ebp
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x58]
imul ecx, ebp
mov dword [esp + 0x6c], ecx
cmp dword [esp + 0x2c], 0
je 0x5e35b8
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x78]
xor eax, eax
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], ebp
setl al
xor ecx, ecx
cmp ebp, dword [esp + 0x80]
mov ebp, dword [esp + 0x64]
setg cl
mov dword [esp + 0x44], esi
or eax, ecx
xor ecx, ecx
cmp esi, ebx
setl cl
or eax, ecx
xor ecx, ecx
cmp ebp, dword [esp + 0x84]
setg cl
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ebx, byte [ecx + ebp]
or eax, ebx
jne 0x5e3490
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x5c], eax
jge 0x5e33c7
mov dword [esp + 0x24], eax
jmp 0x5e33cb
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x68], ebx
jle 0x5e33de
mov esi, ebx
mov dword [esp + 0x44], ebx
mov byte [ecx + ebp], 1
mov ecx, dword [esp + 0x70]
sub esi, eax
lea eax, [ecx + eax*2]
add eax, dword [esp + 0x20]
mov ecx, edx
not ecx
movzx ecx, cx
mov ebx, ecx
shr ebx, 5
mov ebp, ecx
add esi, 1
and ebx, 0x3f
shr ebp, 0xb
and ecx, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x50], ecx
jmp 0x5e3428
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x50]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5e3420
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x60]
xor ecx, ecx
cmp ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x60]
setl cl
xor eax, eax
cmp ebp, dword [esp + 0x84]
mov ebp, dword [esp + 0x24]
setg al
or ecx, eax
xor eax, eax
cmp esi, dword [esp + 0x78]
setl al
or ecx, eax
xor eax, eax
cmp ebp, dword [esp + 0x80]
setg al
or ecx, eax
mov eax, dword [esp + 0x38]
movzx ebx, byte [ebx + eax]
or ecx, ebx
jne 0x5e35ac
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
jge 0x5e34e6
mov ebp, ecx
mov ecx, dword [esp + 0x80]
cmp esi, ecx
jle 0x5e34f3
mov esi, ecx
mov ecx, dword [esp + 0x60]
mov byte [ecx + eax], 1
mov eax, dword [esp + 0x6c]
mov ecx, edx
not ecx
movzx ecx, cx
sub esi, ebp
lea eax, [eax + ebp*2]
add eax, dword [esp + 0x20]
mov ebx, ecx
shr ebx, 5
mov ebp, ecx
add esi, 1
and ebx, 0x3f
shr ebp, 0xb
and ecx, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x50], ecx
jmp 0x5e3548
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
movzx ecx, word [eax]
movzx esi, cx
mov eax, esi
shr eax, 5
and eax, 0x3f
sub ebx, eax
mov eax, ecx
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, esi
shr ebx, 0xb
sub ebp, ebx
mov bx, cx
shr bx, 0xb
add bx, word [edi + ebp*4]
shl ax, 5
shl bx, 0xb
or ax, bx
mov ebx, dword [esp + 0x50]
and esi, 0x1f
sub ebx, esi
and ecx, 0x1f
add cx, word [edi + ebx*4]
or ax, cx
mov bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x2c], eax
jne 0x5e3540
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x18]
test esi, esi
mov dword [esp + 0x2c], 0
jge 0x5e3600
sub dword [esp + 0x60], 1
mov ecx, 1
add dword [esp + 0x64], ecx
add ebx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x6c], ecx
lea ecx, [ebx*4]
add dword [esp + 0x14], ecx
lea esi, [esi + ecx + 2]
jmp 0x5e36ad
mov ebp, dword [esp + 0x28]
add ebp, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ebp
jl 0x5e3652
cmp ebp, ecx
jl 0x5e363c
add dword [esp + 0x5c], 1
sub dword [esp + 0x68], 1
sub dword [esp + 0x74], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x74]
mov ebp, 2
sub ebp, ecx
sub esi, ecx
add dword [esp + 0x14], ebp
jmp 0x5e36b1
cmp ebp, ecx
jl 0x5e3670
add dword [esp + 0x5c], 1
sub dword [esp + 0x68], 1
sub dword [esp + 0x74], 4
sub eax, 1
sub dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x6c], ecx
add dword [esp + 0x64], 1
mov ebp, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x60], ecx
mov dword [esp + 0x2c], ecx
add ebx, 1
mov ecx, ebx
sub ecx, eax
add ecx, ecx
add ecx, ecx
lea esi, [esi + ecx + 2]
lea ecx, [ecx + ebp + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ebx
test eax, eax
mov dword [esp + 0x18], esi
jg 0x5e3352
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
sub ebp, ebx
xor ebx, ebx
mov ecx, esi
sub ecx, eax
add eax, esi
mov esi, ebp
cmp esi, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
setl bl
mov ebp, dword [esp + 0x24]
xor ecx, ecx
cmp eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
setl cl
xor eax, eax
or ebx, ecx
cmp esi, dword [esp + 0x84]
setg al
xor ecx, ecx
or ebx, eax
cmp ebp, dword [esp + 0x80]
setg cl
or ebx, ecx
mov ecx, dword [esp + 0x38]
movzx eax, byte [esi + ecx]
or ebx, eax
jne case.0x5e09da.5
mov eax, dword [esp + 0x78]
cmp ebp, eax
jge 0x5e372b
mov ebp, eax
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x80]
cmp eax, ebx
jle 0x5e373c
mov eax, ebx
sub eax, ebp
mov byte [esi + ecx], 1
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
add eax, 1
not edx
mov dword [esp + 0x40], eax
movzx eax, dx
mov edx, eax
shr edx, 5
mov ebx, eax
and edx, 0x3f
shr ebx, 0xb
and eax, 0x1f
lea esi, [esi + ebp*2]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x50], eax
jmp 0x5e3788
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
movzx eax, word [esi]
movzx ecx, ax
mov ebp, ecx
shr ebp, 5
and ebp, 0x3f
sub edx, ebp
mov ebp, eax
shr ebp, 5
and ebp, 0x3f
add bp, word [edi + edx*4]
mov edx, ecx
shr edx, 0xb
sub ebx, edx
mov dx, ax
shr dx, 0xb
add dx, word [edi + ebx*4]
shl bp, 5
shl dx, 0xb
or bp, dx
mov edx, dword [esp + 0x50]
and ecx, 0x1f
sub edx, ecx
and eax, 0x1f
add ax, word [edi + edx*4]
add esi, 2
or bp, ax
sub dword [esp + 0x40], 1
mov word [esi - 2], bp
jne 0x5e3780
mov eax, dword [esp + 0x38]
push eax
call fcn.004e0760
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp ebx, ebp
lea ecx, [ebx + ebx]
jl 0x5e97bd
mov eax, ebx
imul eax, ebx
cdq
idiv dword [esp + 0x9c]
mov edx, ebx
mov ebx, ecx
mov ecx, 3
sub ecx, ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x98]
add ecx, ecx
add ecx, ecx
mov ebx, ecx
mov ecx, 3
sub ecx, ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x1c]
xor ebp, ebp
mov dword [esp + 0x30], eax
xor eax, eax
sub ecx, ebp
mov dword [esp + 0x28], eax
je 0x5e654b
sub ecx, 1
jne case.0x5ecb10.5
mov ecx, dword [0x8e80e4]
and ecx, 0xffffff
cmp ecx, 0xffffff
je 0x5e38d0
movzx ebx, byte [esp + 0xa2]
movzx ecx, byte [0x8e80e6]
movzx edi, byte [0x8e80e5]
imul ebx, ecx
movzx ecx, byte [esp + 0xa1]
mov dword [esp + 0x74], ecx
imul ecx, edi
movzx edi, byte [0x8e80e4]
sar ecx, 8
mov byte [esp + 0xa1], cl
movzx ecx, byte [esp + 0xa0]
mov dword [esp + 0x74], ecx
imul ecx, edi
sar ebx, 8
sar ecx, 8
mov byte [esp + 0xa2], bl
mov byte [esp + 0xa0], cl
jmp 0x5e38d7
mov bl, byte [esp + 0xa2]
mov ecx, dword [0x8e80bc]
cmp ecx, 0xb
ja case.0x5ecb10.5
jmp dword [ecx*4 + 0x5f0284]
mov ecx, dword [0x8e80c0]
cmp ecx, 0xff
jne 0x5e3d77
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x80]
sub edi, ebx
mov ecx, esi
sub ecx, dword [esp + 0x98]
mov dword [esp + 0x34], edi
mov edi, ecx
sub edi, ebx
cmp edi, dword [esp + 0x34]
ja 0x5e3962
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, dword [esp + 0x7c]
sub ebx, dword [esp + 0x7c]
cmp ebx, edi
ja 0x5e3962
mov edi, dword [esp + 0x1c]
imul edi, dword [esp + 0x94]
add edi, dword [esp + 0x20]
mov ebx, dword [esp + 0xa0]
mov dword [edi + ecx*4], ebx
mov ecx, dword [esp + 0x98]
add ecx, esi
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5e39b6
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, ecx
sub ebx, ecx
cmp ebx, edi
ja 0x5e39b6
mov edi, dword [esp + 0x1c]
imul edi, dword [esp + 0x94]
add edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0xa0]
add ecx, esi
mov dword [edi + ecx*4], ebx
mov ebx, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x2c], 0
jge 0x5e39fc
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
jl 0x5e39e4
mov ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ebp
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e3a68
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e3a36
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub ebx, ecx
add dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
jmp 0x5e3a68
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
jl 0x5e3a4c
mov ebp, 1
sub eax, edi
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5e3ce2
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
lea ecx, [edx + esi]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0x94]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, esi
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
mov ecx, ebp
sub ecx, dword [esp + 0x7c]
add ecx, ebx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x7c]
sub ecx, ebp
mov dword [esp + 0x50], ecx
mov ecx, esi
sub ecx, dword [esp + 0x78]
sub esi, edx
sub ecx, edx
mov dword [esp + 0x68], ecx
mov ecx, ebx
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
add esi, esi
mov dword [esp + 0x54], ecx
add esi, esi
lea esp, [esp]
cmp dword [esp + 0x2c], 0
mov ebx, 1
je 0x5e3be1
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x68], ecx
ja 0x5e3b33
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x5c], ecx
ja 0x5e3b33
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov dword [ecx + ebx], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e3b6e
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x5c], ecx
ja 0x5e3b6e
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov edi, dword [esp + 0xa0]
mov dword [ecx + ebx], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x68], ecx
ja 0x5e3ba1
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5e3ba1
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov dword [ecx + ebx], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e3bdc
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5e3bdc
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov edi, dword [esp + 0xa0]
mov dword [ecx + ebx], edi
mov edi, dword [esp + 0x30]
mov ebx, 1
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e3c40
add eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e3c24
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x54], ecx
add dword [esp + 0x5c], ebx
mov ecx, 1
sub dword [esp + 0x50], ecx
add ebp, ebx
sub eax, edi
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e3cd3
add dword [esp + 0x68], ebx
sub dword [esp + 0x64], ebx
sub edx, ebx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ebx
jl 0x5e3c7c
mov ecx, dword [esp + 0x74]
sub dword [esp + 0x60], 4
sub ecx, 4
sub dword [esp + 0x18], ecx
mov ebx, 2
sub ebx, ecx
add esi, 4
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], ecx
jmp 0x5e3cd3
add eax, dword [esp + 0x9c]
mov ecx, 4
sub dword [esp + 0x60], ecx
sub dword [esp + 0x74], ecx
add esi, ecx
cmp eax, edi
jl 0x5e3cb3
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x5c], ebx
add dword [esp + 0x54], ecx
sub dword [esp + 0x50], 1
add ebp, ebx
sub eax, edi
mov ebx, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e3af0
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
lea ecx, [edx + esi]
sub ecx, dword [esp + 0x78]
sub eax, ebp
cmp ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
ja 0x5e3d2b
mov ebx, dword [esp + 0x84]
mov edi, eax
sub edi, ecx
sub ebx, ecx
cmp edi, ebx
ja 0x5e3d2b
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0xa0]
lea ecx, [edx + esi]
mov dword [eax + ecx*4], edi
mov ecx, dword [esp + 0x7c]
sub esi, edx
mov edx, dword [esp + 0x94]
mov eax, esi
sub eax, dword [esp + 0x78]
add ebp, edx
cmp eax, dword [esp + 0x34]
ja case.0x5ecb10.5
mov eax, dword [esp + 0x84]
mov edx, ebp
sub edx, ecx
sub eax, ecx
cmp edx, eax
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
pop edi
mov dword [ebp + esi*4], eax
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
test ecx, ecx
je case.0x5ecb10.5
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x24], ecx
sub esi, edi
sub ecx, edi
cmp ecx, esi
mov dword [esp + 0x34], esi
ja 0x5e3e3f
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5e3e3b
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x90]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, esi
ja 0x5e3eee
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5e3eee
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x18]
test esi, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5e3f34
mov eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e3f1c
mov ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ebp
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea esi, [esi + ecx + 2]
mov dword [esp + 0x18], esi
jmp 0x5e3f9c
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e3f6a
lea ecx, [edx*4]
sub esi, ecx
mov dword [esp + 0x18], esi
mov esi, 2
sub esi, ecx
add dword [esp + 0x14], esi
jmp 0x5e3f9c
mov eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e3f7c
mov ebp, 1
sub eax, edi
mov ecx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5ea30d
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov esi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, esi
add ecx, dword [esp + 0x94]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x94]
sub ecx, esi
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5e4050
cmp dword [esp + 0x2c], 0
mov esi, 4
je 0x5e42ad
mov ecx, dword [esp + 0x64]
cmp ecx, dword [esp + 0x34]
ja 0x5e40f2
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e40f2
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5e4184
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e4184
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e4216
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e4216
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x50]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x34]
ja 0x5e42a8
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e42a8
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov esi, 4
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e4312
add eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e42f6
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], 1
mov ecx, 1
sub dword [esp + 0x4c], ecx
add ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea esi, [esi + ecx + 2]
mov dword [esp + 0x18], esi
jmp 0x5e439e
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
sub edx, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
jl 0x5e4352
mov ecx, dword [esp + 0x74]
sub ecx, esi
sub dword [esp + 0x18], ecx
mov esi, 2
sub esi, ecx
add dword [esp + 0x14], esi
mov dword [esp + 0x74], ecx
jmp 0x5e439e
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], esi
cmp eax, edi
jl 0x5e437e
add dword [esp + 0x58], ecx
sub dword [esp + 0x4c], 1
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
sub eax, edi
mov ecx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e4050
jmp 0x5ea30d
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x80]
sub edi, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
mov dword [esp + 0x34], edi
cmp ecx, edi
ja 0x5e449b
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5e449b
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and ecx, 0xfefeff
and edi, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
or ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
and ecx, 0x10100
or edi, ecx
or edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], edi
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5e4573
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5e4573
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and ecx, 0xfefeff
and edi, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
or ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
and ecx, 0x10100
or edi, ecx
or edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], edi
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e45bc
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x5e45a0
mov ebp, 1
sub eax, ecx
mov dword [esp + 0x2c], ebp
mov edi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5e4626
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e45f0
lea ecx, [edx*4]
sub dword [esp + 0x18], ecx
mov edi, 2
sub edi, ecx
add dword [esp + 0x14], edi
jmp 0x5e4626
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x5e4606
mov ebp, 1
sub eax, ecx
mov edi, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5e4a75
mov edi, dword [esp + 0x90]
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
lea ecx, [edx + edi]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, edi
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x50], ecx
mov ecx, ebp
sub ecx, dword [esp + 0x7c]
add ecx, edi
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, edi
sub ecx, dword [esp + 0x7c]
sub ecx, ebp
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, edi
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5e46d0
cmp dword [esp + 0x2c], 0
mov edi, 4
je 0x5e4972
mov ecx, dword [esp + 0x64]
cmp ecx, dword [esp + 0x34]
ja 0x5e4783
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x54], ecx
ja 0x5e4783
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and edi, 0xfefeff
and ecx, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x10]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5e4826
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x54], ecx
ja 0x5e4826
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x5c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and edi, 0xfefeff
and ecx, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x10]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e48c9
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x48], ecx
ja 0x5e48c9
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x4c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and edi, 0xfefeff
and ecx, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x10]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x34]
ja 0x5e496d
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x48], ecx
ja 0x5e496d
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x4c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x2c], edi
mov edi, dword [edi]
mov ecx, edi
or edi, dword [esp + 0x10]
and ecx, 0xfefeff
and ebx, 0xfefeff
add ecx, ebx
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
mov bl, byte [esp + 0xa2]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov edi, 4
cmp dword [esp + 0x18], 0
mov ecx, 1
mov dword [esp + 0x2c], 0
jge 0x5e49de
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
jl 0x5e49c2
add dword [esp + 0x54], ecx
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x4c], ecx
mov ecx, 1
sub dword [esp + 0x48], ecx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5e4a6d
add dword [esp + 0x68], edi
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
sub dword [esp + 0x5c], edi
sub edx, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
jl 0x5e4a19
mov ecx, dword [esp + 0x74]
sub ecx, edi
sub dword [esp + 0x18], ecx
mov edi, 2
sub edi, ecx
add dword [esp + 0x14], edi
mov dword [esp + 0x74], ecx
jmp 0x5e4a6d
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], edi
cmp eax, dword [esp + 0x30]
jl 0x5e4a4d
add dword [esp + 0x54], ecx
sub dword [esp + 0x48], 1
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x4c], ecx
sub eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e46d0
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
lea edi, [edx + eax]
sub edi, dword [esp + 0x78]
sub ecx, ebp
cmp edi, dword [esp + 0x34]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x7c]
ja 0x5eabe8
mov eax, dword [esp + 0x50]
jmp 0x5eab47
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x80]
sub ecx, edi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x24]
sub ecx, edi
cmp ecx, dword [esp + 0x34]
ja 0x5e4b81
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5e4b81
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5e4c3d
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5e4c3d
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e4c86
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x5e4c6a
mov ebp, 1
sub eax, ecx
mov dword [esp + 0x2c], ebp
mov edi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5e4cf0
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e4cba
lea ecx, [edx*4]
sub dword [esp + 0x18], ecx
mov edi, 2
sub edi, ecx
add dword [esp + 0x14], edi
jmp 0x5e4cf0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x5e4cd0
mov ebp, 1
sub eax, ecx
mov edi, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5e50ea
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x94]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, dword [esp + 0x7c]
add ecx, edi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, edi
sub ecx, dword [esp + 0x7c]
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, edi
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
nop
cmp dword [esp + 0x2c], 0
mov edi, 4
je 0x5e4fe1
mov ecx, dword [esp + 0x64]
cmp ecx, dword [esp + 0x34]
ja 0x5e4e2f
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e4e2f
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x54]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5e4ebe
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e4ebe
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e4f4d
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e4f4d
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x50]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x34]
ja 0x5e4fdc
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e4fdc
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x5c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov edi, 4
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e504a
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
jl 0x5e502e
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], 1
mov ecx, 1
sub dword [esp + 0x4c], ecx
add ebp, 1
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5e50e2
add dword [esp + 0x68], edi
sub dword [esp + 0x5c], edi
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
sub edx, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
jl 0x5e508e
mov ecx, dword [esp + 0x74]
sub ecx, edi
sub dword [esp + 0x18], ecx
mov edi, 2
sub edi, ecx
add dword [esp + 0x14], edi
mov dword [esp + 0x74], ecx
jmp 0x5e50e2
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], edi
cmp eax, dword [esp + 0x30]
jl 0x5e50c2
add dword [esp + 0x58], ecx
sub dword [esp + 0x4c], 1
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
sub eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e4d90
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
lea edi, [edx + eax]
sub edi, dword [esp + 0x78]
sub ecx, ebp
cmp edi, dword [esp + 0x34]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x7c]
ja 0x5eb385
mov eax, dword [esp + 0x50]
jmp 0x5eb2f6
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
sub esi, edi
mov dword [esp + 0x24], ecx
sub ecx, edi
mov dword [esp + 0x34], esi
cmp ecx, esi
mov esi, dword [esp + 0x94]
ja 0x5e51c7
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
sub esi, ecx
sub edi, ecx
cmp esi, edi
mov esi, dword [esp + 0x94]
ja 0x5e51c7
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
imul ecx, esi
add ecx, dword [esp + 0x20]
movzx ebx, byte [esp + 0xa0]
lea edi, [ecx + edi*4]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x90]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5e5260
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
sub esi, ecx
sub edi, ecx
cmp esi, edi
mov esi, dword [esp + 0x94]
ja 0x5e5260
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
imul ecx, esi
add ecx, dword [esp + 0x20]
movzx ebx, byte [esp + 0xa0]
lea edi, [ecx + edi*4]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e52a9
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x5e528d
mov ebp, 1
sub eax, ecx
mov dword [esp + 0x2c], ebp
mov edi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5e5317
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e52e1
lea ecx, [edx*4]
sub dword [esp + 0x18], ecx
mov edi, 2
sub edi, ecx
add dword [esp + 0x14], edi
jmp 0x5e5317
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x5e52f7
mov ebp, 1
sub eax, ecx
mov edi, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5eb99a
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
lea ecx, [esi + ebp]
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, edi
add ecx, esi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, esi
sub ecx, edi
sub ecx, ebp
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub esi, ebp
imul esi, dword [esp + 0x1c]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x68], ecx
jmp 0x5e53b0
cmp dword [esp + 0x2c], 0
mov edi, 4
je 0x5e5596
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e5438
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e5438
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x54]
movzx ebx, byte [esp + 0xa0]
add edi, ecx
add edi, dword [esp + 0x20]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5e54b0
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e54b0
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
movzx ebx, byte [esp + 0xa0]
add edi, ecx
add edi, dword [esp + 0x20]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e5521
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5e5521
mov ecx, dword [esp + 0x68]
lea edi, [ecx + esi]
add edi, dword [esp + 0x20]
movzx esi, byte [esp + 0xa0]
movzx ecx, byte [edi]
imul ecx, esi
movzx esi, byte [esp + 0xa1]
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, esi
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
movzx esi, bl
imul ecx, esi
mov esi, dword [esp + 0x70]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5e5591
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5e5591
mov ecx, dword [esp + 0x5c]
movzx edi, byte [esp + 0xa0]
add esi, ecx
add esi, dword [esp + 0x20]
mov bl, byte [esp + 0xa2]
movzx ecx, byte [esi]
imul ecx, edi
movzx edi, byte [esp + 0xa1]
sar ecx, 8
mov byte [esi], cl
movzx ecx, byte [esi + 1]
imul ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx ecx, byte [esi + 2]
movzx edi, bl
imul ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x70]
mov edi, 4
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e55ff
add eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x5e55e3
add esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
add dword [esp + 0x58], 1
add dword [esp + 0x54], edi
sub dword [esp + 0x50], 1
add ebp, 1
mov dword [esp + 0x70], esi
sub eax, ecx
mov dword [esp + 0x2c], 1
mov edi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
jmp 0x5e5695
add dword [esp + 0x68], edi
sub dword [esp + 0x5c], edi
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
sub edx, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
jl 0x5e563f
mov ecx, dword [esp + 0x74]
sub ecx, edi
sub dword [esp + 0x18], ecx
mov edi, 2
sub edi, ecx
add dword [esp + 0x14], edi
mov dword [esp + 0x74], ecx
jmp 0x5e5695
add eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
sub dword [esp + 0x74], edi
cmp eax, ecx
jl 0x5e5675
add esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
add dword [esp + 0x58], 1
add dword [esp + 0x54], edi
sub dword [esp + 0x50], 1
add ebp, 1
mov dword [esp + 0x70], esi
sub eax, ecx
mov edi, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea edi, [edi + ecx + 2]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e53b0
jmp 0x5eb993
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x24], ecx
sub esi, edi
sub ecx, edi
cmp ecx, esi
mov dword [esp + 0x34], esi
ja 0x5e577d
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5e5779
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, esi
ja 0x5e5847
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5e5847
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x18]
test esi, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5e588d
mov eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e5875
mov ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ebp
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea esi, [esi + ecx + 2]
mov dword [esp + 0x18], esi
jmp 0x5e58f5
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e58c3
lea ecx, [edx*4]
sub esi, ecx
mov dword [esp + 0x18], esi
mov esi, 2
sub esi, ecx
add dword [esp + 0x14], esi
jmp 0x5e58f5
mov eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e58d5
mov ebp, 1
sub eax, edi
mov ecx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5e5d62
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov esi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, esi
add ecx, dword [esp + 0x94]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x94]
sub ecx, esi
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
lea esp, [esp]
cmp dword [esp + 0x2c], 0
mov esi, 4
je 0x5e5c69
mov ecx, dword [esp + 0x64]
cmp ecx, dword [esp + 0x34]
ja 0x5e5a5d
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e5a5d
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5e5b0a
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e5b0a
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e5bb7
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e5bb7
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x50]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x34]
ja 0x5e5c64
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e5c64
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov esi, 4
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e5cce
add eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e5cb2
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], 1
mov ecx, 1
sub dword [esp + 0x4c], ecx
add ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea esi, [esi + ecx + 2]
mov dword [esp + 0x18], esi
jmp 0x5e5d5a
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
sub edx, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
jl 0x5e5d0e
mov ecx, dword [esp + 0x74]
sub ecx, esi
sub dword [esp + 0x18], ecx
mov esi, 2
sub esi, ecx
add dword [esp + 0x14], esi
mov dword [esp + 0x74], ecx
jmp 0x5e5d5a
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], esi
cmp eax, edi
jl 0x5e5d3a
add dword [esp + 0x58], ecx
sub dword [esp + 0x4c], 1
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
sub eax, edi
mov ecx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e59a0
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
add eax, edx
mov ecx, eax
sub ecx, dword [esp + 0x78]
sub esi, ebp
cmp ecx, dword [esp + 0x34]
ja 0x5e5e1e
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
mov ecx, esi
sub ecx, dword [esp + 0x7c]
cmp ecx, edi
ja 0x5e5e1e
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
movzx edi, byte [esi + eax*4]
lea esi, [esi + eax*4]
movzx eax, byte [esp + 0xa0]
imul eax, edi
sar eax, 8
movzx ecx, al
sub ecx, edi
imul ecx, dword [0x8e80c0]
movzx eax, byte [esp + 0xa1]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
imul eax, edi
sar eax, 8
movzx ecx, al
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx eax, bl
imul eax, edi
sar eax, 8
movzx ecx, al
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
mov ecx, eax
sub ecx, dword [esp + 0x78]
add ebp, edx
cmp ecx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x84]
mov esi, ebp
sub esi, edx
sub ecx, edx
cmp esi, ecx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
movzx esi, byte [ebp + eax*4]
movzx edx, byte [esp + 0xa0]
imul edx, esi
lea eax, [ebp + eax*4]
sar edx, 8
movzx ecx, dl
sub ecx, esi
imul ecx, dword [0x8e80c0]
movzx edx, byte [esp + 0xa1]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax], cl
movzx esi, byte [eax + 1]
imul edx, esi
sar edx, 8
movzx ecx, dl
sub ecx, esi
imul ecx, dword [0x8e80c0]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
movzx edx, bl
imul edx, ecx
sar edx, 8
movzx edx, dl
sub edx, ecx
imul edx, dword [0x8e80c0]
pop edi
shl ecx, 8
pop esi
add edx, ecx
sar edx, 8
pop ebp
mov byte [eax + 2], dl
pop ebx
add esp, 0x78
ret
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
sub esi, edi
mov dword [esp + 0x24], ecx
sub ecx, edi
mov dword [esp + 0x34], esi
cmp ecx, esi
mov esi, dword [esp + 0x7c]
ja 0x5e5fb0
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub ecx, esi
sub edi, esi
cmp edi, ecx
ja 0x5e5fb0
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
mov cl, byte [esp + 0xa0]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5e6069
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub ecx, esi
sub edi, esi
cmp edi, ecx
ja 0x5e6069
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
mov cl, byte [esp + 0xa0]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x18]
test esi, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5e60af
mov eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e6097
mov ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ebp
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea esi, [esi + ecx + 2]
mov dword [esp + 0x18], esi
jmp 0x5e6113
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e60e5
lea ecx, [edx*4]
sub esi, ecx
mov dword [esp + 0x18], esi
mov esi, 2
sub esi, ecx
add dword [esp + 0x14], esi
jmp 0x5e6113
mov eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e60f7
mov ebp, 1
sub eax, edi
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea esi, [esi + ecx + 2]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
lea ecx, [esi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5ec919
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov esi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, esi
add ecx, dword [esp + 0x94]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x94]
sub ecx, esi
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
lea ebx, [ebx]
cmp dword [esp + 0x2c], 0
mov esi, 4
je 0x5e644d
mov ecx, dword [esp + 0x64]
cmp ecx, dword [esp + 0x34]
ja 0x5e626e
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e626e
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5e630c
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5e630c
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e63aa
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e63aa
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x50]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x34]
ja 0x5e6448
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5e6448
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
mov edi, dword [esp + 0x30]
sar ecx, 8
mov byte [esi + 2], cl
mov esi, 4
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e64b2
add eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e6496
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], 1
mov ecx, 1
sub dword [esp + 0x4c], ecx
add ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea esi, [esi + ecx + 2]
mov dword [esp + 0x18], esi
jmp 0x5e653e
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
sub edx, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
jl 0x5e64f2
mov ecx, dword [esp + 0x74]
sub ecx, esi
sub dword [esp + 0x18], ecx
mov esi, 2
sub esi, ecx
add dword [esp + 0x14], esi
mov dword [esp + 0x74], ecx
jmp 0x5e653e
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], esi
cmp eax, edi
jl 0x5e651e
add dword [esp + 0x58], ecx
sub dword [esp + 0x4c], 1
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
sub eax, edi
mov ecx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + esi + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e61c0
jmp 0x5ec919
mov ebx, dword [0x8e80e4]
mov ecx, ebx
and ecx, 0xffffff
cmp ecx, 0xffffff
je 0x5e65c0
mov eax, dword [esp + 0xa0]
mov ecx, eax
sar ecx, 5
and ecx, 0x3f
movzx ebx, bh
imul ecx, ebx
movzx ebx, byte [0x8e80e4]
and eax, 0x1f
imul eax, ebx
movzx ebx, byte [0x8e80e6]
sar eax, 5
and ecx, 0xffffff07
or ecx, eax
mov eax, dword [esp + 0xa0]
sar eax, 8
and eax, 0xfffffff8
imul eax, ebx
and eax, 0xfffff800
sar ecx, 3
or ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xa0], ecx
jmp 0x5e65c7
mov ecx, dword [esp + 0xa0]
mov ebx, dword [0x8e80bc]
cmp ebx, 0xb
ja case.0x5ecb10.5
jmp dword [ebx*4 + 0x5f02b4]
mov esi, dword [0x8e80c0]
cmp esi, 0xff
jne 0x5e6a75
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x80]
sub edi, ebx
mov ecx, esi
sub ecx, dword [esp + 0x98]
mov dword [esp + 0x34], edi
mov edi, ecx
sub edi, ebx
cmp edi, dword [esp + 0x34]
ja 0x5e6654
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, dword [esp + 0x7c]
sub ebx, dword [esp + 0x7c]
cmp ebx, edi
ja 0x5e6654
mov edi, dword [esp + 0x1c]
imul edi, dword [esp + 0x94]
add edi, dword [esp + 0x20]
mov bx, word [esp + 0xa0]
mov word [edi + ecx*2], bx
mov ecx, dword [esp + 0x98]
add ecx, esi
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5e66ae
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, ecx
sub ebx, ecx
cmp ebx, edi
ja 0x5e66ae
mov edi, dword [esp + 0x1c]
imul edi, dword [esp + 0x94]
add edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov bx, word [esp + 0xa0]
add ecx, esi
mov word [edi + ecx*2], bx
mov ebx, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x2c], 0
jge 0x5e66f4
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
jl 0x5e66dc
mov ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ebp
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e6760
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e672e
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub ebx, ecx
add dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
jmp 0x5e6760
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
jl 0x5e6744
mov ebp, 1
sub eax, edi
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5e69dc
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
lea ecx, [edx + esi]
add ecx, ecx
mov dword [esp + 0x60], ecx
mov ebx, dword [esp + 0x94]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, esi
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], ecx
mov ecx, ebp
sub ecx, dword [esp + 0x7c]
add ecx, ebx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x7c]
sub ecx, ebp
mov dword [esp + 0x50], ecx
mov ecx, esi
sub ecx, dword [esp + 0x78]
sub esi, edx
sub ecx, edx
mov dword [esp + 0x68], ecx
mov ecx, ebx
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
add esi, esi
cmp dword [esp + 0x2c], 0
mov ecx, 1
je 0x5e68e1
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x68], ecx
ja 0x5e6829
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x5c], ecx
ja 0x5e6829
mov ecx, dword [esp + 0x58]
mov di, word [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov word [ecx + ebx], di
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e6866
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x5c], ecx
ja 0x5e6866
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov di, word [esp + 0xa0]
mov word [ecx + ebx], di
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x68], ecx
ja 0x5e689f
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5e689f
mov ecx, dword [esp + 0x54]
mov di, word [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov word [ecx + ebx], di
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5e68dc
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5e68dc
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov di, word [esp + 0xa0]
mov word [ecx + ebx], di
mov edi, dword [esp + 0x30]
mov ecx, 1
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e6944
add eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e6928
add dword [esp + 0x5c], ecx
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x54], ecx
mov ecx, 1
sub dword [esp + 0x50], ecx
sub eax, edi
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x18]
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e69cd
add dword [esp + 0x68], ecx
sub dword [esp + 0x64], ecx
sub dword [esp + 0x60], 2
sub edx, ecx
add esi, 2
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
jl 0x5e6980
mov ecx, dword [esp + 0x74]
sub ecx, 4
sub dword [esp + 0x18], ecx
mov ebx, 2
sub ebx, ecx
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], ecx
jmp 0x5e69cd
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, edi
jl 0x5e69ad
add dword [esp + 0x5c], ecx
sub dword [esp + 0x50], 1
add ebp, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x54], ecx
sub eax, edi
mov ebx, dword [esp + 0x18]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea ebx, [ebx + ecx + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e67e0
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
lea ecx, [edx + esi]
sub ecx, dword [esp + 0x78]
sub eax, ebp
cmp ecx, dword [esp + 0x34]
ja 0x5e6a23
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x84]
mov edi, eax
sub edi, ecx
sub ebx, ecx
cmp edi, ebx
ja 0x5e6a23
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov di, word [esp + 0xa0]
lea ecx, [edx + esi]
mov word [eax + ecx*2], di
sub esi, edx
mov edx, dword [esp + 0x94]
mov eax, esi
sub eax, dword [esp + 0x78]
add ebp, edx
cmp eax, dword [esp + 0x34]
ja case.0x5ecb10.5
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
mov edx, ebp
sub edx, ecx
sub eax, ecx
cmp edx, eax
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov ax, word [esp + 0xa0]
pop edi
mov word [ebp + esi*2], ax
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
test esi, esi
je case.0x5ecb10.5
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x80]
sub esi, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
cmp esi, dword [esp + 0x34]
ja 0x5e6b60
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5e6b5c
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr esi, 5
shr eax, 0xb
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
add esi, ebx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5e6c32
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5e6c2e
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr esi, 5
shr eax, 0xb
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x2c], 0
jge 0x5e6c85
cmp esi, ebx
mov eax, esi
mov dword [esp + 0x28], eax
jl 0x5e6c69
mov ebp, 1
sub eax, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x18]
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e6cee
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e6cb9
lea esi, [edx*4]
sub dword [esp + 0x18], esi
mov ebx, 2
sub ebx, esi
add dword [esp + 0x14], ebx
jmp 0x5e6cee
cmp esi, ebx
mov eax, esi
mov dword [esp + 0x28], esi
jl 0x5e6cce
sub eax, ebx
mov ebp, 1
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jle 0x5e7163
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
cmp dword [esp + 0x2c], 0
je 0x5e704c
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5e6e48
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5e6e48
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e6ef4
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5e6ef4
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
add eax, esi
add eax, dword [esp + 0x5c]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5e6fa0
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5e6fa0
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e704c
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5e704c
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
add eax, esi
add eax, dword [esp + 0x5c]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, 1
mov dword [esp + 0x2c], 0
jge 0x5e70bd
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5e70a1
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
add dword [esp + 0x58], ebx
mov esi, ebx
sub dword [esp + 0x4c], esi
add ebp, ebx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e715b
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ebx
jl 0x5e70fe
mov esi, dword [esp + 0x74]
sub esi, 4
sub dword [esp + 0x18], esi
mov ebx, 2
sub ebx, esi
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], esi
jmp 0x5e715b
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5e713b
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x58], ebx
add dword [esp + 0x50], esi
sub dword [esp + 0x4c], 1
add ebp, ebx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jg 0x5e6d91
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
lea ebx, [edx + eax]
sub ebx, dword [esp + 0x78]
sub esi, ebp
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x7c]
ja 0x5e723e
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x84]
sub eax, esi
sub ebx, esi
cmp eax, ebx
ja 0x5e7237
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
add esi, edx
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr esi, 5
shr eax, 0xb
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov ebx, ebp
sub ebx, esi
sub edx, esi
cmp ebx, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
lea eax, [ebp + eax*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
jmp 0x5ed7d6
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x80]
sub edi, ebx
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x24]
sub edi, ebx
cmp edi, dword [esp + 0x34]
ja 0x5e736d
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5e7369
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
shl di, 5
mov ebx, ecx
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x38], eax
movzx edi, di
movzx eax, ax
mov ebx, edi
or edi, dword [esp + 0x38]
and eax, 0xf7def7df
and ebx, 0xf7def7df
add eax, ebx
mov dword [esp + 0x44], eax
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
and edi, 0x820
sub eax, ebx
or eax, edi
or eax, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
add edi, ebx
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x78]
cmp edi, dword [esp + 0x34]
ja 0x5e7435
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5e7431
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
shl di, 5
mov ebx, ecx
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x38], eax
movzx edi, di
movzx eax, ax
mov ebx, edi
or edi, dword [esp + 0x38]
and eax, 0xf7def7df
and ebx, 0xf7def7df
add eax, ebx
mov dword [esp + 0x44], eax
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
and edi, 0x820
sub eax, ebx
or eax, edi
or eax, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x2c], 0
jge 0x5e7480
cmp edi, ebx
mov eax, edi
jl 0x5e7464
mov ebp, 1
sub eax, ebx
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x18]
lea edi, [ebp*4]
add dword [esp + 0x14], edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e74e1
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e74b4
lea edi, [edx*4]
sub dword [esp + 0x18], edi
mov ebx, 2
sub ebx, edi
add dword [esp + 0x14], ebx
jmp 0x5e74e1
cmp edi, ebx
mov eax, edi
jl 0x5e74c1
mov ebp, 1
sub eax, ebx
mov ebx, dword [esp + 0x18]
mov edi, ebp
sub edi, edx
add edi, edi
add edi, edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
jle 0x5e795a
lea edi, [edx*4]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x90]
add edi, edx
add edi, edi
mov dword [esp + 0x5c], edi
mov ebx, dword [esp + 0x94]
mov edi, edx
sub edi, dword [esp + 0x78]
add edi, dword [esp + 0x90]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x94]
add edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov edi, ebp
sub edi, dword [esp + 0x7c]
add edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x3c], edi
mov edi, ebx
sub edi, dword [esp + 0x7c]
sub edi, ebp
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x78]
sub edi, edx
mov dword [esp + 0x64], edi
mov edi, ebx
sub edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x90]
sub edi, edx
add edi, edi
mov dword [esp + 0x68], edi
lea esp, [esp]
cmp dword [esp + 0x2c], 0
je 0x5e7853
mov edi, dword [esp + 0x64]
cmp edi, dword [esp + 0x34]
ja 0x5e763d
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x54], edi
ja 0x5e763d
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
mov dword [esp + 0x38], edi
movzx edi, di
mov dword [esp + 0x58], ebx
and edi, 0xf7def7df
and ebx, 0xf7def7df
add edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
and edi, 0x820
or ebx, edi
or ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], bx
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5e76ef
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x54], edi
ja 0x5e76ef
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x50]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
mov dword [esp + 0x38], edi
movzx edi, di
mov dword [esp + 0x58], ebx
and edi, 0xf7def7df
and ebx, 0xf7def7df
add edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
and edi, 0x820
or ebx, edi
or ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], bx
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5e77a1
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x48], edi
ja 0x5e77a1
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
mov dword [esp + 0x38], edi
movzx edi, di
mov dword [esp + 0x58], ebx
and edi, 0xf7def7df
and ebx, 0xf7def7df
add edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
and edi, 0x820
or ebx, edi
or ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], bx
mov edi, dword [esp + 0x60]
cmp edi, dword [esp + 0x34]
ja 0x5e7853
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x48], edi
ja 0x5e7853
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x4c]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
mov dword [esp + 0x38], edi
movzx edi, di
mov dword [esp + 0x58], ebx
and edi, 0xf7def7df
and ebx, 0xf7def7df
add edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
and edi, 0x820
or ebx, edi
or ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], bx
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e78bc
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
jl 0x5e78a0
mov edi, dword [esp + 0x1c]
add dword [esp + 0x50], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x4c], edi
add dword [esp + 0x54], 1
mov edi, 1
sub dword [esp + 0x48], edi
add ebp, 1
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 0x18]
lea edi, [ebp*4]
add dword [esp + 0x14], edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e7952
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ebx, 2
add dword [esp + 0x68], ebx
sub dword [esp + 0x5c], ebx
sub edx, edi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], edi
jl 0x5e78fd
mov edi, dword [esp + 0x74]
sub edi, 4
sub dword [esp + 0x18], edi
sub ebx, edi
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], edi
jmp 0x5e7952
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, dword [esp + 0x30]
jl 0x5e7932
add dword [esp + 0x54], edi
sub dword [esp + 0x48], 1
add ebp, edi
mov edi, dword [esp + 0x1c]
add dword [esp + 0x50], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x4c], edi
sub eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
mov edi, ebp
sub edi, edx
add edi, edi
add edi, edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
jg 0x5e7580
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
lea ebx, [edx + eax]
sub ebx, dword [esp + 0x78]
sub edi, ebp
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x7c]
ja 0x5edff5
mov eax, dword [esp + 0x50]
jmp 0x5edf51
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x80]
sub edi, ebx
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x24]
sub edi, ebx
cmp edi, dword [esp + 0x34]
ja 0x5e7a5a
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5e7a56
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx ebx, di
movzx edi, word [eax]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov eax, edi
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
sub eax, ebx
and eax, edi
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
add edi, ebx
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x78]
cmp edi, dword [esp + 0x34]
ja 0x5e7b0a
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5e7b06
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx ebx, di
movzx edi, word [eax]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov eax, edi
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
sub eax, ebx
and eax, edi
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x2c], 0
jge 0x5e7b55
cmp edi, ebx
mov eax, edi
jl 0x5e7b39
mov ebp, 1
sub eax, ebx
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x18]
lea edi, [ebp*4]
add dword [esp + 0x14], edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e7bb6
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e7b89
lea edi, [edx*4]
sub dword [esp + 0x18], edi
mov ebx, 2
sub ebx, edi
add dword [esp + 0x14], ebx
jmp 0x5e7bb6
cmp edi, ebx
mov eax, edi
jl 0x5e7b96
mov ebp, 1
sub eax, ebx
mov ebx, dword [esp + 0x18]
mov edi, ebp
sub edi, edx
add edi, edi
add edi, edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
jle 0x5e7f9f
lea edi, [edx*4]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x90]
add edi, edx
add edi, edi
mov dword [esp + 0x5c], edi
mov ebx, dword [esp + 0x94]
mov edi, edx
sub edi, dword [esp + 0x78]
add edi, dword [esp + 0x90]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x94]
add edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x54], edi
mov edi, ebp
sub edi, dword [esp + 0x7c]
add edi, ebx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x3c], edi
mov edi, ebx
sub edi, dword [esp + 0x7c]
sub edi, ebp
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x78]
sub edi, edx
mov dword [esp + 0x64], edi
mov edi, ebx
sub edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x90]
sub edi, edx
add edi, edi
mov dword [esp + 0x68], edi
cmp dword [esp + 0x2c], 0
je 0x5e7e98
mov edi, dword [esp + 0x64]
cmp edi, dword [esp + 0x34]
ja 0x5e7ceb
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5e7ceb
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5e7d7a
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5e7d7a
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5e7e09
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], edi
ja 0x5e7e09
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
mov edi, dword [esp + 0x60]
cmp edi, dword [esp + 0x34]
ja 0x5e7e98
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], edi
ja 0x5e7e98
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x50]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
cmp dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
jge 0x5e7f01
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
jl 0x5e7ee5
mov edi, dword [esp + 0x1c]
add dword [esp + 0x54], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x50], edi
add dword [esp + 0x58], 1
mov edi, 1
sub dword [esp + 0x4c], edi
add ebp, 1
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 0x18]
lea edi, [ebp*4]
add dword [esp + 0x14], edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e7f97
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ebx, 2
add dword [esp + 0x68], ebx
sub dword [esp + 0x5c], ebx
sub edx, edi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], edi
jl 0x5e7f42
mov edi, dword [esp + 0x74]
sub edi, 4
sub dword [esp + 0x18], edi
sub ebx, edi
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], edi
jmp 0x5e7f97
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, dword [esp + 0x30]
jl 0x5e7f77
add dword [esp + 0x58], edi
sub dword [esp + 0x4c], 1
add ebp, edi
mov edi, dword [esp + 0x1c]
add dword [esp + 0x54], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x50], edi
sub eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
mov edi, ebp
sub edi, edx
add edi, edi
add edi, edi
lea ebx, [ebx + edi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
jg 0x5e7c51
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
lea ebx, [edx + eax]
sub ebx, dword [esp + 0x78]
sub edi, ebp
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x7c]
ja 0x5ee787
mov eax, dword [esp + 0x50]
jmp 0x5ee6fb
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x24], esi
sub edi, ebx
sub esi, ebx
cmp esi, edi
mov dword [esp + 0x34], edi
ja 0x5e8095
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, esi
sub ebx, esi
cmp ebx, edi
ja 0x5e8091
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x94]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea esi, [esi + edi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
mov dword [esp + 0x44], esi
and edi, 0xf800
and esi, 0x7e0
mov ebx, ecx
and ebx, 0xf800
imul edi, ebx
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
add esi, ebx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, edi
ja 0x5e8148
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, esi
sub ebx, esi
cmp ebx, edi
ja 0x5e8148
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x94]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea esi, [esi + edi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
mov dword [esp + 0x44], esi
and edi, 0xf800
and esi, 0x7e0
mov ebx, ecx
and ebx, 0xf800
imul edi, ebx
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov ebx, dword [esp + 0x18]
test ebx, ebx
mov dword [esp + 0x2c], 0
jge 0x5e818e
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
jl 0x5e8176
mov ebp, 1
sub eax, edi
mov dword [esp + 0x2c], ebp
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e81fe
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e81cc
lea esi, [edx*4]
mov edi, 2
sub edi, esi
sub ebx, esi
add dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
jmp 0x5e81fe
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x30]
cmp eax, edi
jl 0x5e81e2
mov ebp, 1
sub eax, edi
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jle 0x5e85fb
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
cmp dword [esp + 0x2c], 0
je 0x5e84f8
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5e833f
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5e833f
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x68]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
and edi, 0xf800
and ebx, 0xf800
imul edi, ebx
mov dword [esp + 0x44], esi
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e83d2
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5e83d2
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
and edi, 0xf800
and ebx, 0xf800
imul edi, ebx
mov dword [esp + 0x44], esi
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5e8465
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5e8465
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x68]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
and edi, 0xf800
and ebx, 0xf800
imul edi, ebx
mov dword [esp + 0x44], esi
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e84f8
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5e84f8
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x50]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
and edi, 0xf800
and ebx, 0xf800
imul edi, ebx
mov dword [esp + 0x44], esi
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x18], 0
mov ebx, 1
mov dword [esp + 0x2c], 0
jge 0x5e855d
add eax, dword [esp + 0x9c]
cmp eax, edi
jl 0x5e8541
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
add dword [esp + 0x58], ebx
mov esi, ebx
sub dword [esp + 0x4c], esi
add ebp, ebx
sub eax, edi
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x18]
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e85f3
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ebx
jl 0x5e85a2
mov esi, dword [esp + 0x74]
sub esi, 4
sub dword [esp + 0x18], esi
mov ebx, 2
sub ebx, esi
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], esi
jmp 0x5e85f3
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, edi
jl 0x5e85d3
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x58], ebx
add dword [esp + 0x50], esi
sub dword [esp + 0x4c], 1
add ebp, ebx
sub eax, edi
mov ebx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jg 0x5e82a1
mov eax, dword [esp + 0x90]
lea esi, [edx + eax]
mov eax, dword [esp + 0x94]
mov edi, esi
sub edi, dword [esp + 0x78]
sub eax, ebp
cmp edi, dword [esp + 0x34]
ja 0x5e869b
mov ebx, dword [esp + 0x84]
sub ebx, dword [esp + 0x7c]
mov edi, eax
sub edi, dword [esp + 0x7c]
cmp edi, ebx
ja 0x5e869b
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov edi, ecx
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
and edi, 0xf800
mov esi, eax
and esi, 0xf800
imul esi, edi
mov edi, eax
and edi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul edi, ebx
shr edi, 0xb
shr esi, 0x10
and edi, 0x7e0
and esi, 0xf800
or esi, edi
and eax, 0x1f
mov edi, ecx
and edi, 0x1f
imul eax, edi
shr eax, 5
or esi, eax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x84]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x7c]
mov edi, ebp
sub edi, edx
sub esi, edx
cmp edi, esi
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov edi, ecx
lea edx, [ebp + eax*2]
movzx eax, word [edx]
and edi, 0xf800
mov esi, eax
and esi, 0xf800
imul esi, edi
mov edi, eax
and edi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul edi, ebx
and eax, 0x1f
and ecx, 0x1f
imul eax, ecx
shr esi, 0x10
shr edi, 0xb
and esi, 0xf800
and edi, 0x7e0
or esi, edi
shr eax, 5
or esi, eax
pop edi
mov word [edx], si
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x80]
sub esi, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
cmp esi, dword [esp + 0x34]
ja 0x5e8837
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5e8833
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
shr esi, 5
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
add esi, ebx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5e8924
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5e8920
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
shr esi, 5
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x2c], 0
jge 0x5e8977
cmp esi, ebx
mov eax, esi
mov dword [esp + 0x28], eax
jl 0x5e895b
mov ebp, 1
sub eax, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x18]
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e89e4
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e89af
lea esi, [edx*4]
sub dword [esp + 0x18], esi
mov ebx, 2
sub ebx, esi
add dword [esp + 0x14], ebx
jmp 0x5e89e4
cmp esi, ebx
mov eax, esi
mov dword [esp + 0x28], esi
jl 0x5e89c4
sub eax, ebx
mov ebp, 1
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jle 0x5e8ed2
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
jmp 0x5e8a90
cmp dword [esp + 0x2c], 0
je 0x5e8db7
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5e8b62
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5e8b62
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e8c29
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5e8c29
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5e8cf0
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5e8cf0
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e8db7
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5e8db7
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, 1
mov dword [esp + 0x2c], 0
jge 0x5e8e28
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5e8e0c
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x4c], esi
add dword [esp + 0x58], ebx
mov esi, ebx
sub dword [esp + 0x48], esi
add ebp, ebx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e8eca
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ebx
jl 0x5e8e6d
mov esi, dword [esp + 0x74]
sub esi, 4
sub dword [esp + 0x18], esi
mov ebx, 2
sub ebx, esi
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], esi
jmp 0x5e8eca
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5e8eaa
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x58], ebx
add dword [esp + 0x4c], esi
sub dword [esp + 0x48], 1
add ebp, ebx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jg 0x5e8a90
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
lea ebx, [edx + eax]
sub ebx, dword [esp + 0x78]
sub esi, ebp
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x7c]
ja 0x5ef7e9
mov eax, dword [esp + 0x50]
jmp 0x5ef722
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x80]
sub esi, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
cmp esi, dword [esp + 0x34]
ja 0x5e8ffe
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5e8ffa
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea esi, [eax + esi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov dword [esp + 0x38], esi
movzx esi, si
mov dword [esp + 0x44], esi
mov eax, ecx
not eax
movzx eax, ax
mov ebx, eax
shr esi, 5
shr ebx, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, dword [esp + 0x38]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x38]
shr bx, 0xb
add bx, word [edi + eax*4]
mov eax, dword [esp + 0x44]
shl si, 5
shl bx, 0xb
or si, bx
mov word [esp + 0x10], si
mov esi, dword [esp + 0x58]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
add esi, ebx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5e90e7
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5e90e3
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea esi, [eax + esi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov dword [esp + 0x38], esi
movzx esi, si
mov dword [esp + 0x44], esi
mov eax, ecx
not eax
movzx eax, ax
mov ebx, eax
shr esi, 5
shr ebx, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, dword [esp + 0x38]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x38]
shr bx, 0xb
add bx, word [edi + eax*4]
mov eax, dword [esp + 0x44]
shl si, 5
shl bx, 0xb
or si, bx
mov word [esp + 0x10], si
mov esi, dword [esp + 0x58]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x2c], 0
jge 0x5e913a
cmp esi, ebx
mov eax, esi
mov dword [esp + 0x28], eax
jl 0x5e911e
mov ebp, 1
sub eax, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x18]
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e91a7
mov edx, dword [esp + 0x98]
add edx, 0xffffffff
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], 1
jl 0x5e9172
lea esi, [edx*4]
sub dword [esp + 0x18], esi
mov ebx, 2
sub ebx, esi
add dword [esp + 0x14], ebx
jmp 0x5e91a7
cmp esi, ebx
mov eax, esi
mov dword [esp + 0x28], esi
jl 0x5e9187
sub eax, ebx
mov ebp, 1
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jle 0x5e9682
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
lea ebx, [ebx]
cmp dword [esp + 0x2c], 0
je 0x5e9567
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5e931e
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x54], esi
ja 0x5e931e
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e93e1
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x54], esi
ja 0x5e93e1
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5e94a4
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5e94a4
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5e9567
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5e9567
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
mov ebx, 1
mov dword [esp + 0x2c], 0
jge 0x5e95d8
add eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5e95bc
mov esi, dword [esp + 0x1c]
add dword [esp + 0x50], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x4c], esi
add dword [esp + 0x54], ebx
mov esi, ebx
sub dword [esp + 0x48], esi
add ebp, ebx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
jmp 0x5e967a
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x2c], ebx
jl 0x5e961d
mov esi, dword [esp + 0x74]
sub esi, 4
sub dword [esp + 0x18], esi
mov ebx, 2
sub ebx, esi
add dword [esp + 0x14], ebx
mov dword [esp + 0x74], esi
jmp 0x5e967a
add eax, dword [esp + 0x9c]
sub dword [esp + 0x74], 4
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
jl 0x5e965a
mov esi, dword [esp + 0x1c]
add dword [esp + 0x50], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x54], ebx
add dword [esp + 0x4c], esi
sub dword [esp + 0x48], 1
add ebp, ebx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov ebx, dword [esp + 0x18]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea ebx, [ebx + esi + 2]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jg 0x5e9250
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
lea ebx, [edx + eax]
sub ebx, dword [esp + 0x78]
sub esi, ebp
cmp ebx, dword [esp + 0x34]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x7c]
ja 0x5e9774
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x84]
sub eax, esi
sub ebx, esi
cmp eax, ebx
ja 0x5e976d
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
add esi, edx
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
and eax, 0x3f
mov esi, ecx
not esi
movzx esi, si
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], esi
shr ebx, 0xb
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl ax, 5
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
mov esi, dword [esp + 0x7c]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov ebx, ebp
sub ebx, esi
sub edx, esi
cmp ebx, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
lea eax, [ebp + eax*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
jmp 0x5f0159
mov eax, dword [esp + 0x9c]
imul eax, eax
cdq
idiv ebx
mov edx, ebx
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], eax
mov eax, 3
sub eax, ecx
lea ecx, [ebx*4]
mov ebx, ecx
mov ecx, 3
sub ecx, ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x1c]
sub ecx, ebp
mov dword [esp + 0x18], eax
je 0x5eca82
sub ecx, 1
jne case.0x5ecb10.5
mov ecx, dword [0x8e80e4]
and ecx, 0xffffff
cmp ecx, 0xffffff
je 0x5e9883
movzx ebx, byte [esp + 0xa2]
movzx ecx, byte [0x8e80e6]
movzx edi, byte [0x8e80e5]
imul ebx, ecx
movzx ecx, byte [esp + 0xa1]
mov dword [esp + 0x74], ecx
imul ecx, edi
movzx edi, byte [0x8e80e4]
sar ecx, 8
mov byte [esp + 0xa1], cl
movzx ecx, byte [esp + 0xa0]
mov dword [esp + 0x74], ecx
imul ecx, edi
sar ebx, 8
sar ecx, 8
mov byte [esp + 0xa2], bl
mov byte [esp + 0xa0], cl
jmp 0x5e988a
mov bl, byte [esp + 0xa2]
mov ecx, dword [0x8e80bc]
cmp ecx, 0xb
ja case.0x5ecb10.5
jmp dword [ecx*4 + 0x5f02e4]
mov ecx, dword [0x8e80c0]
cmp ecx, 0xff
jne 0x5e9d11
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
sub esi, edi
mov ecx, ebx
sub ecx, dword [esp + 0x98]
mov dword [esp + 0x34], esi
mov esi, ecx
sub esi, edi
cmp esi, dword [esp + 0x34]
ja 0x5e9919
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, dword [esp + 0x7c]
sub edi, dword [esp + 0x7c]
cmp edi, esi
ja 0x5e9919
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x94]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0xa0]
mov dword [esi + ecx*4], edi
mov ecx, dword [esp + 0x98]
lea esi, [ebx + ecx]
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5e9979
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
mov ecx, dword [esp + 0x98]
ja 0x5e9979
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x94]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0xa0]
add ecx, ebx
mov dword [esi + ecx*4], edi
mov ecx, dword [esp + 0x98]
xor edi, edi
test eax, eax
jge 0x5e9991
add eax, 6
add dword [esp + 0x14], 4
mov edi, 1
jmp 0x5e9a03
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e99d1
cmp ecx, esi
jl 0x5e99b8
mov edx, ecx
sub edx, esi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
mov edi, 1
lea ecx, [edx*4]
mov esi, 2
sub esi, ecx
sub eax, ecx
add dword [esp + 0x14], esi
jmp 0x5e9a05
cmp ecx, esi
mov edi, 1
jl 0x5e99e5
mov edx, ecx
sub edx, esi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
lea esi, [edx*4]
mov ecx, 4
sub ecx, esi
mov esi, dword [esp + 0x14]
lea eax, [eax + ecx + 2]
lea ecx, [esi + ecx + 2]
mov dword [esp + 0x14], ecx
mov ebp, edi
test edx, edx
jle 0x5e9c7c
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
lea ecx, [edx + ebx]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov esi, dword [esp + 0x94]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, ebx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, dword [esp + 0x7c]
add ecx, esi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, esi
sub ecx, dword [esp + 0x7c]
sub esi, ebp
imul esi, dword [esp + 0x1c]
sub ecx, ebp
mov dword [esp + 0x50], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, ebx
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5e9a94
mov ecx, dword [esp + 0x68]
test edi, edi
je 0x5e9b78
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5e9ad7
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5e9ad7
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov edi, dword [esp + 0xa0]
mov dword [ecx + ebx], edi
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x60]
cmp edi, dword [esp + 0x34]
ja 0x5e9b16
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5e9b16
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov edi, dword [esp + 0xa0]
mov dword [ecx + ebx], edi
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
cmp edi, dword [esp + 0x34]
ja 0x5e9b45
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x50], edi
ja 0x5e9b45
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov dword [ecx + ebx], edi
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x34]
ja 0x5e9b78
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5e9b78
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov dword [ecx + ebx], edi
xor edi, edi
test eax, eax
jge 0x5e9bb1
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
add esi, dword [esp + 0x3c]
mov edi, 1
add dword [esp + 0x58], edi
sub dword [esp + 0x50], edi
add ebp, edi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5e9c6d
mov ecx, dword [esp + 0x98]
add dword [esp + 0x28], ecx
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
jl 0x5e9c0f
cmp dword [esp + 0x28], ecx
jl 0x5e9bf9
sub dword [esp + 0x28], ecx
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, edi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
mov ebx, 2
sub ebx, ecx
sub eax, ecx
add dword [esp + 0x14], ebx
jmp 0x5e9c6d
cmp dword [esp + 0x28], ecx
mov edi, 1
mov ebx, edi
jl 0x5e9c3f
sub dword [esp + 0x28], ecx
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, ebx
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
add dword [esp + 0x58], ebx
add esi, dword [esp + 0x3c]
sub dword [esp + 0x50], edi
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e9a90
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x7c]
lea ecx, [edx + ebx]
sub ecx, dword [esp + 0x78]
sub eax, ebp
cmp ecx, dword [esp + 0x34]
ja 0x5e9cc5
mov edi, dword [esp + 0x84]
mov ecx, eax
sub ecx, esi
sub edi, esi
cmp ecx, edi
ja 0x5e9cc5
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0xa0]
lea ecx, [edx + ebx]
mov dword [eax + ecx*4], edi
sub ebx, edx
mov edx, dword [esp + 0x94]
mov eax, ebx
sub eax, dword [esp + 0x78]
add ebp, edx
cmp eax, dword [esp + 0x34]
ja case.0x5ecb10.5
mov eax, dword [esp + 0x84]
mov ecx, ebp
sub ecx, esi
sub eax, esi
cmp ecx, eax
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov edx, dword [esp + 0xa0]
pop edi
pop esi
mov dword [ebp + ebx*4], edx
pop ebp
pop ebx
add esp, 0x78
ret
test ecx, ecx
je case.0x5ecb10.5
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x80]
sub edi, dword [esp + 0x78]
sub esi, ecx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
mov dword [esp + 0x34], edi
cmp esi, edi
ja 0x5e9dde
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5e9dd7
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
add esi, ecx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5e9e8f
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5e9e88
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x98]
xor esi, esi
test eax, eax
jge 0x5e9ea7
add eax, 6
add dword [esp + 0x14], 4
mov esi, 1
jmp 0x5e9f19
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5e9ee7
cmp ecx, edi
jl 0x5e9ece
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
mov esi, 1
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5e9f1b
cmp ecx, edi
mov esi, 1
jl 0x5e9efb
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
lea edi, [edx*4]
mov ecx, 4
sub ecx, edi
mov edi, dword [esp + 0x14]
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov ebp, esi
test edx, edx
jle 0x5ea30d
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, edi
add ecx, dword [esp + 0x94]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x94]
sub ecx, edi
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5e9fc8
mov ecx, dword [esp + 0x68]
test esi, esi
je 0x5ea208
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5ea05e
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ea05e
mov esi, dword [esp + 0x54]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5ea0f0
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ea0f0
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5ea17a
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5ea17a
mov esi, dword [esp + 0x50]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5ea208
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5ea208
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x50]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
xor esi, esi
test eax, eax
jge 0x5ea245
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
mov esi, 1
add dword [esp + 0x58], esi
sub dword [esp + 0x4c], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5ea305
mov ecx, dword [esp + 0x98]
add dword [esp + 0x28], ecx
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
jl 0x5ea2a3
cmp dword [esp + 0x28], ecx
jl 0x5ea28d
sub dword [esp + 0x28], ecx
mov esi, 1
add dword [esp + 0x64], esi
sub dword [esp + 0x60], esi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, esi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5ea305
cmp dword [esp + 0x28], ecx
mov esi, 1
mov edi, esi
jl 0x5ea2d3
sub dword [esp + 0x28], ecx
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, edi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], edi
sub dword [esp + 0x4c], esi
add ebp, edi
mov edi, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5e9fc4
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
add eax, edx
mov ecx, eax
sub ecx, dword [esp + 0x78]
sub esi, ebp
cmp ecx, dword [esp + 0x34]
ja 0x5ea3ae
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
mov ecx, esi
sub ecx, dword [esp + 0x7c]
cmp ecx, edi
ja 0x5ea3ae
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
movzx edi, byte [esi + eax*4]
lea esi, [esi + eax*4]
movzx eax, byte [esp + 0xa0]
movzx ecx, byte [esp + 0xa1]
sub eax, edi
imul eax, dword [0x8e80c0]
shl edi, 8
add eax, edi
sar eax, 8
mov byte [esi], al
movzx edi, byte [esi + 1]
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx eax, bl
sub eax, edi
imul eax, dword [0x8e80c0]
shl edi, 8
add eax, edi
sar eax, 8
mov byte [esi + 2], al
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
sub eax, edx
mov edx, eax
sub edx, dword [esp + 0x78]
add ebp, ecx
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x84]
mov esi, ebp
sub esi, edx
sub ecx, edx
cmp esi, ecx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
movzx esi, byte [ebp + eax*4]
movzx ecx, byte [esp + 0xa0]
movzx edx, byte [esp + 0xa1]
lea eax, [ebp + eax*4]
sub ecx, esi
imul ecx, dword [0x8e80c0]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax], cl
movzx esi, byte [eax + 1]
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax + 1], dl
movzx ecx, byte [eax + 2]
movzx edx, bl
sub edx, ecx
imul edx, dword [0x8e80c0]
pop edi
shl ecx, 8
pop esi
add edx, ecx
sar edx, 8
pop ebp
mov byte [eax + 2], dl
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x80]
sub edi, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
mov dword [esp + 0x34], edi
cmp ecx, edi
ja 0x5ea549
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5ea549
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and ecx, 0xfefeff
and edi, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
or ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
and ecx, 0x10100
or edi, ecx
or edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], edi
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5ea621
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5ea621
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and ecx, 0xfefeff
and edi, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
or ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
and ecx, 0x10100
or edi, ecx
or edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], edi
test eax, eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x2c], 0
jge 0x5ea64a
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5ea6c3
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5ea68d
cmp ecx, edi
jl 0x5ea674
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
mov dword [esp + 0x2c], 1
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5ea6c3
cmp ecx, edi
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5ea6a5
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
lea edi, [edx*4]
mov ecx, 4
sub ecx, edi
mov edi, dword [esp + 0x14]
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5eab1e
mov edi, dword [esp + 0x90]
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
lea ecx, [edx + edi]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, edi
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x50], ecx
mov ecx, ebp
sub ecx, dword [esp + 0x7c]
add ecx, edi
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, edi
sub ecx, dword [esp + 0x7c]
sub ecx, ebp
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, edi
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
mov edi, edi
cmp dword [esp + 0x2c], 0
je 0x5ea9f8
mov ecx, dword [esp + 0x64]
cmp ecx, dword [esp + 0x34]
ja 0x5ea80e
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x54], ecx
ja 0x5ea80e
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x50]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and edi, 0xfefeff
and ecx, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x10]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5ea8b1
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x54], ecx
ja 0x5ea8b1
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x5c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and edi, 0xfefeff
and ecx, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x10]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5ea954
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x48], ecx
ja 0x5ea954
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x4c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
and edi, 0xfefeff
and ecx, 0xfefeff
add ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x10]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5ea9f8
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x48], ecx
ja 0x5ea9f8
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x2c], edi
mov edi, dword [edi]
mov ecx, edi
or edi, dword [esp + 0x10]
and ecx, 0xfefeff
and ebx, 0xfefeff
add ecx, ebx
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov ebx, ecx
shr ebx, 8
sub ecx, ebx
mov bl, byte [esp + 0xa2]
and edi, 0x10100
or ecx, edi
or ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5eaa40
sub dword [esp + 0x48], 1
mov ecx, 1
add dword [esp + 0x54], ecx
add ebp, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x4c], ecx
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5eab16
mov edi, dword [esp + 0x28]
add edi, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], edi
jl 0x5eaaa6
cmp edi, ecx
jl 0x5eaa90
sub edi, ecx
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
mov dword [esp + 0x28], edi
mov edi, 4
add dword [esp + 0x68], edi
sub dword [esp + 0x5c], edi
sub edx, ecx
sub dword [esp + 0x74], edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x74]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5eab16
cmp edi, ecx
mov dword [esp + 0x2c], 1
jl 0x5eaade
sub edi, ecx
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
mov dword [esp + 0x28], edi
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
sub edx, edi
sub dword [esp + 0x74], ecx
jmp 0x5eaae3
mov edi, 1
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x4c], ecx
add dword [esp + 0x54], edi
sub dword [esp + 0x48], 1
add ebp, edi
mov edi, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5ea760
mov eax, dword [esp + 0x90]
lea ecx, [edx + eax]
sub ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
sub eax, ebp
cmp ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5eabe1
mov edi, dword [esp + 0x84]
sub edi, ecx
sub eax, ecx
cmp eax, edi
ja 0x5eabe1
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x90]
add ecx, edx
lea edi, [eax + ecx*4]
movzx eax, byte [esp + 0xa0]
movzx ecx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa1]
mov byte [esp + 0x10], cl
movzx ecx, byte [esi + eax*4]
mov byte [esp + 0x11], cl
movzx eax, bl
movzx ecx, byte [esi + eax*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
mov eax, ecx
or ecx, dword [esp + 0x10]
and eax, 0xfefeff
and edi, 0xfefeff
add eax, edi
mov dword [esp + 0x44], eax
and eax, 0x1010100
mov edi, eax
shr edi, 8
and ecx, 0x10100
sub eax, edi
or eax, ecx
or eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov edi, ebp
sub edi, ecx
sub edx, ecx
cmp edi, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
movzx edx, byte [esp + 0xa1]
lea edi, [ebp + eax*4]
movzx eax, byte [esp + 0xa0]
mov cl, byte [esi + eax*4]
mov al, byte [esi + edx*4]
mov byte [esp + 0x10], cl
movzx ecx, bl
mov dl, byte [esi + ecx*4]
mov ecx, dword [edi]
mov byte [esp + 0x11], al
mov byte [esp + 0x12], dl
mov esi, dword [esp + 0x10]
mov edx, ecx
mov eax, esi
and eax, 0xfefeff
and edx, 0xfefeff
add edx, eax
mov eax, edx
and eax, 0x1010100
mov ebx, eax
shr ebx, 8
or ecx, esi
sub eax, ebx
and ecx, 0x10100
or eax, ecx
or eax, edx
mov dword [edi], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x80]
sub ecx, edi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x24]
sub ecx, edi
cmp ecx, dword [esp + 0x34]
ja 0x5ead62
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5ead62
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5eae1e
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub ebx, ecx
sub edi, ecx
cmp ebx, edi
mov bl, byte [esp + 0xa2]
ja 0x5eae1e
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea edi, [ecx + edi*4]
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
test eax, eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x2c], 0
jge 0x5eae47
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5eaec0
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5eae8a
cmp ecx, edi
jl 0x5eae71
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
mov dword [esp + 0x2c], 1
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5eaec0
cmp ecx, edi
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5eaea2
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
lea edi, [edx*4]
mov ecx, 4
sub ecx, edi
mov edi, dword [esp + 0x14]
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5eb2cd
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x94]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, dword [esp + 0x7c]
add ecx, edi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, edi
sub ecx, dword [esp + 0x7c]
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, edi
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
nop
cmp dword [esp + 0x2c], 0
je 0x5eb1a7
mov ecx, dword [esp + 0x64]
cmp ecx, dword [esp + 0x34]
ja 0x5eaffa
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5eaffa
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x54]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5eb089
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5eb089
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5eb118
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5eb118
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x50]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5eb1a7
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5eb1a7
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x5c]
add edi, ecx
movzx ecx, byte [esp + 0xa0]
movzx ecx, byte [esi + ecx*4]
add edi, dword [esp + 0x20]
mov byte [esp + 0x10], cl
movzx ecx, byte [esp + 0xa1]
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x11], cl
movzx ecx, bl
movzx ecx, byte [esi + ecx*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x10]
and edi, 0xfefefeff
or ecx, 0x1010100
sub ecx, edi
mov dword [esp + 0x44], ecx
and ecx, 0x1010100
mov edi, ecx
shr edi, 8
sub ecx, edi
and ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edi], ecx
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5eb1ef
sub dword [esp + 0x4c], 1
mov ecx, 1
add dword [esp + 0x58], ecx
add ebp, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5eb2c5
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5eb255
cmp ecx, edi
jl 0x5eb23f
sub ecx, edi
mov edi, 4
add dword [esp + 0x68], edi
sub dword [esp + 0x5c], edi
mov dword [esp + 0x28], ecx
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
sub edx, ecx
sub dword [esp + 0x74], edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x74]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5eb2c5
cmp ecx, edi
mov dword [esp + 0x2c], 1
jl 0x5eb28d
sub ecx, edi
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov dword [esp + 0x28], ecx
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, edi
sub dword [esp + 0x74], ecx
jmp 0x5eb292
mov edi, 1
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], edi
sub dword [esp + 0x4c], 1
add ebp, edi
mov edi, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5eaf60
mov eax, dword [esp + 0x90]
lea ecx, [edx + eax]
sub ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
sub eax, ebp
cmp ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5eb37e
mov edi, dword [esp + 0x84]
sub edi, ecx
sub eax, ecx
cmp eax, edi
ja 0x5eb37e
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x90]
add ecx, edx
lea edi, [eax + ecx*4]
movzx eax, byte [esp + 0xa0]
movzx ecx, byte [esi + eax*4]
movzx eax, byte [esp + 0xa1]
mov byte [esp + 0x10], cl
movzx ecx, byte [esi + eax*4]
mov byte [esp + 0x11], cl
movzx eax, bl
movzx ecx, byte [esi + eax*4]
mov byte [esp + 0x12], cl
mov ecx, dword [edi]
mov eax, dword [esp + 0x10]
and eax, 0xfefefeff
or ecx, 0x1010100
sub ecx, eax
mov eax, ecx
and eax, 0x1010100
mov dword [esp + 0x2c], edi
mov edi, eax
shr edi, 8
sub eax, edi
and eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov edi, ebp
sub edi, ecx
sub edx, ecx
cmp edi, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
pop edi
lea edx, [ebp + eax*4]
movzx eax, byte [esp + 0x9c]
movzx ecx, byte [esi + eax*4]
movzx eax, byte [esp + 0x9d]
mov byte [esp + 0xc], cl
movzx ecx, byte [esi + eax*4]
movzx eax, bl
mov byte [esp + 0xd], cl
movzx ecx, byte [esi + eax*4]
mov byte [esp + 0xe], cl
mov ecx, dword [edx]
mov eax, dword [esp + 0xc]
and eax, 0xfefefeff
or ecx, 0x1010100
sub ecx, eax
mov eax, ecx
and eax, 0x1010100
mov esi, eax
shr esi, 8
sub eax, esi
pop esi
and eax, ecx
pop ebp
mov dword [edx], eax
pop ebx
add esp, 0x78
ret
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
sub esi, edi
mov dword [esp + 0x24], ecx
sub ecx, edi
mov dword [esp + 0x34], esi
cmp ecx, esi
mov esi, dword [esp + 0x94]
ja 0x5eb4c5
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
sub esi, ecx
sub edi, ecx
cmp esi, edi
mov esi, dword [esp + 0x94]
ja 0x5eb4c5
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
imul ecx, esi
add ecx, dword [esp + 0x20]
movzx ebx, byte [esp + 0xa0]
lea edi, [ecx + edi*4]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x90]
add ecx, edi
mov dword [esp + 0x24], ecx
sub ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x34]
ja 0x5eb55e
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
sub esi, ecx
sub edi, ecx
cmp esi, edi
mov esi, dword [esp + 0x94]
ja 0x5eb55e
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
imul ecx, esi
add ecx, dword [esp + 0x20]
movzx ebx, byte [esp + 0xa0]
lea edi, [ecx + edi*4]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
test eax, eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x2c], 0
jge 0x5eb587
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5eb600
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5eb5ca
cmp ecx, edi
jl 0x5eb5b1
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
mov dword [esp + 0x2c], 1
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5eb600
cmp ecx, edi
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5eb5e2
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
lea edi, [edx*4]
mov ecx, 4
sub ecx, edi
mov edi, dword [esp + 0x14]
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x5eb99a
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
lea ecx, [esi + ebp]
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, edi
add ecx, esi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, esi
sub ecx, edi
mov edi, dword [esp + 0x90]
sub ecx, ebp
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub edi, edx
sub ecx, edx
add edi, edi
add edi, edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x68], edi
jmp 0x5eb6a4
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x2c], 0
je 0x5eb87c
cmp ecx, dword [esp + 0x34]
ja 0x5eb723
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5eb723
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x54]
movzx ebx, byte [esp + 0xa0]
add edi, ecx
add edi, dword [esp + 0x20]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5eb79b
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x58], ecx
ja 0x5eb79b
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
movzx ebx, byte [esp + 0xa0]
add edi, ecx
add edi, dword [esp + 0x20]
movzx ecx, byte [edi]
imul ecx, ebx
movzx ebx, byte [esp + 0xa1]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, ebx
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
mov dword [esp + 0x2c], edi
movzx edi, bl
imul ecx, edi
mov edi, dword [esp + 0x2c]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x64], ecx
ja 0x5eb80c
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5eb80c
mov ecx, dword [esp + 0x68]
lea edi, [ecx + esi]
add edi, dword [esp + 0x20]
movzx esi, byte [esp + 0xa0]
movzx ecx, byte [edi]
imul ecx, esi
movzx esi, byte [esp + 0xa1]
mov bl, byte [esp + 0xa2]
sar ecx, 8
mov byte [edi], cl
movzx ecx, byte [edi + 1]
imul ecx, esi
sar ecx, 8
mov byte [edi + 1], cl
movzx ecx, byte [edi + 2]
movzx esi, bl
imul ecx, esi
mov esi, dword [esp + 0x70]
sar ecx, 8
mov byte [edi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5eb87c
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5eb87c
mov ecx, dword [esp + 0x5c]
movzx edi, byte [esp + 0xa0]
add esi, ecx
add esi, dword [esp + 0x20]
mov bl, byte [esp + 0xa2]
movzx ecx, byte [esi]
imul ecx, edi
movzx edi, byte [esp + 0xa1]
sar ecx, 8
mov byte [esi], cl
movzx ecx, byte [esi + 1]
imul ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx ecx, byte [esi + 2]
movzx edi, bl
imul ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov esi, dword [esp + 0x70]
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5eb8c0
add esi, dword [esp + 0x3c]
sub dword [esp + 0x50], 1
mov ecx, 1
add dword [esp + 0x58], ecx
add ebp, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5eb987
mov ecx, dword [esp + 0x98]
add dword [esp + 0x28], ecx
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
jl 0x5eb922
cmp dword [esp + 0x28], ecx
jl 0x5eb90c
sub dword [esp + 0x28], ecx
mov ecx, 1
add dword [esp + 0x64], ecx
sub dword [esp + 0x60], ecx
mov edi, 4
add dword [esp + 0x68], edi
sub dword [esp + 0x5c], edi
sub edx, ecx
sub dword [esp + 0x74], edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x74]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5eb98b
cmp dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 1
mov edi, 1
jl 0x5eb958
sub dword [esp + 0x28], ecx
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, edi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
add dword [esp + 0x58], edi
add esi, dword [esp + 0x3c]
sub dword [esp + 0x50], 1
add ebp, edi
mov edi, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x70], esi
test edx, edx
jg 0x5eb6a0
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
lea ecx, [edx + eax]
sub ecx, dword [esp + 0x78]
mov eax, esi
sub eax, ebp
cmp ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5eba27
mov edi, dword [esp + 0x84]
sub edi, ecx
sub eax, ecx
cmp eax, edi
ja 0x5eba27
mov edi, dword [esp + 0x50]
imul edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x90]
add edi, dword [esp + 0x20]
lea eax, [edx + ecx]
movzx ecx, byte [esp + 0xa0]
lea edi, [edi + eax*4]
movzx eax, byte [edi]
imul eax, ecx
movzx ecx, byte [esp + 0xa1]
sar eax, 8
mov byte [edi], al
movzx eax, byte [edi + 1]
imul eax, ecx
sar eax, 8
mov byte [edi + 1], al
movzx eax, byte [edi + 2]
movzx ecx, bl
imul eax, ecx
mov ecx, dword [esp + 0x7c]
sar eax, 8
mov byte [edi + 2], al
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, eax
sub edx, dword [esp + 0x78]
add ebp, esi
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov esi, ebp
sub esi, ecx
sub edx, ecx
cmp esi, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
lea esi, [ebp + eax*4]
movzx eax, byte [esi]
imul eax, ecx
sar eax, 8
mov byte [esi], al
movzx edx, byte [esi + 1]
movzx eax, byte [esp + 0xa1]
imul edx, eax
sar edx, 8
mov byte [esi + 1], dl
movzx ecx, byte [esi + 2]
movzx edx, bl
imul ecx, edx
pop edi
sar ecx, 8
mov byte [esi + 2], cl
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x80]
sub edi, dword [esp + 0x78]
sub esi, ecx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
mov dword [esp + 0x34], edi
cmp esi, edi
ja 0x5ebb84
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5ebb7d
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
add esi, ecx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5ebc50
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5ebc49
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
movzx ecx, byte [esp + 0xa0]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x98]
xor esi, esi
test eax, eax
jge 0x5ebc6c
add eax, 6
add dword [esp + 0x14], 4
mov esi, 1
jmp 0x5ebce6
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5ebcb0
cmp ecx, edi
jl 0x5ebc97
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
mov esi, 1
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5ebce8
cmp ecx, edi
mov esi, 1
jl 0x5ebcc8
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
lea edi, [edx*4]
mov ecx, 4
sub ecx, edi
mov edi, dword [esp + 0x14]
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov ebp, esi
test edx, edx
jle 0x5ec149
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, edi
add ecx, dword [esp + 0x94]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x94]
sub ecx, edi
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5ebd98
mov ecx, dword [esp + 0x68]
test esi, esi
je 0x5ec044
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5ebe49
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ebe49
mov esi, dword [esp + 0x54]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5ebef6
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ebef6
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5ebf9b
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5ebf9b
mov esi, dword [esp + 0x50]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5ec044
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5ec044
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
movzx ecx, byte [esp + 0xa0]
movzx edi, byte [esi]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
movzx ecx, byte [esp + 0xa1]
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx ecx, bl
imul ecx, edi
sar ecx, 8
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
xor esi, esi
test eax, eax
jge 0x5ec081
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
mov esi, 1
add dword [esp + 0x58], esi
sub dword [esp + 0x4c], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5ec141
mov ecx, dword [esp + 0x98]
add dword [esp + 0x28], ecx
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
jl 0x5ec0df
cmp dword [esp + 0x28], ecx
jl 0x5ec0c9
sub dword [esp + 0x28], ecx
mov esi, 1
add dword [esp + 0x64], esi
sub dword [esp + 0x60], esi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, esi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5ec141
cmp dword [esp + 0x28], ecx
mov esi, 1
mov edi, esi
jl 0x5ec10f
sub dword [esp + 0x28], ecx
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, edi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], edi
sub dword [esp + 0x4c], esi
add ebp, edi
mov edi, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5ebd94
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
add eax, edx
mov ecx, eax
sub ecx, dword [esp + 0x78]
sub esi, ebp
cmp ecx, dword [esp + 0x34]
ja 0x5ec205
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
mov ecx, esi
sub ecx, dword [esp + 0x7c]
cmp ecx, edi
ja 0x5ec205
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
movzx edi, byte [esi + eax*4]
lea esi, [esi + eax*4]
movzx eax, byte [esp + 0xa0]
imul eax, edi
sar eax, 8
movzx ecx, al
sub ecx, edi
imul ecx, dword [0x8e80c0]
movzx eax, byte [esp + 0xa1]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
movzx edi, byte [esi + 1]
imul eax, edi
sar eax, 8
movzx ecx, al
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
movzx eax, bl
imul eax, edi
sar eax, 8
movzx ecx, al
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
mov ecx, eax
sub ecx, dword [esp + 0x78]
add ebp, edx
cmp ecx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x84]
mov esi, ebp
sub esi, edx
sub ecx, edx
cmp esi, ecx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
movzx esi, byte [ebp + eax*4]
movzx edx, byte [esp + 0xa0]
imul edx, esi
lea eax, [ebp + eax*4]
sar edx, 8
movzx ecx, dl
sub ecx, esi
imul ecx, dword [0x8e80c0]
movzx edx, byte [esp + 0xa1]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax], cl
movzx esi, byte [eax + 1]
imul edx, esi
sar edx, 8
movzx ecx, dl
sub ecx, esi
imul ecx, dword [0x8e80c0]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
movzx edx, bl
imul edx, ecx
sar edx, 8
movzx edx, dl
sub edx, ecx
imul edx, dword [0x8e80c0]
pop edi
shl ecx, 8
pop esi
add edx, ecx
sar edx, 8
pop ebp
mov byte [eax + 2], dl
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x80]
sub edi, dword [esp + 0x78]
sub esi, ecx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
mov dword [esp + 0x34], edi
cmp esi, edi
ja 0x5ec39c
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5ec395
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
mov cl, byte [esp + 0xa0]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
add esi, ecx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5ec459
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x94]
sub esi, ecx
sub edi, ecx
cmp edi, esi
ja 0x5ec452
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
movzx edi, byte [ecx + esi*4]
lea esi, [ecx + esi*4]
mov cl, byte [esp + 0xa0]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x98]
xor esi, esi
test eax, eax
jge 0x5ec475
add eax, 6
add dword [esp + 0x14], 4
mov esi, 1
jmp 0x5ec4ef
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jl 0x5ec4b9
cmp ecx, edi
jl 0x5ec4a0
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
mov esi, 1
lea ecx, [edx*4]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5ec4f1
cmp ecx, edi
mov esi, 1
jl 0x5ec4d1
mov edx, ecx
sub edx, edi
mov dword [esp + 0x28], edx
lea edx, [ecx - 1]
lea edi, [edx*4]
mov ecx, 4
sub ecx, edi
mov edi, dword [esp + 0x14]
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
mov ebp, esi
test edx, edx
jle 0x5ec919
lea ecx, [edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x90]
add ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x7c]
mov ecx, edx
sub ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x90]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x94]
add ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, ebp
sub ecx, edi
add ecx, dword [esp + 0x94]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x94]
sub ecx, edi
sub ecx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x78]
sub ecx, edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x94]
sub ecx, ebp
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x90]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5ec5a4
mov ecx, dword [esp + 0x68]
test esi, esi
je 0x5ec814
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5ec646
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ec646
mov esi, dword [esp + 0x54]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5ec6e4
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ec6e4
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5ec77a
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5ec77a
mov esi, dword [esp + 0x50]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5ec814
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x4c], ecx
ja 0x5ec814
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
add esi, ecx
add esi, dword [esp + 0x20]
mov cl, byte [esp + 0xa0]
movzx edi, byte [esi]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
mov dword [esp + 0x48], edi
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 1], cl
movzx edi, byte [esi + 2]
mov cl, bl
not cl
movzx ecx, cl
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi + 2], cl
xor esi, esi
test eax, eax
jge 0x5ec851
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
mov esi, 1
add dword [esp + 0x58], esi
sub dword [esp + 0x4c], esi
add ebp, esi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5ec911
mov ecx, dword [esp + 0x98]
add dword [esp + 0x28], ecx
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
jl 0x5ec8af
cmp dword [esp + 0x28], ecx
jl 0x5ec899
sub dword [esp + 0x28], ecx
mov esi, 1
add dword [esp + 0x64], esi
sub dword [esp + 0x60], esi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, esi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
mov edi, 2
sub edi, ecx
sub eax, ecx
add dword [esp + 0x14], edi
jmp 0x5ec911
cmp dword [esp + 0x28], ecx
mov esi, 1
mov edi, esi
jl 0x5ec8df
sub dword [esp + 0x28], ecx
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ecx, 4
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, edi
sub dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], ecx
add dword [esp + 0x58], edi
sub dword [esp + 0x4c], esi
add ebp, edi
mov edi, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [edi + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5ec5a0
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
add eax, edx
mov ecx, eax
sub ecx, dword [esp + 0x78]
sub esi, ebp
cmp ecx, dword [esp + 0x34]
ja 0x5ec9cd
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
mov ecx, esi
sub ecx, dword [esp + 0x7c]
cmp ecx, edi
ja 0x5ec9cd
imul esi, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
movzx edi, byte [esi + eax*4]
lea esi, [esi + eax*4]
mov al, byte [esp + 0xa0]
not al
movzx ecx, al
sub ecx, edi
imul ecx, dword [0x8e80c0]
shl edi, 8
add ecx, edi
sar ecx, 8
mov byte [esi], cl
mov cl, byte [esp + 0xa1]
movzx edi, byte [esi + 1]
mov al, cl
not al
movzx eax, al
sub eax, edi
imul eax, dword [0x8e80c0]
shl edi, 8
add eax, edi
sar eax, 8
mov byte [esi + 1], al
movzx edi, byte [esi + 2]
mov al, bl
not al
movzx eax, al
sub eax, edi
imul eax, dword [0x8e80c0]
shl edi, 8
add eax, edi
sar eax, 8
mov byte [esi + 2], al
jmp 0x5ec9d4
mov cl, byte [esp + 0xa1]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
mov edi, ebp
sub edi, esi
sub edx, esi
cmp edi, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov dl, byte [esp + 0xa0]
movzx esi, byte [ebp + eax*4]
not dl
lea eax, [ebp + eax*4]
movzx edx, dl
sub edx, esi
imul edx, dword [0x8e80c0]
shl esi, 8
add edx, esi
sar edx, 8
mov byte [eax], dl
movzx esi, byte [eax + 1]
not cl
movzx ecx, cl
sub ecx, esi
imul ecx, dword [0x8e80c0]
shl esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
not bl
movzx edx, bl
sub edx, ecx
imul edx, dword [0x8e80c0]
pop edi
shl ecx, 8
pop esi
add edx, ecx
sar edx, 8
pop ebp
mov byte [eax + 2], dl
pop ebx
add esp, 0x78
ret
mov ebx, dword [0x8e80e4]
mov ecx, ebx
and ecx, 0xffffff
cmp ecx, 0xffffff
je 0x5ecafa
mov eax, dword [esp + 0xa0]
mov ecx, eax
sar ecx, 5
and ecx, 0x3f
movzx ebx, bh
imul ecx, ebx
movzx ebx, byte [0x8e80e4]
and eax, 0x1f
imul eax, ebx
movzx ebx, byte [0x8e80e6]
sar eax, 5
and ecx, 0xffffff07
or ecx, eax
mov eax, dword [esp + 0xa0]
sar eax, 8
and eax, 0xfffffff8
imul eax, ebx
and eax, 0xfffff800
sar ecx, 3
or ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa0], ecx
jmp 0x5ecb01
mov ecx, dword [esp + 0xa0]
mov ebx, dword [0x8e80bc]
cmp ebx, 0xb
ja case.0x5ecb10.5
jmp dword [ebx*4 + 0x5f0314]
mov esi, dword [0x8e80c0]
cmp esi, 0xff
jne 0x5ecfb7
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x80]
sub ebx, dword [esp + 0x78]
mov edi, ecx
sub edi, esi
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x78]
mov dword [esp + 0x34], ebx
cmp edi, ebx
ja 0x5ecb9f
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, esi
sub ebx, esi
cmp ebx, edi
ja 0x5ecb98
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x94]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov bx, word [esp + 0xa0]
mov word [esi + edi*2], bx
mov esi, dword [esp + 0x98]
lea edi, [ecx + esi]
sub edi, dword [esp + 0x78]
cmp edi, dword [esp + 0x34]
ja 0x5ecbfa
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, esi
sub ebx, esi
cmp ebx, edi
mov esi, dword [esp + 0x98]
ja 0x5ecbfa
mov edi, dword [esp + 0x1c]
imul edi, dword [esp + 0x94]
add edi, dword [esp + 0x20]
mov bx, word [esp + 0xa0]
add esi, ecx
mov word [edi + esi*2], bx
mov esi, dword [esp + 0x98]
xor edi, edi
test eax, eax
jge 0x5ecc16
add eax, 6
add dword [esp + 0x14], 4
mov edi, 1
jmp 0x5ecc90
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], esi
jl 0x5ecc5a
cmp esi, ebx
jl 0x5ecc41
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
mov edi, 1
lea esi, [edx*4]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5ecc92
cmp esi, ebx
mov edi, 1
jl 0x5ecc72
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
lea ebx, [edx*4]
mov esi, 4
sub esi, ebx
mov ebx, dword [esp + 0x14]
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
mov ebp, edi
test edx, edx
jle 0x5ecf1e
lea esi, [edx*4]
mov dword [esp + 0x74], esi
lea esi, [edx + ecx]
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x94]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, ecx
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ebp
sub esi, dword [esp + 0x7c]
add esi, ebx
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, ebx
sub esi, dword [esp + 0x7c]
sub esi, ebp
mov dword [esp + 0x50], esi
mov esi, ecx
sub esi, dword [esp + 0x78]
sub ecx, edx
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, ebx
sub esi, ebp
imul esi, dword [esp + 0x1c]
add ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5ecd24
mov ecx, dword [esp + 0x68]
test edi, edi
je 0x5ece18
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5ecd69
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5ecd69
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov di, word [esp + 0xa0]
mov word [ecx + ebx], di
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5ecdaa
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5ecdaa
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
add ecx, edi
mov di, word [esp + 0xa0]
mov word [ecx + ebx], di
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5ecddf
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x50], edi
ja 0x5ecddf
mov di, word [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov word [ecx + ebx], di
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x60], ecx
ja 0x5ece18
mov ecx, dword [esp + 0x84]
sub ecx, dword [esp + 0x7c]
cmp dword [esp + 0x50], ecx
ja 0x5ece18
mov ecx, dword [esp + 0x5c]
mov di, word [esp + 0xa0]
mov ebx, dword [esp + 0x20]
add ecx, esi
mov word [ecx + ebx], di
xor edi, edi
test eax, eax
jge 0x5ece51
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
add esi, dword [esp + 0x3c]
mov edi, 1
add dword [esp + 0x58], edi
sub dword [esp + 0x50], edi
add ebp, edi
lea ecx, [ebp*4]
add dword [esp + 0x14], ecx
lea eax, [eax + ecx + 2]
jmp 0x5ecf0f
mov ecx, dword [esp + 0x98]
add dword [esp + 0x28], ecx
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x30]
jl 0x5eceb0
cmp dword [esp + 0x28], ecx
jl 0x5ece9a
sub dword [esp + 0x28], ecx
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ecx, 2
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, edi
sub dword [esp + 0x74], 4
mov ecx, dword [esp + 0x74]
mov ebx, 2
sub ebx, ecx
sub eax, ecx
add dword [esp + 0x14], ebx
jmp 0x5ecf0f
cmp dword [esp + 0x28], ecx
mov edi, 1
mov ebx, edi
jl 0x5ecee1
sub dword [esp + 0x28], ecx
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov ecx, 2
add dword [esp + 0x68], ecx
sub dword [esp + 0x5c], ecx
sub edx, ebx
sub dword [esp + 0x74], 4
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x54], ecx
add dword [esp + 0x58], ebx
add esi, dword [esp + 0x3c]
sub dword [esp + 0x50], edi
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov ecx, ebp
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx + 2]
lea ecx, [ebx + ecx + 2]
mov dword [esp + 0x14], ecx
test edx, edx
jg 0x5ecd20
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x7c]
lea esi, [edx + ecx]
sub esi, dword [esp + 0x78]
sub eax, ebp
cmp esi, dword [esp + 0x34]
ja 0x5ecf69
mov ebx, dword [esp + 0x84]
mov esi, eax
sub esi, edi
sub ebx, edi
cmp esi, ebx
ja 0x5ecf69
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov bx, word [esp + 0xa0]
lea esi, [edx + ecx]
mov word [eax + esi*2], bx
sub ecx, edx
mov edx, dword [esp + 0x94]
mov eax, ecx
sub eax, dword [esp + 0x78]
add ebp, edx
cmp eax, dword [esp + 0x34]
ja case.0x5ecb10.5
mov eax, dword [esp + 0x84]
mov edx, ebp
sub edx, edi
sub eax, edi
cmp edx, eax
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov ax, word [esp + 0xa0]
pop edi
pop esi
mov word [ebp + ecx*2], ax
pop ebp
pop ebx
add esp, 0x78
ret
test esi, esi
je case.0x5ecb10.5
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x80]
sub esi, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
cmp esi, dword [esp + 0x34]
ja 0x5ed0a2
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5ed09e
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr esi, 5
shr eax, 0xb
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
add esi, ebx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5ed174
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5ed170
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr esi, 5
shr eax, 0xb
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5ed1a5
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5ed222
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], esi
jl 0x5ed1e8
cmp esi, ebx
jl 0x5ed1cf
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
mov dword [esp + 0x2c], 1
lea esi, [edx*4]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5ed222
cmp esi, ebx
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5ed204
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
lea ebx, [edx*4]
mov esi, 4
sub esi, ebx
mov ebx, dword [esp + 0x14]
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
mov dword [esp + 0x18], eax
jle 0x5ed6ba
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
lea esp, [esp]
cmp dword [esp + 0x2c], 0
je 0x5ed58b
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5ed387
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ed387
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5ed433
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ed433
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
add eax, esi
add eax, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5ed4df
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5ed4df
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5ed58b
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5ed58b
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
add eax, esi
add eax, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
sar ebx, 5
shr esi, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr eax, 0xb
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5ed5d3
sub dword [esp + 0x4c], 1
mov esi, 1
add dword [esp + 0x58], esi
add ebp, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea eax, [eax + esi + 2]
jmp 0x5ed6ae
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
jl 0x5ed63a
cmp ebx, esi
jl 0x5ed624
sub ebx, esi
mov esi, 1
add dword [esp + 0x64], esi
sub dword [esp + 0x60], esi
mov dword [esp + 0x28], ebx
mov ebx, 2
add dword [esp + 0x68], ebx
sub dword [esp + 0x5c], ebx
sub edx, esi
sub dword [esp + 0x74], 4
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x74]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5ed6ae
cmp ebx, esi
mov dword [esp + 0x2c], 1
jl 0x5ed676
sub ebx, esi
mov dword [esp + 0x28], ebx
mov ebx, 1
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
sub dword [esp + 0x74], 4
jmp 0x5ed67b
mov ebx, 1
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
add dword [esp + 0x58], ebx
sub dword [esp + 0x4c], 1
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
mov dword [esp + 0x18], eax
jg 0x5ed2d0
mov eax, dword [esp + 0x90]
lea esi, [edx + eax]
sub esi, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
sub eax, ebp
cmp esi, dword [esp + 0x34]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5ed78a
mov ebx, dword [esp + 0x84]
sub eax, esi
sub ebx, esi
cmp eax, ebx
ja 0x5ed78a
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
add esi, edx
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx esi, ax
mov dword [esp + 0x44], esi
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
shr esi, 5
shr eax, 0xb
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x44]
and eax, 0x1f
mov ebx, ecx
and ebx, 0x1f
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov ebx, ebp
sub ebx, esi
sub edx, esi
cmp ebx, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
lea ebp, [ebp + eax*2]
movzx eax, word [ebp]
mov dword [esp + 0x2c], ebp
movzx edx, ax
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
mov esi, edx
shr esi, 5
and esi, 0x3f
sub ebx, esi
mov esi, eax
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebp, ecx
mov ebx, edx
shr ebx, 0xb
sar ebp, 0xb
sub ebp, ebx
mov bx, ax
shr bx, 0xb
add bx, word [edi + ebp*4]
and edx, 0x1f
and ecx, 0x1f
and eax, 0x1f
shl si, 5
shl bx, 0xb
sub ecx, edx
add ax, word [edi + ecx*4]
or si, bx
or si, ax
mov eax, dword [esp + 0x2c]
pop edi
mov word [eax], si
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x80]
sub edi, ebx
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x24]
sub edi, ebx
cmp edi, dword [esp + 0x34]
ja 0x5ed920
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5ed91c
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
shl di, 5
mov ebx, ecx
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x38], eax
movzx edi, di
movzx eax, ax
mov ebx, edi
or edi, dword [esp + 0x38]
and eax, 0xf7def7df
and ebx, 0xf7def7df
add eax, ebx
mov dword [esp + 0x44], eax
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
and edi, 0x820
sub eax, ebx
or eax, edi
or eax, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
add edi, ebx
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x78]
cmp edi, dword [esp + 0x34]
ja 0x5ed9e8
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5ed9e4
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
shl di, 5
mov ebx, ecx
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x38], eax
movzx edi, di
movzx eax, ax
mov ebx, edi
or edi, dword [esp + 0x38]
and eax, 0xf7def7df
and ebx, 0xf7def7df
add eax, ebx
mov dword [esp + 0x44], eax
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
and edi, 0x820
sub eax, ebx
or eax, edi
or eax, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x18]
test eax, eax
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5eda19
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5eda96
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], edi
jl 0x5eda5c
cmp edi, ebx
jl 0x5eda43
mov edx, edi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [edi - 1]
mov dword [esp + 0x2c], 1
lea edi, [edx*4]
mov ebx, 2
sub ebx, edi
sub eax, edi
add dword [esp + 0x14], ebx
jmp 0x5eda96
cmp edi, ebx
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5eda78
mov edx, edi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [edi - 1]
lea ebx, [edx*4]
mov edi, 4
sub edi, ebx
mov ebx, dword [esp + 0x14]
lea eax, [eax + edi + 2]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
mov dword [esp + 0x18], eax
jle 0x5edf28
lea edi, [edx*4]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x90]
add edi, edx
add edi, edi
mov dword [esp + 0x5c], edi
mov ebx, dword [esp + 0x94]
mov edi, edx
sub edi, dword [esp + 0x78]
add edi, dword [esp + 0x90]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x94]
add edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov edi, ebp
sub edi, dword [esp + 0x7c]
add edi, ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x3c], edi
mov edi, ebx
sub edi, dword [esp + 0x7c]
sub edi, ebp
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x78]
sub edi, edx
mov dword [esp + 0x64], edi
mov edi, ebx
sub edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x90]
sub edi, edx
add edi, edi
mov dword [esp + 0x68], edi
cmp dword [esp + 0x2c], 0
je 0x5eddf9
mov edi, dword [esp + 0x64]
cmp edi, dword [esp + 0x34]
ja 0x5edbf2
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x54], edi
ja 0x5edbf2
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
mov dword [esp + 0x38], edi
movzx edi, di
mov dword [esp + 0x58], ebx
and edi, 0xf7def7df
and ebx, 0xf7def7df
add edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
and edi, 0x820
or ebx, edi
or ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], bx
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5edca4
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x54], edi
ja 0x5edca4
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x50]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
mov dword [esp + 0x38], edi
movzx edi, di
mov dword [esp + 0x58], ebx
and edi, 0xf7def7df
and ebx, 0xf7def7df
add edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
and edi, 0x820
or ebx, edi
or ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], bx
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5edd56
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x48], edi
ja 0x5edd56
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
mov dword [esp + 0x38], edi
movzx edi, di
mov dword [esp + 0x58], ebx
and edi, 0xf7def7df
and ebx, 0xf7def7df
add edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x58]
or edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
and edi, 0x820
or ebx, edi
or ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov word [edi], bx
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5eddf9
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x48], edi
ja 0x5eddf9
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
add eax, edi
add eax, dword [esp + 0x20]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
shl di, 5
mov ebx, ecx
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x38], eax
movzx ebx, di
movzx edi, ax
and edi, 0xf7def7df
mov eax, ebx
or ebx, dword [esp + 0x38]
and eax, 0xf7def7df
add edi, eax
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov eax, edi
shr eax, 5
sub edi, eax
mov eax, dword [esp + 0x2c]
and ebx, 0x820
or edi, ebx
or edi, dword [esp + 0x44]
mov word [eax], di
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5ede41
sub dword [esp + 0x48], 1
mov edi, 1
add dword [esp + 0x54], edi
add ebp, edi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x1c]
add dword [esp + 0x50], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x4c], edi
lea edi, [ebp*4]
add dword [esp + 0x14], edi
lea eax, [eax + edi + 2]
jmp 0x5edf1c
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
jl 0x5edea8
cmp ebx, edi
jl 0x5ede92
sub ebx, edi
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov dword [esp + 0x28], ebx
mov ebx, 2
add dword [esp + 0x68], ebx
sub dword [esp + 0x5c], ebx
sub edx, edi
sub dword [esp + 0x74], 4
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x74]
mov ebx, 2
sub ebx, edi
sub eax, edi
add dword [esp + 0x14], ebx
jmp 0x5edf1c
cmp ebx, edi
mov dword [esp + 0x2c], 1
jl 0x5edee4
sub ebx, edi
mov dword [esp + 0x28], ebx
mov ebx, 1
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov edi, 2
add dword [esp + 0x68], edi
sub dword [esp + 0x5c], edi
sub edx, ebx
sub dword [esp + 0x74], 4
jmp 0x5edee9
mov ebx, 1
mov edi, dword [esp + 0x1c]
add dword [esp + 0x50], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x4c], edi
add dword [esp + 0x54], ebx
sub dword [esp + 0x48], 1
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov edi, ebp
sub edi, edx
add edi, edi
add edi, edi
lea eax, [eax + edi + 2]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
mov dword [esp + 0x18], eax
jg 0x5edb35
mov eax, dword [esp + 0x90]
lea edi, [edx + eax]
sub edi, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
sub eax, ebp
cmp edi, dword [esp + 0x34]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5edfee
mov ebx, dword [esp + 0x84]
sub ebx, edi
sub eax, edi
cmp eax, ebx
ja 0x5edfee
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x90]
add edi, edx
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
shl di, 5
mov ebx, ecx
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x38], eax
movzx edi, di
movzx eax, ax
mov ebx, edi
or edi, dword [esp + 0x38]
and eax, 0xf7def7df
and ebx, 0xf7def7df
add eax, ebx
mov dword [esp + 0x44], eax
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
and edi, 0x820
sub eax, ebx
or eax, edi
mov edi, dword [esp + 0x2c]
or eax, dword [esp + 0x44]
mov word [edi], ax
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov ebx, ebp
sub ebx, edi
sub edx, edi
cmp ebx, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
lea edi, [ebp + eax*2]
mov eax, ecx
sar eax, 0xb
mov dx, word [esi + eax*4]
mov eax, ecx
sar eax, 5
and eax, 0x3f
shl dx, 6
add dx, word [esi + eax*4]
and ecx, 0x1f
shl dx, 5
add dx, word [esi + ecx*4]
movzx esi, word [edi]
movzx ecx, dx
movzx edx, si
mov eax, ecx
and eax, 0xf7def7df
and edx, 0xf7def7df
add edx, eax
mov eax, edx
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
or ecx, esi
sub eax, ebx
and ecx, 0x820
or eax, ecx
or eax, edx
mov word [edi], ax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
cmp dword [0x8e80c0], 0
je case.0x5ecb10.5
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x80]
sub edi, ebx
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x24]
sub edi, ebx
cmp edi, dword [esp + 0x34]
ja 0x5ee161
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5ee15d
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx ebx, di
movzx edi, word [eax]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov eax, edi
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
sub eax, ebx
and eax, edi
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
add edi, ebx
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x78]
cmp edi, dword [esp + 0x34]
ja 0x5ee211
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, eax
sub ebx, eax
cmp ebx, edi
ja 0x5ee20d
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx ebx, di
movzx edi, word [eax]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov eax, edi
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
sub eax, ebx
and eax, edi
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov eax, dword [esp + 0x18]
test eax, eax
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5ee242
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5ee2bf
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], edi
jl 0x5ee285
cmp edi, ebx
jl 0x5ee26c
mov edx, edi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [edi - 1]
mov dword [esp + 0x2c], 1
lea edi, [edx*4]
mov ebx, 2
sub ebx, edi
sub eax, edi
add dword [esp + 0x14], ebx
jmp 0x5ee2bf
cmp edi, ebx
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5ee2a1
mov edx, edi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [edi - 1]
lea ebx, [edx*4]
mov edi, 4
sub edi, ebx
mov ebx, dword [esp + 0x14]
lea eax, [eax + edi + 2]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
jle 0x5ee6d2
lea edi, [edx*4]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x90]
add edi, edx
add edi, edi
mov dword [esp + 0x5c], edi
mov ebx, dword [esp + 0x94]
mov edi, edx
sub edi, dword [esp + 0x78]
add edi, dword [esp + 0x90]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x94]
add edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x54], edi
mov edi, ebp
sub edi, dword [esp + 0x7c]
add edi, ebx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x1c]
neg edi
mov dword [esp + 0x3c], edi
mov edi, ebx
sub edi, dword [esp + 0x7c]
sub edi, ebp
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x90]
sub edi, dword [esp + 0x78]
sub edi, edx
mov dword [esp + 0x64], edi
mov edi, ebx
sub edi, ebp
imul edi, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x90]
sub edi, edx
add edi, edi
mov dword [esp + 0x68], edi
lea ebx, [ebx]
cmp dword [esp + 0x2c], 0
je 0x5ee5a7
mov edi, dword [esp + 0x64]
cmp edi, dword [esp + 0x34]
ja 0x5ee3fa
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5ee3fa
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5ee489
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5ee489
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5ee518
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], edi
ja 0x5ee518
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5ee5a7
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], edi
ja 0x5ee5a7
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x50]
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], edi
sar ebx, 5
and ebx, 0x3f
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
movzx ebx, di
mov edi, dword [esp + 0x2c]
movzx edi, word [edi]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov dword [esp + 0x44], edi
and edi, 0x8210820
mov ebx, edi
shr ebx, 5
sub edi, ebx
and edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov word [ebx], di
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5ee5ef
sub dword [esp + 0x4c], 1
mov edi, 1
add dword [esp + 0x58], edi
add ebp, edi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x1c]
add dword [esp + 0x54], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x50], edi
lea edi, [ebp*4]
add dword [esp + 0x14], edi
lea eax, [eax + edi + 2]
jmp 0x5ee6ca
mov edi, dword [esp + 0x28]
add edi, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], edi
jl 0x5ee656
cmp edi, ebx
jl 0x5ee640
sub edi, ebx
mov dword [esp + 0x28], edi
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov ebx, 2
add dword [esp + 0x68], ebx
sub dword [esp + 0x5c], ebx
sub edx, edi
sub dword [esp + 0x74], 4
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x74]
mov ebx, 2
sub ebx, edi
sub eax, edi
add dword [esp + 0x14], ebx
jmp 0x5ee6ca
cmp edi, ebx
mov dword [esp + 0x2c], 1
jl 0x5ee692
sub edi, ebx
mov ebx, 1
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov dword [esp + 0x28], edi
mov edi, 2
add dword [esp + 0x68], edi
sub dword [esp + 0x5c], edi
sub edx, ebx
sub dword [esp + 0x74], 4
jmp 0x5ee697
mov ebx, 1
mov edi, dword [esp + 0x1c]
add dword [esp + 0x54], edi
mov edi, dword [esp + 0x3c]
add dword [esp + 0x50], edi
add dword [esp + 0x58], ebx
sub dword [esp + 0x4c], 1
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov edi, ebp
sub edi, edx
add edi, edi
add edi, edi
lea eax, [eax + edi + 2]
lea edi, [ebx + edi + 2]
mov dword [esp + 0x14], edi
test edx, edx
jg 0x5ee360
mov eax, dword [esp + 0x90]
lea edi, [edx + eax]
sub edi, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
sub eax, ebp
cmp edi, dword [esp + 0x34]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5ee780
mov ebx, dword [esp + 0x84]
sub ebx, edi
sub eax, edi
cmp eax, ebx
ja 0x5ee780
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov edi, dword [esp + 0x90]
add edi, edx
lea eax, [eax + edi*2]
mov edi, ecx
sar edi, 0xb
mov di, word [esi + edi*4]
shl di, 6
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
add di, word [esi + ebx*4]
mov ebx, ecx
shl di, 5
and ebx, 0x1f
add di, word [esi + ebx*4]
mov dword [esp + 0x2c], eax
movzx ebx, di
movzx edi, word [eax]
and ebx, 0xf7def7df
or edi, 0x8210820
sub edi, ebx
mov eax, edi
and eax, 0x8210820
mov ebx, eax
shr ebx, 5
sub eax, ebx
and eax, edi
mov edi, dword [esp + 0x2c]
mov word [edi], ax
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov ebx, ebp
sub ebx, edi
sub edx, edi
cmp ebx, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov edi, ecx
lea edx, [ebp + eax*2]
mov eax, ecx
sar eax, 0xb
mov ax, word [esi + eax*4]
shl ax, 6
sar edi, 5
and edi, 0x3f
add ax, word [esi + edi*4]
and ecx, 0x1f
shl ax, 5
add ax, word [esi + ecx*4]
movzx ecx, word [edx]
movzx eax, ax
and eax, 0xf7def7df
or ecx, 0x8210820
sub ecx, eax
mov eax, ecx
and eax, 0x8210820
mov esi, eax
shr esi, 5
pop edi
sub eax, esi
pop esi
and eax, ecx
pop ebp
mov word [edx], ax
pop ebx
add esp, 0x78
ret
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x80]
sub ebx, dword [esp + 0x78]
sub edi, esi
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x78]
mov dword [esp + 0x34], ebx
cmp edi, ebx
ja 0x5ee8df
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, esi
sub ebx, esi
cmp ebx, edi
ja 0x5ee8d8
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x94]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea esi, [esi + edi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
mov dword [esp + 0x44], esi
and edi, 0xf800
and esi, 0x7e0
mov ebx, ecx
and ebx, 0xf800
imul edi, ebx
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x90]
add edi, esi
mov dword [esp + 0x24], edi
sub edi, dword [esp + 0x78]
cmp edi, dword [esp + 0x34]
ja 0x5ee994
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub edi, esi
sub ebx, esi
cmp ebx, edi
ja 0x5ee98d
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x94]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea esi, [esi + edi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
mov dword [esp + 0x44], esi
and edi, 0xf800
and esi, 0x7e0
mov ebx, ecx
and ebx, 0xf800
imul edi, ebx
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov esi, dword [esp + 0x98]
xor edi, edi
test eax, eax
jge 0x5ee9b0
add eax, 6
add dword [esp + 0x14], 4
mov edi, 1
jmp 0x5eea2a
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], esi
jl 0x5ee9f4
cmp esi, ebx
jl 0x5ee9db
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
mov edi, 1
lea esi, [edx*4]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5eea2c
cmp esi, ebx
mov edi, 1
jl 0x5eea0c
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
lea ebx, [edx*4]
mov esi, 4
sub esi, ebx
mov ebx, dword [esp + 0x14]
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
mov ebp, edi
test edx, edx
jle 0x5eee23
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
jmp 0x5eead8
mov esi, dword [esp + 0x68]
test edi, edi
je 0x5eed1c
mov edi, dword [esp + 0x64]
cmp edi, dword [esp + 0x34]
ja 0x5eeb6f
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5eeb6f
mov edi, dword [esp + 0x54]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
mov dword [esp + 0x44], esi
and ebx, 0xf800
and edi, 0xf800
imul edi, ebx
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x60], edi
ja 0x5eec02
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x58], edi
ja 0x5eec02
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
mov dword [esp + 0x44], esi
and ebx, 0xf800
and edi, 0xf800
imul edi, ebx
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x64], edi
ja 0x5eec8d
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], edi
ja 0x5eec8d
mov edi, dword [esp + 0x50]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
and ebx, 0xf800
mov dword [esp + 0x44], esi
and edi, 0xf800
imul edi, ebx
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5eed1c
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x4c], esi
ja 0x5eed1c
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
add esi, edi
add esi, dword [esp + 0x20]
mov ebx, ecx
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov edi, esi
and ebx, 0xf800
mov dword [esp + 0x44], esi
and edi, 0xf800
imul edi, ebx
and esi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul esi, ebx
shr esi, 0xb
and esi, 0x7e0
shr edi, 0x10
and edi, 0xf800
or edi, esi
mov esi, dword [esp + 0x44]
and esi, 0x1f
mov ebx, ecx
and ebx, 0x1f
imul esi, ebx
shr esi, 5
or edi, esi
mov esi, dword [esp + 0x2c]
mov word [esi], di
xor edi, edi
test eax, eax
jge 0x5eed59
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
mov edi, 1
add dword [esp + 0x58], edi
sub dword [esp + 0x4c], edi
add ebp, edi
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea eax, [eax + esi + 2]
jmp 0x5eee1b
mov esi, dword [esp + 0x98]
add dword [esp + 0x28], esi
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x30]
jl 0x5eedb8
cmp dword [esp + 0x28], esi
jl 0x5eeda2
sub dword [esp + 0x28], esi
mov edi, 1
add dword [esp + 0x64], edi
sub dword [esp + 0x60], edi
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, edi
sub dword [esp + 0x74], 4
mov esi, dword [esp + 0x74]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5eee1b
cmp dword [esp + 0x28], esi
mov edi, 1
mov ebx, edi
jl 0x5eede9
sub dword [esp + 0x28], esi
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
sub dword [esp + 0x74], 4
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
add dword [esp + 0x58], ebx
sub dword [esp + 0x4c], edi
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
jg 0x5eead4
mov eax, dword [esp + 0x90]
lea esi, [edx + eax]
mov eax, dword [esp + 0x94]
mov edi, esi
sub edi, dword [esp + 0x78]
sub eax, ebp
cmp edi, dword [esp + 0x34]
ja 0x5eeec3
mov ebx, dword [esp + 0x84]
sub ebx, dword [esp + 0x7c]
mov edi, eax
sub edi, dword [esp + 0x7c]
cmp edi, ebx
ja 0x5eeec3
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov edi, ecx
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
and edi, 0xf800
mov esi, eax
and esi, 0xf800
imul esi, edi
mov edi, eax
and edi, 0x7e0
mov ebx, ecx
and ebx, 0x7e0
imul edi, ebx
shr edi, 0xb
shr esi, 0x10
and edi, 0x7e0
and esi, 0xf800
or esi, edi
and eax, 0x1f
mov edi, ecx
and edi, 0x1f
imul eax, edi
shr eax, 5
or esi, eax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x84]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x7c]
mov edi, ebp
sub edi, edx
sub esi, edx
cmp edi, esi
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
mov esi, ecx
lea ebp, [ebp + eax*2]
movzx eax, word [ebp]
and esi, 0xf800
mov edx, eax
and edx, 0xf800
imul edx, esi
mov esi, eax
and esi, 0x7e0
mov edi, ecx
and edi, 0x7e0
imul esi, edi
and eax, 0x1f
and ecx, 0x1f
imul eax, ecx
shr edx, 0x10
shr esi, 0xb
and esi, 0x7e0
and edx, 0xf800
or edx, esi
pop edi
shr eax, 5
or edx, eax
pop esi
mov word [ebp], dx
pop ebp
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x80]
sub esi, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
cmp esi, dword [esp + 0x34]
ja 0x5ef061
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5ef05d
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
shr esi, 5
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
add esi, ebx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5ef14e
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5ef14a
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
shr esi, 5
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5ef17f
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5ef1fc
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], esi
jl 0x5ef1c2
cmp esi, ebx
jl 0x5ef1a9
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
mov dword [esp + 0x2c], 1
lea esi, [edx*4]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5ef1fc
cmp esi, ebx
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5ef1de
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
lea ebx, [edx*4]
mov esi, 4
sub esi, ebx
mov ebx, dword [esp + 0x14]
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
mov dword [esp + 0x18], eax
jle 0x5ef6f9
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
cmp dword [esp + 0x2c], 0
je 0x5ef5ca
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5ef375
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ef375
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5ef43c
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x58], esi
ja 0x5ef43c
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5ef503
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5ef503
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5ef5ca
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5ef5ca
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
add eax, esi
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
movzx ebx, ax
mov esi, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, ax
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr esi, 5
and esi, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, esi
sar ebx, 6
sub ebx, esi
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5ef612
sub dword [esp + 0x48], 1
mov esi, 1
add dword [esp + 0x58], esi
add ebp, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x4c], esi
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea eax, [eax + esi + 2]
jmp 0x5ef6ed
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
jl 0x5ef679
cmp ebx, esi
jl 0x5ef663
sub ebx, esi
mov esi, 1
add dword [esp + 0x64], esi
sub dword [esp + 0x60], esi
mov dword [esp + 0x28], ebx
mov ebx, 2
add dword [esp + 0x68], ebx
sub dword [esp + 0x5c], ebx
sub edx, esi
sub dword [esp + 0x74], 4
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x74]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5ef6ed
cmp ebx, esi
mov dword [esp + 0x2c], 1
jl 0x5ef6b5
sub ebx, esi
mov dword [esp + 0x28], ebx
mov ebx, 1
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
sub dword [esp + 0x74], 4
jmp 0x5ef6ba
mov ebx, 1
mov esi, dword [esp + 0x1c]
add dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x4c], esi
add dword [esp + 0x58], ebx
sub dword [esp + 0x48], 1
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
mov dword [esp + 0x18], eax
jg 0x5ef2a3
mov eax, dword [esp + 0x90]
lea esi, [edx + eax]
sub esi, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
sub eax, ebp
cmp esi, dword [esp + 0x34]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5ef7e2
mov ebx, dword [esp + 0x84]
sub ebx, esi
sub eax, esi
cmp eax, ebx
ja 0x5ef7e2
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
add esi, edx
lea eax, [eax + esi*2]
movzx esi, word [eax]
mov dword [esp + 0x2c], eax
movzx ebx, si
mov eax, ebx
shr ebx, 0xb
mov dword [esp + 0x50], ebx
movzx ebx, si
and ebx, 0x1f
mov dword [esp + 0x10], ebx
shr eax, 5
and eax, 0x3f
mov ebx, ecx
sar ebx, 5
and ebx, 0x3f
imul ebx, eax
sar ebx, 6
sub ebx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x38], esi
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, ecx
sar ebx, 0xb
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov ax, word [esp + 0x38]
shr ax, 0xb
add ax, word [edi + ebx*4]
shl si, 5
shl ax, 0xb
or si, ax
mov eax, dword [esp + 0x10]
mov ebx, ecx
and ebx, 0x1f
imul ebx, eax
sar ebx, 5
sub ebx, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + ebx*4]
or si, ax
mov eax, dword [esp + 0x2c]
mov word [eax], si
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov ebx, ebp
sub ebx, esi
sub edx, esi
cmp ebx, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
lea ebp, [ebp + eax*2]
movzx eax, word [ebp]
mov dword [esp + 0x2c], ebp
movzx esi, ax
mov ebp, ecx
sar ebp, 5
and ebp, 0x3f
mov edx, esi
shr edx, 5
and edx, 0x3f
imul ebp, edx
sar ebp, 6
sub ebp, edx
mov edx, eax
shr edx, 5
and edx, 0x3f
add dx, word [edi + ebp*4]
mov ebp, ecx
mov ebx, esi
shr ebx, 0xb
sar ebp, 0xb
imul ebp, ebx
and esi, 0x1f
and ecx, 0x1f
imul ecx, esi
sar ebp, 5
sub ebp, ebx
mov bx, ax
shr bx, 0xb
add bx, word [edi + ebp*4]
sar ecx, 5
sub ecx, esi
and eax, 0x1f
add ax, word [edi + ecx*4]
shl bx, 0xb
shl dx, 5
pop edi
or dx, bx
pop esi
or dx, ax
mov eax, dword [esp + 0x24]
pop ebp
mov word [eax], dx
pop ebx
add esp, 0x78
ret
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x80]
sub esi, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
cmp esi, dword [esp + 0x34]
ja 0x5ef99e
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5ef99a
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea esi, [eax + esi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov dword [esp + 0x38], esi
movzx esi, si
mov dword [esp + 0x44], esi
mov eax, ecx
not eax
movzx eax, ax
mov ebx, eax
shr esi, 5
shr ebx, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, dword [esp + 0x38]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x38]
shr bx, 0xb
add bx, word [edi + eax*4]
mov eax, dword [esp + 0x44]
shl si, 5
shl bx, 0xb
or si, bx
mov word [esp + 0x10], si
mov esi, dword [esp + 0x58]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x98]
add esi, ebx
mov dword [esp + 0x24], esi
sub esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x34]
ja 0x5efa87
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
sub esi, eax
sub ebx, eax
cmp ebx, esi
ja 0x5efa83
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x94]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
lea esi, [eax + esi*2]
mov dword [esp + 0x2c], esi
movzx esi, word [esi]
mov dword [esp + 0x38], esi
movzx esi, si
mov dword [esp + 0x44], esi
mov eax, ecx
not eax
movzx eax, ax
mov ebx, eax
shr esi, 5
shr ebx, 5
and esi, 0x3f
and ebx, 0x3f
sub ebx, esi
mov esi, dword [esp + 0x38]
shr esi, 5
and esi, 0x3f
add si, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], eax
shr eax, 0xb
shr ebx, 0xb
sub eax, ebx
movzx ebx, word [esp + 0x38]
shr bx, 0xb
add bx, word [edi + eax*4]
mov eax, dword [esp + 0x44]
shl si, 5
shl bx, 0xb
or si, bx
mov word [esp + 0x10], si
mov esi, dword [esp + 0x58]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
jge 0x5efab8
mov ebp, 1
add eax, 6
add dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jmp 0x5efb35
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], esi
jl 0x5efafb
cmp esi, ebx
jl 0x5efae2
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
mov dword [esp + 0x2c], 1
lea esi, [edx*4]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5efb35
cmp esi, ebx
mov ebp, 1
mov dword [esp + 0x2c], ebp
jl 0x5efb17
mov edx, esi
sub edx, ebx
mov dword [esp + 0x28], edx
lea edx, [esi - 1]
lea ebx, [edx*4]
mov esi, 4
sub esi, ebx
mov ebx, dword [esp + 0x14]
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
mov dword [esp + 0x18], eax
jle 0x5f0026
lea esi, [edx*4]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x90]
add esi, edx
add esi, esi
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x7c]
mov esi, edx
sub esi, dword [esp + 0x78]
add esi, dword [esp + 0x90]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x94]
add esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov esi, ebp
sub esi, ebx
add esi, dword [esp + 0x94]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x1c]
neg esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x94]
sub esi, ebx
sub esi, ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x90]
sub esi, dword [esp + 0x78]
sub esi, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x94]
sub esi, ebp
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x90]
sub esi, edx
add esi, esi
mov dword [esp + 0x68], esi
lea esp, [esp]
cmp dword [esp + 0x2c], 0
je 0x5efef7
mov esi, dword [esp + 0x64]
cmp esi, dword [esp + 0x34]
ja 0x5efcae
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x54], esi
ja 0x5efcae
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5efd71
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x54], esi
ja 0x5efd71
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x64], esi
ja 0x5efe34
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5efe34
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x68]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x60], esi
ja 0x5efef7
mov esi, dword [esp + 0x84]
sub esi, dword [esp + 0x7c]
cmp dword [esp + 0x48], esi
ja 0x5efef7
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
add eax, esi
add eax, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
not esi
movzx esi, si
and eax, 0x3f
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
shr ebx, 0xb
mov dword [esp + 0x58], esi
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shl ax, 5
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x2c], 0
jge 0x5eff3f
sub dword [esp + 0x48], 1
mov esi, 1
add dword [esp + 0x54], esi
add ebp, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x1c]
add dword [esp + 0x50], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x4c], esi
lea esi, [ebp*4]
add dword [esp + 0x14], esi
lea eax, [eax + esi + 2]
jmp 0x5f001a
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x98]
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ebx
jl 0x5effa6
cmp ebx, esi
jl 0x5eff90
sub ebx, esi
mov esi, 1
add dword [esp + 0x64], esi
sub dword [esp + 0x60], esi
mov dword [esp + 0x28], ebx
mov ebx, 2
add dword [esp + 0x68], ebx
sub dword [esp + 0x5c], ebx
sub edx, esi
sub dword [esp + 0x74], 4
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x74]
mov ebx, 2
sub ebx, esi
sub eax, esi
add dword [esp + 0x14], ebx
jmp 0x5f001a
cmp ebx, esi
mov dword [esp + 0x2c], 1
jl 0x5effe2
sub ebx, esi
mov dword [esp + 0x28], ebx
mov ebx, 1
add dword [esp + 0x64], ebx
sub dword [esp + 0x60], ebx
mov esi, 2
add dword [esp + 0x68], esi
sub dword [esp + 0x5c], esi
sub edx, ebx
sub dword [esp + 0x74], 4
jmp 0x5effe7
mov ebx, 1
mov esi, dword [esp + 0x1c]
add dword [esp + 0x50], esi
mov esi, dword [esp + 0x3c]
add dword [esp + 0x4c], esi
add dword [esp + 0x54], ebx
sub dword [esp + 0x48], 1
add ebp, ebx
mov ebx, dword [esp + 0x14]
mov esi, ebp
sub esi, edx
add esi, esi
add esi, esi
lea eax, [eax + esi + 2]
lea esi, [ebx + esi + 2]
mov dword [esp + 0x14], esi
test edx, edx
mov dword [esp + 0x18], eax
jg 0x5efbe0
mov eax, dword [esp + 0x90]
lea esi, [edx + eax]
sub esi, dword [esp + 0x78]
mov eax, dword [esp + 0x94]
sub eax, ebp
cmp esi, dword [esp + 0x34]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
ja 0x5f010d
mov ebx, dword [esp + 0x84]
sub eax, esi
sub ebx, esi
cmp eax, ebx
ja 0x5f010d
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
add esi, edx
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
movzx eax, word [eax]
mov dword [esp + 0x38], eax
movzx eax, ax
mov dword [esp + 0x44], eax
shr eax, 5
and eax, 0x3f
mov esi, ecx
not esi
movzx esi, si
mov ebx, esi
shr ebx, 5
and ebx, 0x3f
sub ebx, eax
mov eax, dword [esp + 0x38]
shr eax, 5
and eax, 0x3f
add ax, word [edi + ebx*4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], esi
shr ebx, 0xb
shr esi, 0xb
sub esi, ebx
movzx ebx, word [esp + 0x38]
shr bx, 0xb
add bx, word [edi + esi*4]
mov esi, dword [esp + 0x58]
shl ax, 5
shl bx, 0xb
or ax, bx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x10]
and eax, 0x1f
and esi, 0x1f
sub esi, eax
mov eax, dword [esp + 0x38]
and eax, 0x1f
add ax, word [edi + esi*4]
mov esi, dword [esp + 0x7c]
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
mov eax, dword [esp + 0x90]
sub eax, edx
mov edx, dword [esp + 0x94]
add ebp, edx
mov edx, eax
sub edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x34]
ja case.0x5ecb10.5
mov edx, dword [esp + 0x84]
mov ebx, ebp
sub ebx, esi
sub edx, esi
cmp ebx, edx
ja case.0x5ecb10.5
imul ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x20]
lea ebp, [ebp + eax*2]
movzx eax, word [ebp]
mov dword [esp + 0x2c], ebp
movzx edx, ax
not ecx
movzx ecx, cx
mov esi, ecx
shr esi, 5
mov ebx, edx
shr ebx, 5
and ebx, 0x3f
and esi, 0x3f
sub esi, ebx
mov ebx, eax
shr ebx, 5
and ebx, 0x3f
add bx, word [edi + esi*4]
mov esi, ecx
mov ebp, edx
shr ebp, 0xb
shr esi, 0xb
sub esi, ebp
mov bp, ax
shr bp, 0xb
add bp, word [edi + esi*4]
and edx, 0x1f
and ecx, 0x1f
and eax, 0x1f
sub ecx, edx
add ax, word [edi + ecx*4]
shl bp, 0xb
shl bx, 5
or bx, bp
or bx, ax
mov eax, dword [esp + 0x2c]
mov word [eax], bx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret