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

Disassembly:
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x78]
xor ecx, ecx
mov dword [esp + 0x30], ecx
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x7c]
mov eax, ecx
mov ebx, dword [esp + 0x74]
shr eax, 0x13
and eax, 1
shr ecx, 0x11
mov esi, dword [esp + 0x70]
and ecx, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [ebx + 0x1c]
lea eax, [esi - 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov eax, ecx
div esi
mov eax, dword [esp + 0x14]
sub ecx, edx
mov dword [esp + 0x40], 0xfc00
mov dword [esp + 0x44], ecx
xor edx, edx
mov edi, dword [esp + 0x68]
mov dword [eax + 0x18], 0
lea ebp, [ecx + eax]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x3c], 0xdc00
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [eax + 0x4c], 0xffffffff
mov dword [eax + 0x1c], edx
mov dword [eax], edi
mov dword [eax + 0x10], esi
test edx, edx
je 0x560c56
sub eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x4c], eax
mov eax, edx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x560c50
movzx eax, dx
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x78]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x10]
lea eax, [edx + 1]
mov dword [ebp + 0x18], eax
cmp edx, ecx
jae 0x56ac23
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x560ca4
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x50
ret
mov ebp, eax
jmp 0x560ca8
mov ebp, dword [esp + 0x78]
jmp 0x560ca4
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov bl, byte [edi]
mov byte [eax + 0x31], bl
movzx eax, bl
mov byte [esp + 0x13], bl
cmp eax, 0xa6
ja case.0x5688c1.15
movzx eax, byte [eax + 0x56ad8c]
jmp dword [eax*4 + 0x56ac30]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0xffffffff
jne 0x560d48
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x5688c1.15
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x18]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [esp + 0x28], ecx
or eax, 0x10000
sub edx, esi
cmp dword [ecx + 0x1c], eax
je 0x560d0f
mov eax, dword [edx + 0x4c]
jmp 0x560ce4
mov eax, dword [esp + 0x14]
lea esi, [edi + edi]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebp + 0x4c]
mov edi, dword [esp + 0x14]
sar eax, 1
mov dword [edi + ecx*4 + 0x54], eax
mov eax, edi
mov eax, dword [eax + 0x38]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [edi + ecx*4 + 0x58], eax
mov eax, edi
cmp ecx, dword [eax + 0x50]
jb 0x560d44
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
lea eax, [ecx + eax*2]
jmp 0x560c9a
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x560d6b
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x14]
mov esi, 0xfffffc19
mov dword [esp + 0x30], eax
jmp 0x561000
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0xffffffff
je 0x560dee
mov eax, dword [eax + 0x4c]
nop word [eax + eax]
cmp eax, 0xffffffff
je case.0x5688c1.15
mov ecx, dword [esp + 0x74]
mov esi, dword [ecx + 0x18]
add esi, eax
mov ecx, esi
mov dword [esp + 0x28], esi
sub ecx, dword [esp + 0x70]
mov eax, dword [esi + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x560dc0
mov eax, dword [ecx + 0x4c]
jmp 0x560d90
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov eax, dword [eax + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 0x3c]
mov dword [ecx + 0x3c], eax
add dword [ecx], 4
jmp 0x560ca8
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x560e20
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x78]
test al, 4
jne 0x560ff2
test al, 8
je 0x560e20
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je 0x560ff2
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x54]
jae 0x56ab4e
mov ebp, dword [esp + 0x78]
mov eax, dword [eax + 0x7c]
or eax, dword [ebp + 0x78]
test eax, 0x20000000
je 0x56ab4c
test bl, bl
jne 0x56ab42
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x78]
mov esi, dword [eax + 0x88]
test esi, esi
je 0x560e95
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 0x54]
cmp ecx, edx
jae 0x560edf
push dword [esp + 0x18]
add eax, 0x8c
push eax
push edx
push esi
push ecx
call fcn.00590e50
add esp, 0x14
test eax, eax
je 0x560ed7
mov ebp, dword [esp + 0x78]
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x8c]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
lea eax, [esi + esi]
mov ecx, dword [ebp + 0x54]
sub ecx, eax
cmp edx, ecx
ja 0x560edd
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x560edd
cmp esi, 1
je case.default.0x5688de
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
jne 0x560edd
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x78]
jmp 0x560edf
mov eax, ebp
movzx eax, word [eax + 0x3c]
mov ebp, dword [esp + 0x78]
mov edx, eax
test ax, ax
je case.0x560ccc.13
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, 2
cmp ecx, eax
jne case.0x560ccc.13
mov eax, ebp
cmp dword [eax + 0x88], 0
jne 0x560f31
cmp dword [eax + 0x8c], 2
jne 0x560f31
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.0x560ccc.13
mov eax, ebp
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov ebp, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x560f72
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x560f6b
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x560f59
cmp dword [eax + 0x24], 0
je 0x560f69
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov ebp, eax
xor esi, esi
jmp 0x560ff8
mov edx, dword [esp + 0x18]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x560fa8
cmp ecx, dword [ebp + 0x54]
jae 0x560fa8
mov ax, word [ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x560fa4
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x14]
add dword [eax], 2
mov esi, dword [esp + 0x70]
jmp 0x560ca8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jb 0x56104a
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x560ff2
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x560fe2
cmp dword [eax + 0x24], 0
je 0x560ff2
cmp edx, 1
mov dword [eax + 0x1c], 1
ja 0x5627e4
xor esi, esi
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x56100b
mov dword [ebp + 0x60], eax
mov ebx, dword [esp + 0x14]
cmp dword [ebx + 0x18], 0
je 0x56abe5
sub ebx, dword [ebx + 0x10]
mov eax, dword [ebp + 0x98]
mov edi, ebx
mov dword [esp + 0x14], ebx
or dword [eax + 0x3c], 2
movzx eax, byte [ebx + 0x30]
dec eax
cmp eax, 0xe0
ja case.0x5688c1.15
movzx eax, byte [eax + 0x56af2c]
jmp dword [eax*4 + 0x56ae34]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
mov ebp, dword [esp + 0x78]
jmp 0x560ca8
mov eax, dword [esp + 0x14]
test edx, edx
je 0x561134
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], 1
lea eax, [edi + 2]
mov dword [ecx], eax
mov ecx, 0xfc00
mov ax, word [eax]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [esp + 0x14]
jne 0x5610a5
mov dword [eax + 0xc], 2
mov edx, 2
jmp 0x5610aa
mov edx, 1
mov ecx, dword [eax + 0x38]
mov esi, dword [ebp + 0x54]
mov eax, esi
sub eax, ecx
sar eax, 1
cmp edx, eax
jbe 0x5610fd
cmp ecx, esi
jb 0x560f6b
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x560f6b
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x5610e4
cmp dword [eax + 0x24], 0
je 0x560f69
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov ebp, eax
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebx]
movzx edx, word [eax]
add eax, 2
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
lea eax, [ecx + 2]
mov dword [ebx], eax
mov eax, ebx
cmp si, dx
jne 0x56112d
add dword [eax + 0xc], 0xffffffff
jne 0x561101
jmp 0x560ca0
xor esi, esi
jmp 0x560ffc
mov esi, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x56117b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x561170
mov eax, dword [esp + 0x78]
cmp esi, dword [eax + 0x5c]
ja 0x56115e
cmp dword [eax + 0x24], 0
je 0x56116e
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
mov ebp, eax
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
movzx edx, word [edi + 2]
lea eax, [esi + 2]
mov ebx, dword [esp + 0x14]
movzx ecx, word [esi]
cmp dx, cx
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x38], eax
je 0x56a222
xor esi, esi
mov eax, ebx
jmp 0x561000
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ecx + 0x54]
jb 0x5611eb
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x5611dc
mov eax, dword [esp + 0x78]
cmp ebp, dword [eax + 0x5c]
ja 0x5611cc
cmp dword [eax + 0x24], 0
je 0x5611dc
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
xor esi, esi
mov ebp, dword [esp + 0x78]
jmp 0x561000
test edx, edx
je 0x561329
add edi, 2
mov dword [eax + 0xc], 1
mov dword [eax], edi
mov ebx, 1
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x561241
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
mov eax, dword [esp + 0x14]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x561245
mov eax, dword [esp + 0x14]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x561295
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x561260
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov edx, dword [esp + 0x18]
je 0x561279
mov eax, dword [esp + 0x14]
xor esi, esi
mov ebp, ecx
jmp 0x561000
mov ecx, dword [esp + 0x14]
lea eax, [edi + 2]
mov esi, dword [esp + 0x70]
mov dword [ecx], eax
lea eax, [ebp + 2]
mov ebp, dword [esp + 0x78]
mov dword [ecx + 0x38], eax
jmp 0x560ca8
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5612ce
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
add edx, 0x10000
mov dword [ecx + 0x38], eax
jmp 0x5612d2
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
lea eax, [edi + ebx*2]
mov dword [ecx], eax
cmp edx, esi
je 0x560ca0
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x698ffc]
add eax, esi
cmp edx, eax
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x560ca8
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
cmp dword [esp + 0x38], 0
je 0x5613ac
movzx esi, word [edi + 2]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x561364
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x56134f
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
je 0x5613e1
xor esi, esi
mov ebp, ecx
jmp 0x560ff8
cmp edx, esi
je 0x5613e1
mov eax, esi
test eax, eax
jns 0x561371
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x56138d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x698ffc]
add eax, esi
cmp edx, eax
je 0x5613e1
jmp 0x560ff2
movzx eax, word [edi + 2]
mov ebx, 0xff
mov edx, eax
cmp ax, bx
ja 0x5613c3
mov eax, dword [ecx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, bx
ja 0x5613d9
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x560ff2
mov ecx, dword [esp + 0x14]
lea eax, [ebp + 2]
mov dword [ecx + 0x38], eax
lea eax, [edi + 4]
mov dword [ecx], eax
mov ebp, dword [esp + 0x78]
jmp 0x560ca0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x560fc8
lea eax, [edi + 2]
test edx, edx
je 0x5614fc
mov edi, dword [esp + 0x14]
lea esi, [eax + 2]
mov dword [edi], eax
movzx edx, word [eax]
mov eax, edi
mov dword [eax], esi
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x561454
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [esi + 2]
add edx, 0x10000
mov dword [edi], eax
mov eax, dword [esp + 0x14]
movzx esi, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x561492
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
add esi, 0x10000
mov dword [ecx + 0x38], eax
mov ebp, dword [esp + 0x78]
cmp edx, esi
jne 0x5614a1
xor esi, esi
jmp 0x560ff8
cmp bl, 0x20
jne 0x560ca0
cmp edx, 0x7f
jbe 0x5614da
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x698ffc]
jmp 0x5614e1
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
jne 0x560ca8
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
cmp dword [esp + 0x38], 0
lea esi, [ecx + 2]
mov ebp, dword [esp + 0x78]
je 0x561598
movzx ebx, word [ecx]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], esi
movzx edx, word [eax]
lea eax, [edi + 4]
mov dword [ecx], eax
cmp edx, ebx
jne 0x56152b
xor esi, esi
jmp 0x560ff8
cmp byte [esp + 0x13], 0x20
mov esi, dword [esp + 0x70]
jne 0x560ca4
cmp edx, 0x7f
jbe 0x56157a
mov eax, edx
test eax, eax
jns 0x561548
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x561564
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x698ffc]
jmp 0x561581
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [esp + 0x18]
jne 0x560ca8
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
movzx edx, word [eax]
mov eax, dword [esp + 0x14]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.default.0x5688de
cmp bl, 0x20
jne 0x5615c9
cmp edx, 0xff
ja 0x5615c9
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.default.0x5688de
lea eax, [edi + 4]
jmp 0x560c9a
mov ecx, dword [esp + 0x14]
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x56170f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x56170b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 1
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x56170b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x56170b
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x56170b
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x56170b
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x56170b
movzx ecx, word [edi]
cmp bl, 0x2e
mov edx, dword [esp + 0x14]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [eax], edi
mov eax, dword [ecx*4 + 0x6983e0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x69840c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x698438]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x561b15
mov dword [eax + 0xc], 1
mov dword [eax + 8], edi
movzx edx, word [edi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x14]
jne 0x561767
movzx esi, word [edi + 2]
and edx, 0x3ff
mov ecx, dword [esp + 0x14]
and esi, 0x3ff
shl edx, 0xa
mov dword [eax + 0xc], 2
or esi, edx
lea eax, [edi + 4]
add esi, 0x10000
mov dword [ecx], eax
jmp 0x56177e
mov ecx, dword [eax + 0xc]
mov esi, edx
lea eax, [edi + 2]
mov edi, dword [esp + 0x14]
mov dword [edi], eax
cmp ecx, 1
jbe 0x561b0c
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x31], 0x2e
jb 0x5617ca
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x698ffc]
add ecx, esi
cmp ecx, esi
je 0x5617ca
mov eax, dword [esp + 0x14]
add eax, 0x32
push eax
push ecx
call fcn.00591000
add esp, 8
jmp 0x5617cc
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], 1
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
cmp eax, 1
jb 0x561914
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x38]
jmp 0x5617f8
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0xc]
mov ebp, dword [ebp + 0x54]
add edi, edi
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x56186f
mov eax, dword [esp + 0x14]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x561829
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x561832
add ecx, 4
add edx, 4
sub esi, 4
jae 0x561818
cmp esi, 0xfffffffc
je 0x5618f3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x56186f
cmp esi, 0xfffffffd
je 0x5618f3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x56186f
cmp esi, 0xfffffffe
je 0x5618f3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x56186f
cmp esi, 0xffffffff
je 0x5618f3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5618f3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x561a78
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x561a78
mov edx, dword [esp + 0x14]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x5618b1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5618b6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5618a0
cmp esi, 0xfffffffc
je 0x5618f3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x561a78
cmp esi, 0xfffffffd
je 0x5618f3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x561a78
cmp esi, 0xfffffffe
je 0x5618f3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x561a78
cmp esi, 0xffffffff
je 0x5618f3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x561a78
mov eax, dword [esp + 0x14]
add ebx, edi
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x78]
inc ecx
mov dword [esp + 0x24], ecx
mov dword [eax + 0x38], ebx
mov eax, dword [eax + 0x20]
cmp ecx, eax
jbe 0x5617f4
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
mov ecx, dword [ecx + 0x24]
cmp eax, ecx
je 0x560ca8
cmp dword [esp + 0x1c], 0
je 0x56a64d
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
mov eax, dword [eax + 0x20]
cmp eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
jae 0x561af1
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x78]
add edi, edi
mov ebp, dword [eax + 0x54]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x5619d7
mov eax, dword [esp + 0x14]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x561991
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x56199a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x561980
cmp esi, 0xfffffffc
je 0x561a54
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5619d7
cmp esi, 0xfffffffd
je 0x561a54
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5619d7
cmp esi, 0xfffffffe
je 0x561a54
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5619d7
cmp esi, 0xffffffff
je 0x561a54
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x561a54
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x561abd
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x561abd
mov edx, dword [esp + 0x14]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x561a16
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x561a1b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x561a05
cmp esi, 0xfffffffc
je 0x561a54
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x561abd
cmp esi, 0xfffffffd
je 0x561a54
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x561abd
cmp esi, 0xfffffffe
je 0x561a54
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x561abd
cmp esi, 0xffffffff
je 0x561a54
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x561abd
mov eax, dword [esp + 0x14]
add ebx, edi
mov edx, dword [esp + 0x24]
inc edx
mov dword [esp + 0x24], edx
mov dword [eax + 0x38], ebx
cmp edx, dword [eax + 0x24]
jb 0x561957
mov ebp, dword [esp + 0x78]
jmp 0x561af1
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb 0x560f6b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x560f6b
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x561aa4
cmp dword [eax + 0x24], 0
je 0x560f69
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
mov ebp, eax
xor esi, esi
jmp 0x560ff8
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb 0x561aed
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x561aed
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x561add
cmp dword [eax + 0x24], 0
je 0x561aed
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x1c], 2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x560ca8
mov ecx, dword [eax + 0x38]
jmp 0x568ef8
mov eax, dword [esp + 0x14]
mov dword [eax + 0x28], edx
jmp 0x561b26
movzx edx, word [edi]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x28], edx
lea eax, [edi + 2]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x561c7b
test ebx, ebx
jne 0x561b3a
cmp dword [esp + 0x38], ebx
je 0x561b6c
cmp edx, 0x7f
jbe 0x561b6c
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x698ffc]
add eax, edx
jmp 0x561b7f
cmp edx, 0xff
ja 0x561b7d
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x561b7f
mov eax, edx
mov ecx, dword [esp + 0x14]
mov edx, 1
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x20]
cmp esi, edx
jb 0x561bd1
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x560fc8
mov ebx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x561bc2
cmp dword [ebx + 0x2c], eax
jne 0x560ff2
mov eax, dword [esp + 0x14]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, esi
jbe 0x561ba0
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x78]
cmp esi, edx
je 0x560ca0
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x568608
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x561c4b
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x561c21
mov ebx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x561c10
cmp dword [ebx + 0x2c], eax
jne 0x561c4f
mov eax, dword [esp + 0x14]
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x561bf6
jmp 0x561c4b
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x561c4b
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x561c3b
cmp dword [eax + 0x24], 0
je 0x561c4b
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp ebp, 2
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
je 0x560ca8
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x560ca0
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1a
jmp 0x56aa42
mov edi, dword [eax + 0x20]
mov esi, 1
cmp edi, esi
jb 0x561cb4
mov edx, dword [eax + 0x38]
mov ebx, dword [esp + 0x14]
nop
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x54]
jae 0x561d05
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
jne 0x560ff2
inc esi
cmp esi, edi
jbe 0x561c90
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
cmp edi, edx
je 0x560ca4
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x568695
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, edx
jae 0x561d59
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x561d2f
mov ebx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x561d5d
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, edx
jb 0x561ce1
jmp 0x561d59
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x560ff2
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x5c]
ja 0x561d27
cmp dword [eax + 0x24], 0
je 0x560ff2
cmp ecx, 1
jmp 0x560fe5
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x561d59
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x561d49
cmp dword [eax + 0x24], 0
je 0x561d59
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp ebp, 2
mov ebp, dword [esp + 0x78]
je 0x560ca8
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x560ca0
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1c
jmp 0x56aa42
mov ecx, dword [esp + 0x14]
movzx eax, word [edi + 2]
add edi, 4
mov edx, edi
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x561ed5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 1
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov edx, edi
mov eax, ecx
mov dword [eax], edi
jmp 0x561ed1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov edx, edi
mov eax, ecx
mov dword [eax], edi
jmp 0x561ed1
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov edx, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x561ed1
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov edx, edi
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x561ed1
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov edx, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x561ed1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov edx, edi
mov eax, ecx
mov dword [eax], edi
jmp 0x561ed1
movzx ecx, word [edi]
cmp bl, 0x48
mov edx, dword [esp + 0x14]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [eax], edi
mov eax, dword [ecx*4 + 0x6983e0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x69840c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x698438]
mov dword [esp + 0x1c], eax
mov eax, edx
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x18], 0
movzx ecx, word [edi]
lea edi, [edx + 2]
mov dword [eax + 0x28], ecx
mov esi, ecx
mov dword [eax], edi
je 0x561f23
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x14]
jne 0x561f23
movzx esi, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and esi, 0x3ff
or esi, ecx
mov ecx, dword [esp + 0x14]
add esi, 0x10000
mov dword [eax + 0x28], esi
lea eax, [edx + 4]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x48
jb 0x562233
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x561f3b
cmp dword [esp + 0x38], edx
je 0x561f6d
cmp esi, 0x7f
jbe 0x561f6d
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x698ffc]
add eax, esi
jmp 0x561f80
cmp esi, 0xff
ja 0x561f7e
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + esi]
jmp 0x561f80
mov eax, esi
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x20]
mov eax, ebx
test edx, edx
je 0x5620f9
mov esi, 1
cmp ebx, esi
jb 0x562017
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
jmp 0x561fb4
mov eax, dword [esp + 0x14]
cmp edx, dword [ebp + 0x54]
jae 0x5620c4
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x561ff9
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x561ffd
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], ecx
je case.default.0x5688de
cmp dword [eax + 0x2c], ecx
je case.default.0x5688de
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x561fb0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x560ca4
cmp dword [esp + 0x1c], 0
je 0x56a42d
mov edx, dword [esp + 0x18]
mov eax, ecx
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
mov eax, dword [eax + 0x24]
test edx, edx
je 0x5621bf
cmp ebx, eax
jae 0x5621b9
nop dword [eax]
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x562178
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56209e
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], edx
je 0x56219e
cmp dword [eax + 0x2c], edx
je 0x56219e
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x562060
jmp 0x56219e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x5620e2
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov edx, 1
cmp ebx, edx
jb 0x562017
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
nop dword [eax]
cmp ecx, dword [ebp + 0x54]
jae 0x562143
mov esi, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [esi + 0x28], eax
je case.default.0x5688de
cmp dword [esi + 0x2c], eax
je case.default.0x5688de
mov eax, esi
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x562110
jmp 0x562017
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x562161
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x56219a
cmp ecx, dword [ebp + 0x5c]
ja 0x56218e
cmp dword [ebp + 0x24], 0
je 0x56219a
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
mov esi, dword [esp + 0x70]
je 0x560ca8
mov ecx, dword [eax + 0x38]
jmp 0x568fe3
mov eax, dword [esp + 0x14]
jmp 0x5621a2
cmp ebx, eax
jae 0x56222d
cmp ecx, dword [ebp + 0x54]
jae 0x5621e8
mov edx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x56220e
cmp dword [edx + 0x2c], eax
mov eax, edx
je 0x562212
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x5621c3
jmp 0x562212
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x56220e
cmp ecx, dword [ebp + 0x5c]
ja 0x5621fe
cmp dword [ebp + 0x24], 0
je 0x56220e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
je 0x560ca8
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x14]
jmp 0x568740
mov eax, dword [esp + 0x14]
jmp 0x562216
cmp dword [esp + 0x18], 0
mov esi, 1
mov ebx, dword [eax + 0x20]
mov eax, ebx
je 0x562390
cmp ebx, esi
jb 0x5622be
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
jmp 0x562264
mov eax, dword [esp + 0x14]
cmp edx, dword [ebp + 0x54]
jae 0x56235b
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5622a9
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x5622ad
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], ecx
je case.default.0x5688de
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x562260
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x560ca4
cmp dword [esp + 0x1c], 0
je 0x56a447
mov edx, dword [esp + 0x18]
mov eax, ecx
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
mov eax, dword [eax + 0x24]
test edx, edx
je 0x56243d
cmp ebx, eax
jae 0x562425
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x5623ff
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56233e
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], edx
je 0x562421
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x562300
jmp 0x562421
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562379
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
cmp ebx, 1
jb 0x5622be
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x5623ca
mov edi, dword [esp + 0x14]
movzx eax, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
cmp dword [edi + 0x28], eax
mov eax, edi
je 0x56112d
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x5623a0
jmp 0x5622be
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x5623e8
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x562421
cmp ecx, dword [ebp + 0x5c]
ja 0x562415
cmp dword [ebp + 0x24], 0
je 0x562421
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x5627e4
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
mov esi, dword [esp + 0x70]
je 0x560ca8
mov ebx, dword [esp + 0x14]
jmp 0x5690bf
cmp ebx, eax
jae 0x5624a6
cmp ecx, dword [ebp + 0x54]
jae 0x562461
mov edx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
mov eax, edx
je 0x56248b
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x562441
jmp 0x56248b
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x562487
cmp ecx, dword [ebp + 0x5c]
ja 0x562477
cmp dword [ebp + 0x24], 0
je 0x562487
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
je 0x560ca8
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x14]
jmp 0x5687d5
mov eax, dword [esp + 0x14]
jmp 0x56248f
mov ecx, dword [esp + 0x14]
lea eax, [edi + 2]
add edi, 0x22
mov dword [ecx + 8], eax
mov eax, ecx
mov dword [eax], edi
movzx ecx, word [edi]
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x5624cf
movzx eax, byte [eax + 0x56b018]
jmp dword [eax*4 + 0x56b010]
mov edx, dword [esp + 0x14]
lea eax, [edi + 2]
mov edi, dword [esp + 0x14]
mov ebx, dword [ecx*4 + 0x6982b0]
mov dword [esp + 0x1c], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov edx, dword [ecx*4 + 0x698258]
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x698284]
mov dword [edi + 0x24], eax
jmp 0x562554
mov eax, dword [esp + 0x14]
mov ecx, 0xffffffff
movzx edx, word [edi + 2]
mov dword [eax + 0x20], edx
movzx eax, word [edi + 4]
test eax, eax
cmove eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x24], eax
movzx eax, word [edi]
mov eax, dword [eax*4 + 0x6982b0]
mov dword [esp + 0x1c], eax
lea eax, [edi + 6]
mov dword [ecx], eax
jmp 0x562554
mov eax, dword [esp + 0x14]
mov edx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
cmp dword [esp + 0x18], 0
mov ebx, 1
mov dword [esp + 0x24], edx
mov eax, edx
je 0x562646
cmp edx, ebx
jb 0x5626da
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x38]
nop dword [eax]
cmp edi, dword [ebp + 0x54]
jae 0x562611
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5625c5
movzx eax, word [edi]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov eax, dword [esp + 0x14]
add esi, 0x10000
add edi, 2
mov dword [eax + 0x38], edi
jmp 0x5625c9
mov eax, dword [esp + 0x14]
cmp esi, 0xff
jbe 0x5625dd
cmp byte [eax + 0x31], 0x6e
je case.default.0x5688de
jmp 0x5625fc
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [esp + 0x14]
je 0x56112d
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x5626da
mov eax, dword [esp + 0x14]
jmp 0x562580
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edi, dword [ebp + 0x5c]
ja 0x56262f
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
cmp edx, 1
jb 0x5626da
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x38]
cmp edi, dword [ebp + 0x54]
jae 0x5626a5
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x562678
cmp byte [eax + 0x31], 0x6e
je case.default.0x5688de
jmp 0x562697
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [esp + 0x14]
je 0x56112d
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x5626da
mov eax, dword [esp + 0x14]
jmp 0x562656
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edi, dword [ebp + 0x5c]
ja 0x5626c3
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov ebp, dword [ebx + 0x24]
cmp eax, ebp
je 0x560c94
cmp dword [esp + 0x1c], 0
je 0x56a461
mov edx, dword [esp + 0x18]
mov eax, ebx
mov edi, dword [eax + 0x38]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x24]
test edx, edx
je 0x5627f7
cmp dword [esp + 0x24], eax
jae 0x5627f1
nop dword [eax]
mov eax, dword [esp + 0x78]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x5627c4
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562762
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
add esi, 0x10000
mov eax, dword [esp + 0x14]
cmp esi, 0xff
jbe 0x562790
cmp byte [eax + 0x31], 0x6e
jne 0x5627ab
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
jne 0x56a634
mov esi, dword [esp + 0x70]
jmp 0x560ca8
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
je 0x562774
mov eax, dword [esp + 0x14]
lea edi, [edi + ebx*2]
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, ebp
jb 0x562720
jmp 0x562774
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x562778
cmp edi, dword [ebp + 0x5c]
ja 0x5627dc
cmp dword [ebp + 0x24], 0
je 0x562778
mov dword [ebp + 0x1c], ebx
cmp ecx, 1
jbe 0x562778
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x50
ret
mov ebp, dword [esp + 0x78]
jmp 0x56277c
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jae 0x56289a
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
nop dword [eax + eax]
cmp edi, dword [ecx + 0x54]
jae 0x56286e
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x562842
cmp byte [eax + 0x31], 0x6e
jne 0x562861
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
jne 0x56857c
mov esi, dword [esp + 0x70]
jmp 0x560ca8
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
je 0x562826
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
add edi, 2
inc ebx
mov dword [eax + 0x38], edi
cmp ebx, ebp
jb 0x562810
jmp 0x562826
mov ebp, dword [esp + 0x78]
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x56282a
cmp edi, dword [ebp + 0x5c]
ja 0x562888
cmp dword [ebp + 0x24], 0
je 0x56282a
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
jmp 0x56282a
mov ebp, dword [esp + 0x78]
jmp 0x56282e
mov ecx, dword [esp + 0x14]
lea eax, [edi + 4]
mov dword [ecx + 8], eax
movzx eax, word [edi + 2]
lea edx, [edi + eax*2]
mov eax, ecx
mov dword [eax], edx
movzx edi, word [edx]
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x5628cb
movzx eax, byte [eax + 0x56b02c]
jmp dword [eax*4 + 0x56b024]
mov ecx, dword [esp + 0x14]
lea eax, [edx + 2]
mov esi, dword [edi*4 + 0x698284]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [edi*4 + 0x698258]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
mov eax, dword [edi*4 + 0x6982b0]
mov dword [ebx], esi
mov dword [esp + 0x1c], eax
jmp 0x56293a
mov eax, dword [esp + 0x14]
movzx ecx, word [edx + 2]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
movzx esi, word [edx + 4]
mov dword [ebx], esi
test esi, esi
jne 0x562923
mov dword [ebx], 0xffffffff
or esi, 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x6982b0]
mov dword [esp + 0x1c], eax
lea eax, [edx + 6]
mov edx, dword [esp + 0x14]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov edi, ebx
cmp ecx, 1
jb 0x5629eb
mov esi, 1
jmp 0x562974
mov eax, dword [esp + 0x14]
mov esi, 1
lea ebx, [eax + 0x24]
mov dword [ebx], 1
mov edi, ebx
mov dword [eax + 0x20], 1
jmp 0x562974
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x562ac0
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x5629c5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5629c1
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x14]
push dword [esp + 0x18]
push dword [eax + 8]
push ecx
call fcn.00592e50
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x14]
je 0x56112d
mov ecx, dword [eax + 0x20]
inc esi
cmp esi, ecx
jbe 0x562970
mov esi, dword [edi]
cmp ecx, esi
je 0x560ca0
cmp dword [esp + 0x1c], 0
je 0x56a5ff
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
mov edi, dword [eax + 0x20]
cmp edi, esi
jae 0x562aa6
jmp 0x562a15
mov eax, dword [esp + 0x14]
mov esi, 1
cmp edx, dword [ebp + 0x54]
jae 0x562a84
cmp dword [esp + 0x18], 0
movzx ecx, word [edx]
je 0x562a5a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562a56
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x14]
push dword [esp + 0x18]
push dword [eax + 8]
push ecx
call fcn.00592e50
add esp, 0xc
test eax, eax
je 0x562aa6
mov ecx, dword [esp + 0x14]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [ebx]
jb 0x562a11
jmp 0x562aa6
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x562aa6
cmp edx, dword [ebp + 0x5c]
ja 0x562a9a
cmp dword [ebp + 0x24], 0
je 0x562aa6
mov dword [ebp + 0x1c], esi
cmp ecx, 1
ja 0x5627e4
cmp dword [esp + 0x1c], 2
je 0x560ca0
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x56aa42
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562ade
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562b36
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562b1f
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x562b79
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562b79
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x562b7d
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x5630f6.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x5630f6.8203
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562bde
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562bc7
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x562c21
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562c21
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x562c25
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.default.0x5688de
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x560ca4
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562c89
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562c72
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x562ccc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562ccc
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x562cd0
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x5630f6.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x5630f6.8203
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562d31
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562d1a
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x562d74
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562d74
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x562d78
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.default.0x5688de
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x560ca4
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562ddc
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562dc5
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x562e1f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562e1f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x562e23
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x5630f6.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x5630f6.8203
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562e84
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562e6d
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x562ec7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562ec7
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x562ecb
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x5688de
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x560ca4
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562f2f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x562f18
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x562f72
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562f72
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
cmp ecx, 0x85
ja 0x562fe0
je case.0x562f88.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5688de
jmp dword [ecx*4 + 0x56b038]
cmp esi, dword [ebp + 0x54]
jb 0x562fc6
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.0x562f88.10
cmp esi, dword [ebp + 0x5c]
ja 0x562faa
cmp dword [ebp + 0x24], 0
je case.0x562f88.10
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
add dword [eax], 2
jmp 0x560ca0
cmp word [esi], 0xa
jne case.0x562f88.10
mov ecx, dword [esp + 0x14]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x560ca0
sub ecx, 0x2028
je case.0x562f88.11
sub ecx, 1
je case.0x562f88.11
xor esi, esi
jmp 0x560ff8
cmp word [ebp + 0x3e], 2
jne case.0x562f88.10
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x563043
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x56302c
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x563086
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563086
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x56308a
mov edx, dword [esp + 0x14]
cmp ecx, 0x2000
ja 0x5630ce
je case.default.0x5688de
cmp ecx, 0xa0
ja 0x5630b7
je case.default.0x5688de
cmp ecx, 9
je case.default.0x5688de
cmp ecx, 0x20
jmp 0x562c38
cmp ecx, 0x1680
je case.default.0x5688de
cmp ecx, 0x180e
jmp 0x562c38
cmp ecx, 0x3000
ja case.0x5630f6.8203
je case.default.0x5688de
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5630f6.8203
movzx eax, byte [ecx + 0x56b050]
jmp dword [eax*4 + 0x56b048]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x56313e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x563127
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x563181
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563181
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x563185
mov edx, dword [esp + 0x14]
cmp ecx, 0x2000
ja 0x5631d9
je case.0x5630f6.8203
cmp ecx, 0xa0
ja 0x5631ba
je case.0x5630f6.8203
cmp ecx, 9
je case.0x5630f6.8203
cmp ecx, 0x20
je case.0x5630f6.8203
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x1680
je case.0x5630f6.8203
cmp ecx, 0x180e
je case.0x5630f6.8203
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x3000
ja case.default.0x5688de
je case.0x5630f6.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5688de
movzx eax, byte [ecx + 0x56b0b8]
jmp dword [eax*4 + 0x56b0b0]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x563249
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x563232
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x56328c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56328c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x563290
mov edx, dword [esp + 0x14]
cmp ecx, 0x85
ja 0x5632b1
je case.default.0x5688de
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5630f6.8203
jmp dword [ecx*4 + 0x56b118]
sub ecx, 0x2028
je case.default.0x5688de
sub ecx, 1
jne case.0x5630f6.8203
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x56330e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x5632f7
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x563351
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563351
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x563355
mov edx, dword [esp + 0x14]
cmp ecx, 0x85
ja 0x563376
je case.0x5630f6.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5688de
jmp dword [ecx*4 + 0x56b128]
sub ecx, 0x2028
je case.0x5630f6.8203
sub ecx, 1
je case.0x5630f6.8203
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5633d3
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x5633bc
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], ecx
je 0x563414
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563414
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
xor ebx, ebx
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
mov cl, byte [esp + 0x13]
cmp cl, 0xf
lea esi, [eax + eax*2]
sete bl
movzx eax, word [edi + 2]
cmp eax, 0xd
ja case.0x5688c1.15
jmp dword [eax*4 + 0x56b138]
cmp cl, 0xf
je case.default.0x5688de
mov eax, dword [esp + 0x14]
add dword [eax], 6
jmp 0x560ca0
mov al, byte [esi*4 + 0x698ff9]
cmp al, 9
je 0x563482
cmp al, 5
je 0x563482
cmp al, 8
je 0x563482
xor eax, eax
jmp 0x563487
mov eax, 1
cmp eax, ebx
jne 0x56345f
xor esi, esi
jmp 0x560ff8
movzx ecx, byte [esi*4 + 0x698ff9]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x6b4b08]
sete dl
cmp edx, ebx
jne 0x56345f
xor esi, esi
jmp 0x560ff8
movzx eax, byte [esi*4 + 0x698ff9]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x56345f
xor esi, esi
jmp 0x560ff8
movzx eax, byte [esi*4 + 0x698ff8]
jmp 0x5634bd
movzx ecx, word [edi + 4]
movzx eax, byte [esi*4 + 0x698ff8]
cmp cx, ax
je 0x563482
movzx edx, word [esi*4 + 0x699000]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x698d00], eax
jne 0x563482
xor eax, eax
jmp 0x563487
movzx eax, byte [esi*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x563482
cmp eax, 3
je 0x563482
xor eax, eax
jmp 0x563487
cmp edx, 0x20
ja 0x563561
je case.0x56344f.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x5635d1.8203
jmp dword [edx*4 + 0x56b170]
cmp edx, 0x2000
ja 0x5635b1
je case.0x56344f.0
cmp edx, 0x1680
ja 0x5635a9
je case.0x56344f.0
sub edx, 0x85
je case.0x56344f.0
sub edx, 0x1b
je case.0x56344f.0
movzx eax, byte [esi*4 + 0x698ff9]
xor ecx, ecx
cmp dword [eax*4 + 0x6b4b08], 6
jmp 0x5634c3
cmp edx, 0x180e
jmp 0x56358c
cmp edx, 0x3000
ja case.0x5635d1.8203
je case.0x56344f.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x5635d1.8203
movzx eax, byte [edx + 0x56b18c]
jmp dword [eax*4 + 0x56b184]
movzx eax, byte [esi*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x563482
cmp eax, 3
je 0x563482
cmp edx, 0x5f
je 0x563482
xor eax, eax
jmp 0x563487
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x698a30]
lea eax, [eax*4 + 0x698a30]
cmp edx, ecx
jb 0x56362d
nop
lea eax, [eax + 4]
cmp edx, ecx
je 0x56363f
mov ecx, dword [eax]
cmp edx, ecx
jae 0x563620
cmp byte [esp + 0x13], 0xf
je 0x56345f
xor esi, esi
jmp 0x560ff8
cmp byte [esp + 0x13], 0xf
jne 0x56345f
xor esi, esi
jmp 0x560ff8
cmp edx, 0x24
je 0x563482
cmp edx, 0x40
je 0x563482
cmp edx, 0x60
je 0x563482
cmp edx, 0xa0
jb 0x563680
cmp edx, 0xd7ff
jbe 0x563482
cmp edx, 0xe000
jae 0x563482
xor eax, eax
jmp 0x563487
mov ax, word [esi*4 + 0x699000]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
jmp 0x5634c3
movzx ecx, word [edi + 4]
movzx edx, word [esi*4 + 0x699002]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6984a8]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
jmp 0x5634c6
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x563722
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x56370b
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [esp + 0x18]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x563766
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563766
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push ebx
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push ecx
call fcn.00592800
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x5637ab
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x5637ab
cmp eax, dword [ebp + 0x5c]
ja 0x56379b
cmp dword [ebp + 0x24], 0
je 0x5637ab
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x70]
add dword [eax], 2
jmp 0x560ca8
mov eax, dword [esp + 0x14]
movzx ebp, word [edi + 2]
add edi, 4
mov ecx, edi
mov dword [eax + 0x24], ebp
mov dword [eax + 0x20], ebp
mov dword [eax], edi
jmp 0x5638d8
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
cmp word [edi], 0x5c
setne bl
add edi, 4
mov dword [esp + 0x1c], ebx
mov ecx, edi
mov dword [eax], edi
xor ebp, ebp
jmp 0x5638d8
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov ecx, edi
xor ebp, ebp
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x5638d8
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov ecx, edi
mov ebp, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x5638d8
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov ecx, edi
xor ebp, ebp
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x5638d8
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebp, ebp
mov eax, ecx
mov ecx, edi
mov dword [eax], edi
jmp 0x5638d8
movzx ecx, word [edi]
add edi, 2
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ebp, dword [ecx*4 + 0x69828c]
mov dword [eax], edi
mov dword [eax + 0x20], ebp
mov eax, dword [ecx*4 + 0x6982b8]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x6982e4]
mov dword [esp + 0x1c], eax
mov eax, edx
mov ecx, dword [eax]
movzx eax, word [edi]
add ecx, 2
mov edi, dword [esp + 0x14]
mov edx, eax
mov dword [edi + 0x28], eax
mov eax, edi
mov dword [eax], ecx
cmp edx, 0x10
je 0x5638fa
cmp edx, 0xf
je 0x5638fa
or edx, 0xffffffff
jmp 0x563916
movzx edx, word [ecx]
add ecx, 2
mov ebx, dword [esp + 0x14]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [ebx + 0x2c], eax
lea eax, [ecx + 2]
mov dword [ebx], eax
mov eax, ebx
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x24], edx
test ebp, ebp
je 0x563a81
mov edi, dword [eax + 0x28]
test edx, edx
js 0x5645cd
xor ebx, ebx
cmp edi, 0xf
sete bl
cmp edx, 0xd
ja case.0x5688c1.15
jmp dword [edx*4 + 0x56b1ec]
cmp edi, 0xf
je 0x560ff2
mov ecx, dword [eax + 0x38]
mov esi, 1
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
nop
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x563998
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov ecx, eax
test edi, edi
je 0x56398c
and edx, 0xfc00
cmp edx, 0xd800
jne 0x56398c
lea ecx, [eax + 2]
mov dword [ebx + 0x38], ecx
inc esi
cmp esi, ebp
jbe 0x563960
mov esi, edi
jmp 0x563a89
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x5639c0
cmp ecx, dword [ebp + 0x5c]
ja 0x5639b0
cmp dword [ebp + 0x24], 0
je 0x5639c0
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
xor esi, esi
mov edx, edi
jmp 0x561000
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x5639e4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x563ad7
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x563a34
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563a34
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x698ff9]
cmp al, 9
je 0x563a6b
cmp al, 5
je 0x563a6b
cmp al, 8
je 0x563a6b
xor eax, eax
jmp 0x563a70
mov eax, 1
cmp eax, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x5639e0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [ebx + 0x20]
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x20], edi
cmp edi, ebp
je 0x5613f0
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24]
je 0x56a477
mov esi, dword [ebx + 0x38]
mov dword [ebx + 4], esi
mov ebx, dword [ebx + 0x28]
test ecx, ecx
js 0x56629a
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x24], eax
cmp ecx, 0xd
ja case.0x5688c1.15
jmp dword [ecx*4 + 0x56b224]
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x563af7
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x563b24
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x563bc5
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x563b74
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563b74
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x14]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x563b20
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x563be5
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x563c14
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x563cae
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x563c64
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563c64
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x14]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x563c10
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x563cce
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x563cf4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x563d8e
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x563d44
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563d44
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x14]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff8]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x563cf0
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x563dae
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x563dd4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x563e9e
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x563e24
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563e24
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x698ff8]
cmp eax, ecx
je 0x563e83
movzx edx, word [edx*4 + 0x699000]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x698d00], eax
jne 0x563e83
xor eax, eax
jmp 0x563e88
mov eax, 1
cmp eax, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x563dd0
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x563ebe
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x563ee4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x563f8c
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x563f34
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563f34
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x563f71
cmp eax, 3
je 0x563f71
xor eax, eax
jmp 0x563f76
mov eax, 1
cmp eax, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x563ee0
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x563fac
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov ebp, dword [esp + 0x78]
mov esi, 1
nop dword [eax]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x5640f3
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x56401f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56401f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x564023
mov edx, dword [esp + 0x14]
cmp ecx, 0x20
ja 0x56403d
je case.0x5640e7.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x5640e7.8203
jmp dword [eax*4 + 0x56b25c]
cmp ecx, 0x2000
ja 0x5640cb
je case.0x5640e7.8193
cmp ecx, 0x1680
ja 0x5640c3
je case.0x5640e7.8193
mov eax, ecx
sub eax, 0x85
je case.0x5640e7.8193
sub eax, 0x1b
je case.0x5640e7.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
cmp dword [eax*4 + 0x6b4b08], 6
sete cl
cmp ecx, ebx
je case.default.0x5688de
inc esi
cmp esi, dword [edx + 0x20]
ja 0x563a81
mov eax, dword [esp + 0x14]
jmp 0x563fd0
cmp ecx, 0x180e
jmp 0x56406d
cmp ecx, 0x3000
ja case.0x5640e7.8203
je case.0x5640e7.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x5640e7.8203
movzx eax, byte [eax + 0x56b278]
jmp dword [eax*4 + 0x56b270]
cmp edi, 0xf
jmp 0x5640aa
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x564111
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x564136
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x5641e5
cmp dword [esp + 0x18], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x564186
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x564186
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [esp + 0x14]
add edx, 0x10000
mov dword [eax + 0x38], esi
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x5641ca
cmp eax, 3
je 0x5641ca
cmp edx, 0x5f
je 0x5641ca
xor eax, eax
jmp 0x5641cf
mov eax, 1
cmp eax, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x564132
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x564205
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov ebx, dword [esp + 0x18]
mov esi, 1
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x5642ca
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x564277
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x564273
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x698a30]
lea eax, [eax*4 + 0x698a30]
cmp ecx, edx
jb 0x56429d
nop dword [eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x5642b4
mov edx, dword [eax]
cmp ecx, edx
jae 0x564290
cmp edi, 0xf
jne 0x5642b9
inc esi
cmp esi, ebp
ja 0x563a81
mov eax, dword [esp + 0x14]
jmp 0x564225
cmp edi, 0xf
jne 0x5642a2
mov eax, dword [esp + 0x14]
xor esi, esi
mov ebp, dword [esp + 0x78]
mov edx, ebx
jmp 0x561000
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5642f2
cmp edx, dword [ebp + 0x5c]
ja 0x5642e2
cmp dword [ebp + 0x24], 0
je 0x5642f2
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
mov eax, dword [esp + 0x14]
xor esi, esi
mov edx, ebx
jmp 0x561000
mov esi, 1
jmp 0x564314
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x5643ab
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x564365
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x564365
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x24
je 0x564390
cmp ecx, 0x40
je 0x564390
cmp ecx, 0x60
je 0x564390
cmp ecx, 0xa0
jb 0x564384
cmp ecx, 0xd7ff
jbe 0x564390
cmp ecx, 0xe000
jae 0x564390
xor eax, eax
jmp 0x564395
mov eax, 1
cmp eax, ebx
je 0x560ff2
inc esi
cmp esi, ebp
jbe 0x564310
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x5643cb
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x5643f4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x564491
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x564444
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x564444
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x14]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x699000]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x560ff2
inc edi
cmp edi, ebp
jbe 0x5643f0
jmp 0x563a81
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x5644b1
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov esi, dword [eax + 0x38]
mov edi, 1
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x564596
cmp dword [esp + 0x18], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x564524
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x564520
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [esp + 0x14]
add edx, 0x10000
mov dword [eax + 0x38], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x699002]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6984a8]
and ecx, eax
mov eax, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
je 0x56458b
inc edi
cmp edi, ebp
jbe 0x5644d0
jmp 0x563a81
mov ebp, dword [esp + 0x78]
xor esi, esi
jmp 0x560ffc
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x5645b6
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
cmp edi, 0x16
jne 0x5646c0
mov ebp, dword [esp + 0x78]
mov edi, 1
mov esi, dword [ebp + 0x54]
jmp 0x5645e8
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, esi
jae 0x56468b
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov esi, edx
mov ebx, dword [esp + 0x14]
mov dword [eax + 0x38], edx
je 0x564636
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x564636
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [esp + 0x1c]
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push ecx
call fcn.00592800
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x56467c
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x56467c
cmp eax, dword [ebp + 0x5c]
ja 0x56466c
cmp dword [ebp + 0x24], 0
je 0x56467c
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x5645e4
jmp 0x563a85
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x5646a9
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x5688c1.15
mov esi, dword [esp + 0x18]
test esi, esi
je 0x56506c
jmp dword [eax*4 + 0x56b2d8]
jmp dword [eax*4 + 0x56b418]
cmp edi, ebp
jae 0x566277
mov eax, dword [esp + 0x78]
mov ecx, 1
cmp esi, dword [eax + 0x54]
jae 0x5658be
cmp dword [esp + 0x18], 0
je 0x5658a1
mov eax, 0xfc00
mov edx, 0xd800
and ax, word [esi]
cmp ax, dx
mov eax, 2
cmove ecx, eax
cmp ebx, 0xf
je 0x566277
mov eax, dword [esp + 0x14]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x565874
jmp 0x566277
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x56627b
cmp esi, dword [ebp + 0x5c]
ja 0x5658de
cmp dword [ebp + 0x24], 0
je 0x56627b
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
jmp 0x56627b
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x24]
nop
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x5659a5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565949
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565949
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x698ff9]
cmp al, 9
je 0x565980
cmp al, 5
je 0x565980
cmp al, 8
je 0x565980
xor eax, eax
jmp 0x565985
mov eax, 1
cmp eax, ebx
je 0x566277
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x565900
jmp 0x566277
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x56627b
cmp esi, dword [ebp + 0x5c]
ja 0x5659c5
cmp dword [ebp + 0x24], 0
je 0x56627b
mov dword [ebp + 0x1c], edx
cmp ecx, 1
ja 0x5627e4
jmp 0x56627b
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x5659a5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565a27
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565a27
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x566277
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x5659e2
jmp 0x566277
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x14]
nop dword [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x5659a5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565ad9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565ad9
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x566277
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x565a90
jmp 0x566277
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x5659a5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565b7c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565b7c
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff8]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x566277
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x565b33
jmp 0x566277
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x24]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x565cb5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565c29
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565c29
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x698ff8]
cmp eax, ecx
je 0x565c88
movzx edx, word [edx*4 + 0x699000]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x698d00], eax
jne 0x565c88
xor eax, eax
jmp 0x565c8d
mov eax, 1
cmp eax, ebx
je 0x566277
mov eax, dword [esp + 0x14]
lea esi, [esi + edi*2]
mov dword [eax + 0x38], esi
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, ebp
jb 0x565be0
jmp 0x566277
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x56627b
cmp esi, dword [ebp + 0x5c]
ja 0x565cd5
cmp dword [ebp + 0x24], 0
je 0x56627b
mov dword [ebp + 0x1c], edi
jmp 0x5659c8
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x24]
nop dword [eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x5659a5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565d39
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565d39
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x565d76
cmp eax, 3
je 0x565d76
xor eax, eax
jmp 0x565d7b
mov eax, 1
cmp eax, ebx
je 0x566277
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x565cf0
jmp 0x566277
cmp edi, ebp
mov ebp, dword [esp + 0x78]
jae 0x56627b
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x5659a7
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565df5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565df5
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x20
ja 0x565e0f
je case.0x565ec5.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x565ec5.8203
jmp dword [eax*4 + 0x56b558]
cmp ecx, 0x2000
ja 0x565ea9
je case.0x565ec5.8193
cmp ecx, 0x1680
ja 0x565ea1
je case.0x565ec5.8193
mov eax, ecx
sub eax, 0x85
je case.0x565ec5.8193
sub eax, 0x1b
je case.0x565ec5.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
cmp dword [eax*4 + 0x6b4b08], 6
sete cl
cmp ecx, dword [esp + 0x24]
je 0x56627b
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x565db0
jmp 0x56627b
cmp ecx, 0x180e
jmp 0x565e43
cmp ecx, 0x3000
ja case.0x565ec5.8203
je case.0x565ec5.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x565ec5.8203
movzx eax, byte [eax + 0x56b574]
jmp dword [eax*4 + 0x56b56c]
cmp ebx, 0xf
je 0x56627b
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x38]
jmp 0x565e8c
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x24]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x565cb5
cmp dword [esp + 0x18], 0
movzx edx, word [esi]
je 0x565f39
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565f39
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x565f7d
cmp eax, 3
je 0x565f7d
cmp edx, 0x5f
je 0x565f7d
xor eax, eax
jmp 0x565f82
mov eax, 1
cmp eax, ebx
je 0x566277
mov eax, dword [esp + 0x14]
lea esi, [esi + edi*2]
mov dword [eax + 0x38], esi
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, ebp
jb 0x565ef0
jmp 0x566277
cmp edi, ebp
jae 0x566277
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x565cb5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x565ffb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x565ffb
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x2c]
mov edx, dword [eax*4 + 0x698a30]
lea eax, [eax*4 + 0x698a30]
cmp ecx, edx
jb 0x566021
lea eax, [eax + 4]
cmp ecx, edx
je 0x566049
mov edx, dword [eax]
cmp ecx, edx
jae 0x566014
cmp ebx, 0xf
jne 0x566277
lea eax, [edi + edi]
add dword [esi + 0x38], eax
mov eax, dword [esp + 0x20]
mov esi, dword [esi + 0x38]
inc eax
mov dword [esp + 0x20], eax
cmp eax, ebp
jb 0x565fb2
jmp 0x566277
cmp ebx, 0xf
je 0x566277
jmp 0x56602a
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x5659a5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x5660a9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5660a9
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x5660d4
cmp ecx, 0x40
je 0x5660d4
cmp ecx, 0x60
je 0x5660d4
cmp ecx, 0xa0
jb 0x5660c8
cmp ecx, 0xd7ff
jbe 0x5660d4
cmp ecx, 0xe000
jae 0x5660d4
xor eax, eax
jmp 0x5660d9
mov eax, 1
cmp eax, ebx
je 0x566277
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x566060
jmp 0x566277
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x5659a5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x566159
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x566159
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x699000]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x566277
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x566110
jmp 0x566277
cmp edi, ebp
jae 0x566277
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x565cb5
cmp dword [esp + 0x18], 0
movzx edx, word [esi]
je 0x566209
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x566209
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov ecx, dword [ebx + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x699002]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6984a8]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x24]
je 0x566277
mov eax, dword [esp + 0x20]
lea esi, [esi + edi*2]
inc eax
mov dword [ebx + 0x38], esi
mov dword [esp + 0x20], eax
cmp eax, ebp
jb 0x5661c0
mov ebp, dword [esp + 0x78]
cmp dword [esp + 0x1c], 2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x560ca8
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x38]
jmp 0x569e9f
cmp ebx, 0x16
jne 0x56639a
cmp edi, ebp
mov ebp, dword [esp + 0x78]
jae 0x566382
mov esi, dword [ebp + 0x54]
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
mov edx, dword [ebx + 0x38]
cmp edx, esi
jae 0x56635c
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x56630a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56630a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [esp + 0x1c]
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push ecx
call fcn.00592800
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x566350
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x566350
cmp eax, dword [ebp + 0x5c]
ja 0x566340
cmp dword [ebp + 0x24], 0
je 0x566350
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x5662c0
jmp 0x566382
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x566382
cmp edx, dword [ebp + 0x5c]
ja 0x566372
cmp dword [ebp + 0x24], 0
je 0x566382
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
cmp dword [esp + 0x1c], 2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x560ca8
jmp 0x56a3da
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x5688c1.15
mov edx, dword [esp + 0x18]
test edx, edx
je 0x566bec
jmp dword [eax*4 + 0x56b5d4]
jmp dword [eax*4 + 0x56b68c]
mov ebp, dword [esp + 0x14]
xor eax, eax
cmp bl, 0x74
mov ebx, dword [esp + 0x78]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [ebx + 0x42]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
imul ecx, eax
mov eax, dword [ebx + 0x44]
lea ecx, [eax + ecx*2]
lea eax, [edi + 6]
mov dword [ebp], eax
test edx, edx
je 0x5673d5
nop word [eax + eax]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
cmp eax, dword [ebp + 0x50]
jae 0x5673ca
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x5673d5
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x5673b0
mov edi, dword [ebp]
jmp 0x567401
mov ebp, dword [esp + 0x14]
xor eax, eax
cmp bl, 0x72
mov ebx, dword [esp + 0x78]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [edi + 2]
add edi, 4
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
mov dword [ebp], edi
mov esi, edi
movzx edx, word [edi]
lea eax, [edx - 0x62]
cmp eax, 7
ja case.default.0x567419
movzx eax, byte [eax + 0x56b7c4]
jmp dword [eax*4 + 0x56b7bc]
mov ecx, dword [edx*4 + 0x698258]
lea eax, [edi + 2]
mov ebx, dword [edx*4 + 0x698284]
mov edx, dword [edx*4 + 0x6982b0]
mov dword [ebp], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [esp + 0x1c], edx
jmp 0x567477
movzx ecx, word [edi + 2]
mov dword [ebp + 0x20], ecx
movzx ebx, word [esi + 4]
mov dword [ebp + 0x24], ebx
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x6982b0]
mov dword [esp + 0x1c], eax
test ebx, ebx
jne 0x567471
mov dword [ebp + 0x24], 0xffffffff
or ebx, 0xffffffff
lea eax, [esi + 6]
mov dword [ebp], eax
mov edi, dword [ebp + 0x14]
cmp edi, dword [ebp + 0x50]
jae 0x5674a0
mov eax, dword [ebp + edi*4 + 0x54]
cmp eax, 0xffffffff
je 0x5674a0
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
cmp eax, dword [ebp + edi*4 + 0x58]
je 0x561059
mov eax, dword [esp + 0x78]
jmp 0x5674c1
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
test ecx, ecx
je 0x561059
mov eax, dword [esp + 0x78]
test dword [eax + 0x7c], 0x200
jne 0x560c90
mov esi, 1
cmp ecx, esi
jb 0x567506
nop word [eax + eax]
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0x50]
push ecx
push eax
push ebp
push dword [ebp + 0x28]
push edi
call fcn.0056bba0
add esp, 0x14
test eax, eax
jne 0x567589
mov eax, dword [esp + 0x50]
inc esi
add eax, eax
add dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x78]
cmp esi, ecx
jbe 0x5674d0
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
cmp ecx, ebx
je 0x561059
cmp dword [esp + 0x1c], 0
je 0x56a538
mov eax, dword [ebp + 0x38]
mov esi, 1
mov dword [ebp + 4], eax
mov eax, dword [ebp + edi*4 + 0x58]
sub eax, dword [ebp + edi*4 + 0x54]
mov dword [ebp + 0xc], eax
mov edi, dword [ebp + 0x20]
cmp edi, ebx
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x14]
jae 0x5684a2
nop word [eax + eax]
lea eax, [esp + 0x54]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0056bba0
add esp, 0x14
test eax, eax
jne 0x5675dc
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, dword [ebx + 0xc]
cmovne esi, ecx
add eax, eax
add dword [ebx + 0x38], eax
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x567550
jmp 0x567601
jle 0x567597
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x56759a
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x78]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5688de
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x5675c5
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
jle 0x567601
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x567601
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jbe 0x567601
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
test esi, esi
jne 0x5684a2
mov dword [ebx + 0x24], edi
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x56aa42
lea eax, [esp + 0x34]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.0056bba0
add esp, 0x14
test eax, eax
je 0x56767f
jle 0x56763a
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x56763d
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x78]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5688de
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x567668
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov eax, dword [esp + 0x34]
add eax, eax
add dword [ebp + 0x38], eax
mov ebp, dword [esp + 0x78]
jmp 0x560ca0
mov ecx, dword [esp + 0x14]
add edi, 2
mov dword [ecx], edi
nop word [eax + eax]
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x5676a0
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x560ca8
cmp dword [ebp + 0x20], 0
mov ebx, dword [esp + 0x14]
jne 0x5676cd
cmp dword [ebx + 0x18], 0
jne 0x5680a1
xor eax, eax
jmp 0x56a847
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x34]
push eax
push ebp
push ebx
call fcn.00560a70
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x5688de
js 0x560ff8
mov eax, dword [esp + 0x34]
add eax, eax
add dword [ebx], eax
jmp 0x560ca0
movzx eax, word [edi + 2]
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x56771c
add eax, 0xfffffffe
mov dword [ebp + 0xc], eax
lea ebx, [edi + 4]
mov dword [ebp], ebx
movzx eax, word [ebx]
mov ecx, eax
cmp eax, 0x76
je 0x567731
cmp eax, 0x77
jne 0x567766
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x7c]
push ebp
call fcn.00560a70
mov esi, eax
add esp, 0xc
test esi, esi
jg 0x560ff2
js 0x560ff4
mov eax, dword [ebp]
mov ecx, dword [esp + 0x34]
lea ebx, [eax + ecx*2]
mov dword [ebp], ebx
sub dword [ebp + 0xc], ecx
movzx ecx, word [ebx]
movzx ecx, cx
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x56777f.150
movzx eax, byte [eax + 0x56b7e8]
jmp dword [eax*4 + 0x56b7cc]
mov ecx, dword [ebp + 0x44]
mov ebp, dword [esp + 0x78]
cmp ecx, 0xffffffff
je 0x56a294
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x14]
cmp eax, 0xffff
je 0x56a282
cmp eax, ecx
je 0x56a282
jmp 0x56a298
mov edi, dword [ebp + 0x44]
mov ebp, dword [esp + 0x78]
cmp edi, 0xffffffff
je 0x56a294
movzx esi, word [ebp + 0x42]
movzx ecx, word [ebx + 2]
mov eax, dword [ebp + 0x44]
movzx edx, word [ebx + 4]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je 0x56a294
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x567817
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x5677e3
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebx
jmp 0x56a298
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
movzx eax, word [ecx]
mov dword [esp + 0x14], ebx
movzx eax, byte [eax + 0x6b4968]
jmp 0x56a29d
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae 0x56a298
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je 0x56a298
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
jmp 0x56a29d
mov ebp, dword [esp + 0x78]
movzx ecx, word [ebx + 2]
movzx edx, word [ebx + 4]
mov ebx, dword [esp + 0x14]
movzx esi, word [ebp + 0x42]
mov eax, dword [ebp + 0x44]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je 0x56a298
mov edi, dword [ebx + 0x50]
nop dword [eax + eax]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x5678ca
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x56a282
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x5678b0
jmp 0x56a298
cmp dword [esp + 0x18], 0
movzx edx, word [edi + 2]
mov ebx, dword [esp + 0x14]
je 0x56791d
test edx, edx
je 0x567918
mov ecx, dword [ebx + 0x38]
mov edi, 0xfc00
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.default.0x5688de
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [esp + 0x3c]
jne 0x567914
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x5678f1
mov ecx, dword [ebx + 0x38]
jmp 0x567937
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.default.0x5688de
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebp + 0x5c]
jae 0x56793f
mov dword [ebp + 0x5c], ecx
add dword [ebx], 4
jmp 0x560ca4
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov dword [eax], edi
cmp word [edi], 0x78
je case.0x560ccc.120
jmp 0x560ca8
movzx eax, word [edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x5679f1
mov ecx, 0x8a
cmp ax, cx
je 0x5679f1
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x14]
mov ecx, dword [eax + 0x18]
add ecx, dword [ebx + 0x4c]
mov esi, ecx
mov dword [esp + 0x28], ecx
sub esi, dword [esp + 0x70]
mov eax, dword [esi + 0x4c]
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x5679ec
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.00597bd0
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [esi + 0x40], eax
mov eax, ebx
sub eax, esi
mov esi, 1
mov dword [ebx + 0x10], eax
jmp 0x560ff8
movzx eax, word [edi]
jmp 0x5679fb
mov ebx, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [esp + 0x28]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x567a11.134
movzx eax, byte [eax + 0x56b818]
jmp dword [eax*4 + 0x56b7fc]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x567a23
mov dword [ebp + 0x60], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x567a11.134
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x567a39
mov dword [ebp + 0x60], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
mov eax, ebx
sub eax, esi
mov dword [ebx + 0x10], eax
mov ecx, dword [esi]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
jne case.0x567a11.134
nop word [eax + eax]
mov dword [esi], ecx
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
je 0x567a60
jmp case.0x567a11.134
mov eax, dword [esp + 0x14]
mov esi, 1
jmp 0x561000
push edx
push dword [ebx + 0x38]
push dword [esi + 0x38]
call fcn.00592a00
add esp, 0xc
test eax, eax
jne case.0x567a11.134
xor esi, esi
jmp 0x560ff8
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x567ae5
mov esi, ecx
sub esi, dword [esp + 0x70]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00597bd0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebx + 0x44], eax
mov eax, dword [esi]
add eax, 4
mov dword [ebx], eax
jmp 0x560ca0
mov dword [ebx + 0x48], eax
lea edx, [eax + eax]
mov eax, dword [esi + 0x38]
lea ecx, [edx - 2]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [ebx + ecx*4 + 0x54], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [ebx + ecx*4 + 0x58], eax
cmp ecx, dword [ebx + 0x50]
jb case.0x567a11.134
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x567b34
push dword [esp + 0x4c]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00597bd0
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x560ff8
mov cl, byte [ebx + 0x31]
cmp cl, 0x79
je 0x567b50
test esi, esi
je 0x56a4f3
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x56a4f3
add dword [ebx], 4
jmp 0x560ca0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x561170
test byte [ebp + 0x78], 1
jne 0x561170
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x560ca8
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
je 0x567b72
xor esi, esi
mov eax, ecx
jmp 0x561000
test byte [ebp + 0x78], 2
je 0x567ba2
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
test byte [ebp + 0x7c], 0x10
je case.0x560ccc.23
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5688de
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x567bd3
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
add dword [edx], 2
jmp 0x560ca4
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
cmp edx, esi
jae 0x567cac
mov eax, dword [ecx + 0x88]
lea ebx, [ecx + 0x8c]
test eax, eax
je 0x567c23
push dword [esp + 0x18]
push ebx
push esi
push eax
push edx
call fcn.00590e50
add esp, 0x14
test eax, eax
je 0x567c5b
mov ecx, dword [esp + 0x78]
mov edi, dword [ebx]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
jmp 0x567c52
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x567c5b
mov ecx, dword [esp + 0x78]
mov ax, word [edx]
cmp ax, word [ecx + 0x90]
jne 0x567c5b
cmp edi, 1
je 0x567c52
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x92]
jne 0x567c5b
lea eax, [edi + edi]
sub esi, eax
cmp edx, esi
je 0x567cac
mov eax, dword [esp + 0x78]
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x560e8a
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x78]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5688de
cmp dword [ebp + 0x88], 0
jne case.default.0x5688de
cmp dword [ebx], 2
jne case.default.0x5688de
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x5688de
jmp 0x5633bc
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x567ccb
mov eax, dword [esp + 0x78]
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
add dword [ebp], 2
mov ebp, dword [esp + 0x78]
jmp 0x560ca0
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x14]
je 0x567cf3
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x567cf3
xor esi, esi
mov eax, ebx
jmp 0x561000
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x567e60
cmp ecx, dword [ebp + 0x54]
jne 0x567d13
test dword [ebp + 0x7c], 0x200000
je case.default.0x5688de
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x567d4b
cmp ecx, edx
jbe case.default.0x5688de
push dword [esp + 0x18]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.00590f10
add esp, 0x14
test eax, eax
je case.default.0x5688de
add dword [ebx], 2
jmp 0x560ca0
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb case.default.0x5688de
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x5688de
cmp edi, 1
je 0x567e60
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
je 0x567e60
xor esi, esi
jmp 0x560ff8
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x567e30
mov eax, dword [ebp + 0x88]
lea edi, [ebp + 0x8c]
test eax, eax
je 0x567dd0
push dword [esp + 0x18]
push edi
push ecx
push eax
push edx
call fcn.00590e50
add esp, 0x14
test eax, eax
je 0x567dfd
add dword [ebx], 2
jmp 0x560ca0
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x567dfd
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x567dfd
cmp esi, 1
je 0x567e60
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x567e60
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5688de
cmp dword [ebp + 0x88], 0
jne case.default.0x5688de
cmp dword [edi], 2
jmp 0x567c91
test byte [ebp + 0x78], 2
jne case.default.0x5688de
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x567e60
cmp edx, dword [ebp + 0x5c]
ja 0x567e50
cmp dword [ebp + 0x24], 0
je 0x567e60
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
add dword [ebx], 2
jmp 0x560ca0
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x4c]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x38], eax
je 0x567b72
xor esi, esi
mov eax, ecx
jmp 0x561000
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x560ca8
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x567f6c
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x18], 0
mov ecx, eax
je 0x567ef9
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x567ece
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x567ef9
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp edx, dword [ebp + 0x5c]
jae 0x567f01
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x567f54
cmp ecx, 0x5f
jne 0x567f14
lea edi, [ecx - 0x5e]
jmp 0x567f6e
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x567f4d
cmp eax, 3
jne 0x567f6c
mov edi, 1
jmp 0x567f6e
cmp ecx, 0xff
ja 0x567f6c
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x567f6c
mov edi, 1
jmp 0x567f6e
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x567fbb
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x567f9e
cmp ecx, dword [ebp + 0x5c]
ja 0x567f8e
cmp dword [ebp + 0x24], 0
je 0x567f9e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor edx, edx
mov eax, dword [ebx]
xor edx, edi
movzx ecx, word [eax]
add eax, 2
mov dword [ebx], eax
cmp ecx, 5
jne 0x567fb4
xor edx, 1
test edx, edx
jmp 0x561310
cmp dword [esp + 0x18], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x568009
cmp edx, eax
jae 0x567fdd
mov ax, word [edx]
and ax, word [esp + 0x40]
cmp ax, word [esp + 0x3c]
jne 0x567fdd
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56800c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x56800c
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x568014
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x568071
cmp ecx, 0x5f
jne 0x56802a
lea edx, [ecx - 0x5e]
jmp 0x567fa0
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x568067
cmp eax, 3
jne 0x567f9e
mov edx, 1
jmp 0x567fa0
cmp ecx, 0xff
ja 0x567f9e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x567f9e
mov edx, 1
jmp 0x567fa0
test esi, esi
jne case.0x56816e.998
mov edi, dword [ebx + 4]
mov dword [ebx], edi
movzx eax, word [edi + 2]
lea edx, [edi + eax*2]
mov dword [ebx + 4], edx
cmp word [edx], 0x78
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
lea edi, [ecx + eax*2]
je 0x56a511
mov dword [ebx], edi
jmp 0x560ca0
cmp esi, 0xfffffc1f
jne 0x5680f1
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x56816e.998
cmp word [ecx], 0x78
je 0x5680f9
cmp word [eax], 0x78
jmp 0x5680f3
test esi, esi
jne case.0x56816e.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x56a84a
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
cmp esi, 0xfffffc19
je 0x56a1a4
test esi, esi
je 0x568135
cmp esi, 0xfffffc1f
jne case.0x56816e.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x56a902
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
test esi, esi
jg 0x568175
je case.0x56816e.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x56816e.998
jmp dword [eax*4 + 0x56b82c]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x14]
jne 0x561000
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
test esi, esi
jg 0x5681af
je case.0x5681a8.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x56816e.998
jmp dword [eax*4 + 0x56b848]
mov eax, esi
sub eax, 1
jne case.0x56816e.998
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x56a298
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x5681c7
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
jmp 0x56a29d
test esi, esi
jne case.0x56816e.998
mov ecx, dword [ebx]
mov esi, dword [esp + 0x70]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebx], ecx
jmp 0x560ca8
test esi, esi
je 0x567b50
mov eax, dword [esp + 0x14]
jmp 0x561000
cmp esi, 0xfffffc1a
jne 0x568241
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x56a51a
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x568230
jmp 0x568284
cmp esi, 0xfffffc1f
jne 0x568267
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x56816e.998
cmp word [ecx], 0x78
je 0x56826f
cmp word [eax], 0x78
jmp 0x568269
test esi, esi
jne case.0x56816e.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x56a80b
cmp dword [ebx + 0x24], 0
jne 0x5682b6
cmp dword [ebx + 0x28], 0
jne 0x5682b6
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x5682a6
mov esi, dword [esp + 0x70]
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x560ca8
test esi, esi
jne case.0x56816e.998
add dword [ebx], 2
mov esi, dword [esp + 0x70]
jmp 0x560ca8
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x568322
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [ebp + 0x74], eax
jne 0x568322
cmp esi, 0xfffffc1f
jne case.default.0x5688de
cmp dword [ebp + 0x6c], ecx
jae case.default.0x5688de
cmp word [edx], 0x78
je 0x56832e
cmp word [ecx], 0x78
je 0x56832e
xor esi, esi
jmp 0x560ff8
mov edx, dword [esp + 0x18]
test esi, esi
jne case.0x56816e.998
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x56a8d3
xor esi, esi
jmp 0x560ff8
cmp esi, 0xfffffc1e
jne case.0x56816e.998
mov eax, dword [ebx]
push dword [ebp + 0x70]
add eax, 4
push eax
call fcn.0058f310
mov edx, dword [esp + 0x20]
add esp, 8
test eax, eax
jne case.0x56816e.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov eax, dword [ebx]
mov esi, 0xfffffc1e
add eax, 4
mov dword [ebp + 0x70], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov eax, dword [ebx]
mov esi, 0xfffffc1f
mov dword [ebp + 0x6c], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae 0x560ff8
lea eax, [esp + 0x58]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0056bba0
add esp, 0x14
test eax, eax
je 0x56a524
jle 0x56844f
mov ecx, dword [ebp + 0x54]
mov dword [edi + 0x38], ecx
jmp 0x568452
mov ecx, dword [edi + 0x38]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5688de
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x568479
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov eax, dword [ebx + 0xc]
neg eax
add eax, eax
add dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x15
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov esi, dword [ebx + 4]
cmp dword [ebx + 0x38], esi
jne 0x56a547
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x56852a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x568513
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x568550
cmp byte [ebx + 0x31], 0x6e
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x56aa42
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x568545
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
add dword [ebx + 0x38], 0xfffffffe
jmp 0x568580
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x18
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5685ed
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x5685d6
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x5685fe
cmp dword [ebx + 0x2c], eax
jne case.default.0x5688de
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x56aa42
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x561c64
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x56867f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x568668
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.default.0x5688de
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x56aa42
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x561d6e
mov eax, dword [esp + 0x14]
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x56870b
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x5686f4
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.default.0x5688de
cmp dword [ebx + 0x2c], eax
je case.default.0x5688de
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x56a585
mov esi, dword [esp + 0x70]
jmp 0x560ca8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x5687a9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp esi, dword [ebp + 0x5c]
ja 0x568792
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x56a590
mov esi, dword [esp + 0x70]
jmp 0x560ca8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x56883f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x568828
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x5688ac
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x56887b
push dword [esp + 0x18]
push eax
push ecx
push esi
push edx
call fcn.00590e50
add esp, 0x14
test eax, eax
jne case.default.0x5688de
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x5688ac
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x5688ac
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x5688ac
cmp esi, 1
je case.default.0x5688de
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5688de
movzx ecx, word [edx]
lea eax, [edi - 6]
lea esi, [edx + 2]
mov dword [ebx + 0x38], esi
cmp eax, 0xf
ja case.0x5688c1.15
jmp dword [eax*4 + 0x56b864]
cmp ecx, 0x85
ja 0x5688e5
je case.0x5688de.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5688de
jmp dword [ecx*4 + 0x56b8a4]
sub ecx, 0x2028
je case.0x5688de.11
sub ecx, 1
jne case.default.0x5688de
cmp word [ebp + 0x3e], 2
jne case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x2000
ja 0x56895c
je case.default.0x5688de
cmp ecx, 0xa0
ja 0x56893d
je case.default.0x5688de
cmp ecx, 9
je case.default.0x5688de
cmp ecx, 0x20
jne case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x1680
je case.default.0x5688de
cmp ecx, 0x180e
jne case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x3000
ja case.0x5688c1.13
je case.default.0x5688de
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5688c1.13
movzx eax, byte [ecx + 0x56b8bc]
jmp dword [eax*4 + 0x56b8b4]
cmp ecx, 0x2000
ja 0x5689df
je case.0x5688c1.13
cmp ecx, 0xa0
ja 0x5689c0
je case.0x5688c1.13
cmp ecx, 9
je case.0x5688c1.13
cmp ecx, 0x20
je case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x1680
je case.0x5688c1.13
cmp ecx, 0x180e
je case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x3000
ja case.default.0x5688de
je case.0x5688c1.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5688de
movzx eax, byte [ecx + 0x56b924]
jmp dword [eax*4 + 0x56b91c]
cmp ecx, 0x85
ja 0x568a2f
je case.default.0x5688de
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5688c1.13
jmp dword [ecx*4 + 0x56b984]
sub ecx, 0x2028
je case.default.0x5688de
sub ecx, 1
jne case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x85
ja 0x568a6c
je case.0x5688c1.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5688de
jmp dword [ecx*4 + 0x56b994]
sub ecx, 0x2028
je case.0x5688c1.13
sub ecx, 1
je case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0xff
ja case.0x5688c1.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0xff
ja case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0xff
ja case.0x5688c1.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0xff
ja case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0xff
ja case.0x5688c1.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0xff
ja case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x5688c1.13
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x568b7b
cmp eax, dword [ebx + 4]
jbe 0x568b7b
cmp word [eax], 0xa
jne 0x568b7b
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x568b7b
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x560ca0
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x22
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x568be5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x568bce
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
mov esi, dword [esp + 0x18]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x568c23
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x568c23
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
push esi
push dword [ebx + 8]
push ecx
call fcn.00592e50
add esp, 0xc
test eax, eax
jne 0x56a603
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x5688de
cmp dword [esp + 0x18], esi
je 0x562ab5
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x562ab5
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x568ce3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x568ccc
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x568d19
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x568d36
cmp byte [ebx + 0x31], 0x6e
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc8
jmp 0x56aa42
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x568d2b
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
ja 0x56a60e
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edi, dword [ebx + 0xc]
mov ebp, dword [ebp + 0x54]
mov eax, ebp
mov ebx, dword [ebx + 0x38]
lea esi, [edi + edi]
sub eax, esi
cmp ebx, eax
ja 0x568e0a
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x568dc4
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x568dcd
add ecx, 4
add edx, 4
sub esi, 4
jae 0x568db3
cmp esi, 0xfffffffc
je 0x56a643
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x568e0a
cmp esi, 0xfffffffd
je 0x56a643
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x568e0a
cmp esi, 0xfffffffe
je 0x56a643
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x568e0a
cmp esi, 0xffffffff
je 0x56a643
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x56a643
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x14]
test edi, edi
je 0x568e89
lea esi, [edi + edi]
mov eax, ebp
sub eax, esi
cmp ebx, eax
ja 0x568e89
lea edx, [ecx + 0x32]
mov ecx, ebx
sub esi, 4
jb 0x568e43
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x568e4c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x568e32
cmp esi, 0xfffffffc
je 0x56a643
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x568e89
cmp esi, 0xfffffffd
je 0x56a643
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x568e89
cmp esi, 0xfffffffe
je 0x56a643
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x568e89
cmp esi, 0xffffffff
je 0x56a643
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x56a643
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb case.default.0x5688de
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp ebx, dword [ebp + 0x5c]
ja 0x568eb3
cmp dword [ebp + 0x24], 0
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [esp + 0x14]
jne 0x568ef8
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x560ca0
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x56aa46
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x568f62
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x568f4b
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x568f98
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x5688de
cmp dword [ebx + 0x2c], ecx
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xcc
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
add dword [ebx + 0x38], 0xfffffffe
mov esi, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, si
mov esi, 0xdc00
cmp ax, si
mov eax, dword [esp + 0x14]
jne 0x568fe3
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x56a65c
mov esi, dword [esp + 0x70]
jmp 0x560ca8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x56904b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569034
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x569081
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xce
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
add dword [ebx + 0x38], 0xfffffffe
mov esi, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x5690bf
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
ja 0x56a667
mov esi, dword [esp + 0x70]
jmp 0x560ca8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x56912a
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x569113
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx eax, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x38], ecx
test edx, edx
je 0x56914d
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56914d
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x56a484.0
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x561000
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5691b8
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x5691a1
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x5691f5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5691f5
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x698ff9]
cmp al, 9
je 0x56922c
cmp al, 5
je 0x56922c
cmp al, 8
je 0x56922c
xor ecx, ecx
jmp 0x569231
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd1
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5692a3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x56928c
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x5692e0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5692e0
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd2
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x569389
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569372
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x5693c6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5693c6
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd3
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x569468
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569451
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x5694a5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5694a5
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff8]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd4
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x569547
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569530
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x569584
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x569584
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x5695c1
cmp eax, 3
je 0x5695c1
xor ecx, ecx
jmp 0x5695c6
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd5
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x569638
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569621
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x569675
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x569675
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x20
ja 0x56968f
je case.0x56973e.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x56973e.8203
jmp dword [eax*4 + 0x56b9a4]
cmp ecx, 0x2000
ja 0x569722
je case.0x56973e.8193
cmp ecx, 0x1680
ja 0x56971a
je case.0x56973e.8193
mov eax, ecx
sub eax, 0x85
je case.0x56973e.8193
sub eax, 0x1b
je case.0x56973e.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
cmp dword [eax*4 + 0x6b4b08], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd6
jmp 0x56aa42
cmp ecx, 0x180e
jmp 0x5696c3
cmp ecx, 0x3000
ja case.0x56973e.8203
je case.0x56973e.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x56973e.8203
movzx eax, byte [eax + 0x56b9c0]
jmp dword [eax*4 + 0x56b9b8]
cmp dword [ebx + 0x28], 0xf
jne case.0x56a484.7
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5697a8
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x569791
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], ecx
je 0x5697e5
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5697e5
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x69d208]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x698ff9]
mov eax, dword [eax*4 + 0x6b4b08]
cmp eax, 1
je 0x569829
cmp eax, 3
je 0x569829
cmp edx, 0x5f
je 0x569829
xor ecx, ecx
jmp 0x56982e
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd7
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5698a0
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569889
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x5698dd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5698dd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax*4 + 0x698a30]
lea eax, [eax*4 + 0x698a30]
cmp ecx, edx
jb 0x5698ff
lea eax, [eax + 4]
cmp ecx, edx
je 0x569914
mov edx, dword [eax]
cmp ecx, edx
jae 0x5698f2
cmp dword [ebx + 0x28], 0xf
jne case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd8
jmp 0x56aa42
cmp dword [ebx + 0x28], 0xf
jne case.0x56a484.10
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x569977
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569960
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x5699b4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5699b4
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x24
je 0x5699df
cmp ecx, 0x40
je 0x5699df
cmp ecx, 0x60
je 0x5699df
cmp ecx, 0xa0
jb 0x5699d3
cmp ecx, 0xd7ff
jbe 0x5699df
cmp ecx, 0xe000
jae 0x5699df
xor ecx, ecx
jmp 0x5699e4
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd9
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x56a67d
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x569a43
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x569ab2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569a9b
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x569b1f
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x569aee
push dword [esp + 0x18]
push eax
push ecx
push esi
push edx
call fcn.00590e50
add esp, 0x14
test eax, eax
jne case.default.0x5688de
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x569b1f
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x569b1f
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x569b1f
cmp esi, 1
je case.default.0x5688de
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5688de
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x569b55
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebx + 0x38], edx
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x5688c1.15
jmp dword [eax*4 + 0x56ba20]
cmp ecx, 0x85
ja 0x569b85
je case.0x569b7e.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5688de
jmp dword [ecx*4 + 0x56ba60]
sub ecx, 0x2028
je case.0x569b7e.11
sub ecx, 1
jne case.default.0x5688de
cmp word [ebp + 0x3e], 2
jne case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x2000
ja 0x569bfc
je case.default.0x5688de
cmp ecx, 0xa0
ja 0x569bdd
je case.default.0x5688de
cmp ecx, 9
je case.default.0x5688de
cmp ecx, 0x20
jne case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x1680
je case.default.0x5688de
cmp ecx, 0x180e
jne case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x3000
ja case.0x569b61.13
je case.default.0x5688de
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x569b61.13
movzx eax, byte [ecx + 0x56ba78]
jmp dword [eax*4 + 0x56ba70]
cmp ecx, 0x2000
ja 0x569c7f
je case.0x569b61.13
cmp ecx, 0xa0
ja 0x569c60
je case.0x569b61.13
cmp ecx, 9
je case.0x569b61.13
cmp ecx, 0x20
je case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x1680
je case.0x569b61.13
cmp ecx, 0x180e
je case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x3000
ja case.default.0x5688de
je case.0x569b61.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5688de
movzx eax, byte [ecx + 0x56bae0]
jmp dword [eax*4 + 0x56bad8]
cmp ecx, 0x85
ja 0x569ccf
je case.default.0x5688de
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x569b61.13
jmp dword [ecx*4 + 0x56bb40]
sub ecx, 0x2028
je case.default.0x5688de
sub ecx, 1
jne case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x85
ja 0x569d0c
je case.0x569b61.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5688de
jmp dword [ecx*4 + 0x56bb50]
sub ecx, 0x2028
je case.0x569b61.13
sub ecx, 1
je case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x100
jae case.0x569b61.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x100
jae case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x100
jae case.0x569b61.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x100
jae case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x100
jae case.0x569b61.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x569b61.13
xor esi, esi
jmp 0x560ff8
cmp ecx, 0x100
jae case.default.0x5688de
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x569b61.13
xor esi, esi
jmp 0x560ff8
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x38]
add edx, 0xfffffffe
mov dword [ebx + 0x38], edx
cmp dword [esp + 0x18], esi
jne 0x56a2be
movzx ecx, word [edx]
jmp 0x56a307
test esi, esi
jne case.0x56816e.998
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x569e35
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x569e57
cmp ecx, dword [ebx + 4]
jbe 0x569e57
cmp word [ecx], 0xa
jne 0x569e57
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x569e57
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x560ca0
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdd
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov ecx, dword [ebx + 0x38]
add ecx, 0xfffffffe
mov edx, ecx
mov dword [ebx + 0x38], ecx
cmp dword [esp + 0x18], esi
je 0x569e9f
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x569e9f
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebx + 4]
jbe 0x560ca0
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xde
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x569f09
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5688de
cmp ecx, dword [ebp + 0x5c]
ja 0x569ef2
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], ecx
je 0x569f46
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x569f46
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebx + 0x38], eax
mov ecx, dword [ebx + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x699002]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6984a8]
and ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdf
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x56a009
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x569ff2
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x56a046
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56a046
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x699000]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xe0
jmp 0x56aa42
test esi, esi
jne case.0x56816e.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5688de
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x56a0eb
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5688de
cmp edx, dword [ebp + 0x5c]
ja 0x56a0d4
cmp dword [ebp + 0x24], esi
je case.default.0x5688de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5627e4
xor esi, esi
jmp 0x560ff8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x56a128
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56a128
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
mov ecx, dword [ebx + 0x2c]
movzx eax, word [eax*2 + 0x6a1608]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x698ff8]
cmp eax, ecx
je 0x56a183
movzx edx, word [edx*4 + 0x699000]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x698d00], eax
jne 0x56a183
xor ecx, ecx
jmp 0x56a188
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5688de
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xe1
jmp 0x56aa42
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00597bd0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx]
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x56a1d0
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x560ca0
mov edi, dword [ebx]
nop dword [eax + eax]
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x56a1f0
mov esi, dword [esp + 0x70]
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x560ca8
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x56a92e
mov esi, dword [esp + 0x70]
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x560ca8
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00597bd0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
jmp 0x5681ba
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebx + 4], eax
cmp word [eax], 0x78
je 0x56a4cc
xor eax, eax
cmp dword [ebx + 0x20], eax
sete al
jmp 0x5681bd
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
jmp 0x56a29d
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp byte [ebx + 0x31], 0x8f
jne 0x560ca0
mov eax, 0x2008f
mov byte [ebx + 0x30], 0x23
mov dword [esp + 0x2c], eax
jmp 0x56aa42
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x56a2da
lea esi, [edx - 2]
mov dword [ebx + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56a307
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov ebx, dword [ebx + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x698ffa]
cmp edx, ebx
jbe 0x56a3da
mov ebp, dword [esp + 0x18]
nop
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test ebp, ebp
je 0x56a38b
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x56a360
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56a38b
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x69d208]
shl eax, 7
add eax, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x6a1608]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x698ffa]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x6b4ac8], eax
je 0x56a3d6
mov eax, dword [esp + 0x14]
mov edi, esi
mov dword [eax + 0x38], edx
cmp edx, ebx
ja 0x56a340
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x560ca0
mov edi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x56aa42
inc dword [ebp + 0x80]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 0x80]
cmp eax, dword [ebp + 0x84]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6b4968]
movzx eax, word [edx + 2]
ja 0x56a76d
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x560ca4
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x14]
jne 0x568faa
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x56aa42
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x14]
jne 0x56908a
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x56aa42
cmp dword [esp + 0x18], 0
jne 0x568d2b
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x56aa42
test ecx, ecx
js 0x56a48b
cmp ecx, 0xd
ja case.0x5688c1.15
jmp dword [ecx*4 + 0x56bb60]
cmp dword [ebx + 0x28], 0x16
je 0x56a6fe
test esi, esi
jne case.0x569b61.13
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x56aa42
cmp ecx, 0x7e
je 0x56a4bb
mov eax, 0x80
cmp cx, ax
je 0x56a4bb
xor eax, eax
jmp 0x56a4c0
mov eax, 1
mov ebx, dword [esp + 0x14]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
movzx eax, word [eax]
or eax, 0x30000
mov dword [esp + 0x2c], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
mov byte [ebx + 0x30], 5
lea edi, [ecx + eax*2]
jmp 0x56aa42
mov eax, dword [esp + 0x14]
cmp cl, 0x7b
jne 0x56a508
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x56aa46
mov byte [ebx + 0x30], 7
jmp 0x56aa46
mov byte [ebx + 0x30], 1
jmp 0x56aa42
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x56a80b
mov eax, dword [esp + 0x58]
add eax, eax
add dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x56aa42
mov dword [ebx + 0x38], esi
dec dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x56a57a
lea eax, [esp + 0x5c]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0056bba0
mov eax, dword [esp + 0x70]
inc edi
add esp, 0x14
lea esi, [esi + eax*2]
mov dword [ebx + 0x38], esi
cmp edi, dword [ebx + 0x24]
jb 0x56a555
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x56aa42
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1e
jmp 0x56aa42
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x20
jmp 0x56aa42
cmp esi, dword [ebp + 0x54]
jae case.0x5688c1.13
cmp word [esi], 0xa
jne case.0x5688c1.13
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x56aa42
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x5688c1.13
cmp esi, dword [ebp + 0x54]
jb case.0x5688c1.13
cmp dword [ebp + 0x88], 0
jne case.0x5688c1.13
cmp dword [ebp + 0x8c], 2
jne case.0x5688c1.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x5688c1.13
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x64
jmp 0x56aa42
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x56a638
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x56aa42
mov ecx, dword [esp + 0x14]
lea eax, [ebx + edi*2]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x56aa42
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x56aa42
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xcf
jmp 0x56aa42
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd0
jmp 0x56aa42
movzx edx, word [ecx]
add ecx, 2
mov edi, dword [esp + 0x18]
mov esi, ecx
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x56a6bd
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56a6bd
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
mov dword [ebx + 0x38], esi
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
push 0
push edi
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push edx
call fcn.00592800
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x56a6fe
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x56a6fe
cmp eax, dword [ebp + 0x5c]
ja 0x56a6ee
cmp dword [ebp + 0x24], 0
je 0x56a6fe
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5627e4
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xda
jmp 0x56aa42
cmp edx, dword [ebp + 0x54]
jae case.0x569b61.13
cmp word [edx], 0xa
jne case.0x569b61.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x56aa42
movzx eax, word [ebp + 0x3c]
mov esi, eax
test ax, ax
je case.0x569b61.13
cmp edx, dword [ebp + 0x54]
jb case.0x569b61.13
cmp dword [ebp + 0x88], 0
jne case.0x569b61.13
cmp dword [ebp + 0x8c], 2
jne case.0x569b61.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x569b61.13
mov dword [ebp + 0x1c], 1
cmp esi, 1
ja 0x5627e4
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x56aa42
mov byte [ebx + 0x30], 0x11
jmp 0x56aa3d
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x56aa42
mov ecx, dword [esp + 0x14]
add edi, 2
mov dword [ecx + 4], edi
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ecx + 4], edi
cmp word [edi], 0x78
je 0x56a793
add edi, 4
mov byte [ecx + 0x30], 0xa
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
add edi, 2
mov ecx, 0x89
mov dword [ebx + 0x28], 1
mov dword [ebx], edi
movzx eax, word [edi]
cmp ax, cx
je 0x56a7f5
mov ecx, 0x8e
cmp ax, cx
jne 0x56a7e3
jmp 0x56a7f5
mov ebx, dword [esp + 0x14]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x56a7fe
mov ebx, dword [esp + 0x14]
mov dword [ebx + 0x28], 0
movzx eax, word [edi + 4]
or eax, 0x10000
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 8], edi
mov eax, dword [ebx + 0x38]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
mov byte [ebx + 0x30], 8
lea edi, [ecx + eax*2]
jmp 0x56aa42
movzx eax, word [edi + 4]
or eax, 0x10000
jmp 0x56a843
movzx eax, bl
or eax, 0x20000
mov ebx, dword [esp + 0x14]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [edi]
movzx eax, byte [eax + 0x6b4968]
mov byte [ebx + 0x30], 2
lea edi, [edi + eax*2]
jmp 0x56aa42
mov ecx, dword [ebp + 0x48]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x56a879
xor edi, edi
jmp 0x56a87d
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x14]
cmp dword [ebp + 0x44], 0xffffffff
je 0x56a8c3
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x56a8c3
mov ecx, dword [esp + 0x74]
mov edx, edi
or edx, 0x40000
mov esi, dword [ecx + 0x18]
nop
add eax, esi
mov ecx, eax
sub ecx, dword [esp + 0x70]
cmp dword [eax + 0x1c], edx
je 0x56a8b7
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x56a8a0
jmp 0x56a8c3
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x56abef
mov dword [ebp + 4], ebx
or edi, 0x40000
mov ebx, dword [esp + 0x14]
mov dword [ebx + 0x20], edi
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6b4968]
mov byte [ebx + 0x30], 0xb
lea edi, [ecx + eax*2]
jmp 0x56aa42
movzx eax, bl
mov ebx, dword [esp + 0x14]
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [edi]
movzx eax, byte [eax + 0x6b4968]
mov byte [ebx + 0x30], 3
lea edi, [edi + eax*2]
jmp 0x56aa42
movzx eax, bl
mov ebx, dword [esp + 0x14]
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x2c], eax
movzx eax, word [edi]
movzx eax, byte [eax + 0x6b4968]
mov byte [ebx + 0x30], 4
lea edi, [edi + eax*2]
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
lea eax, [edi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6b4968]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x56aa3d
movzx eax, word [edi]
movzx eax, byte [eax + 0x6b4968]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0xd
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
lea eax, [edi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6b4968]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x56aa3d
movzx eax, word [edi]
movzx eax, byte [eax + 0x6b4968]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0xe
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
lea eax, [edi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6b4968]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x56aa3d
movzx eax, word [edi]
movzx eax, byte [eax + 0x6b4968]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0x10
jmp 0x56aa42
movzx eax, word [edi]
movzx eax, byte [eax + 0x6b4968]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0x12
jmp 0x56aa42
mov ebx, dword [esp + 0x14]
lea eax, [edi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x6b4968]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x13
add ecx, eax
lea edi, [edx + ecx*2]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
lea esi, [eax + ebp]
mov dword [esp + 0x28], esi
cmp esi, dword [esp + 0x48]
jb 0x56ab0c
mov eax, dword [esp + 0x74]
mov esi, dword [eax + 0x1c]
mov eax, dword [esp + 0x78]
lea ebx, [esi + esi]
mov ecx, dword [eax + 0xc]
cmp ebx, ecx
jbe 0x56aa82
xor edx, edx
mov eax, ecx
div ebp
mov ebx, ecx
sub ebx, edx
cmp esi, ebx
jae 0x56abfc
mov eax, dword [esp + 0x74]
push dword [eax + 8]
mov esi, dword [eax]
mov ecx, esi
push ebx
call dword [0x5cb3f0]
call esi
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x56ac09
mov esi, dword [esp + 0x74]
push dword [esp + 0x44]
push dword [esi + 0x18]
push ebp
call fcn.00597bd0
mov ecx, dword [esi + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov eax, ebp
sub eax, ecx
add edx, eax
push dword [esi + 8]
mov esi, dword [esi + 4]
mov dword [esp + 0x18], edx
add edx, dword [esp + 0x74]
push ecx
mov ecx, esi
mov dword [esp + 0x30], edx
call dword [0x5cb3f0]
call esi
mov eax, dword [esp + 0x7c]
xor edx, edx
mov esi, dword [esp + 0x30]
add esp, 8
mov dword [eax + 0x18], ebp
mov dword [eax + 0x1c], ebx
mov eax, ebx
div dword [esp + 0x70]
mov eax, ebx
sub eax, edx
mov dword [esp + 0x44], eax
add eax, ebp
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
push dword [esp + 0x4c]
add eax, 0x38
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00597bd0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
mov eax, dword [eax + 0x18]
inc eax
mov dword [esi + 0x18], eax
mov eax, esi
mov esi, dword [esp + 0x70]
jmp 0x560c26
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret
mov eax, ebp
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov dword [eax + 0x58], edx
mov eax, dword [ebx + 0x50]
mov dword [ecx + 0x38], eax
mov eax, dword [ebx + 0x40]
mov dword [ecx + 0x64], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x60]
jbe 0x56ab70
mov dword [ecx + 0x60], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x4c]
mov edi, dword [esp + 0x74]
sar eax, 1
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ecx + 0x4c]
sar eax, 1
mov dword [edi + 0x38], eax
movzx esi, word [edi + 0x2e]
movzx eax, word [esp + 0x6c]
inc eax
cmp eax, esi
cmovbe esi, eax
add esi, esi
lea eax, [esi*4 - 8]
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x3c]
push eax
call fcn.00597bd0
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x56abd8
lea edx, [edi + 0x34]
lea edx, [edx + esi*4]
mov dword [edx], 0xffffffff
lea edx, [edx - 4]
mov ecx, dword [ebx + 0x50]
dec esi
add ecx, 2
cmp esi, ecx
jae 0x56abc4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffcc
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffc1
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd0
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd4
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd1
pop ebx
add esp, 0x50
ret