Function at 0x55a4f0
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 0x55a5d6
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 0x55a5d0
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 0x5645a3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x55a624
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x50
ret
mov ebp, eax
jmp 0x55a628
mov ebp, dword [esp + 0x78]
jmp 0x55a624
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.0x562241.15
movzx eax, byte [eax + 0x56470c]
jmp dword [eax*4 + 0x5645b0]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0xffffffff
jne 0x55a6c8
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x562241.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 0x55a68f
mov eax, dword [edx + 0x4c]
jmp 0x55a664
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 0x55a6c4
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6a2a28]
lea eax, [ecx + eax*2]
jmp 0x55a61a
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x55a6eb
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x14]
mov esi, 0xfffffc19
mov dword [esp + 0x30], eax
jmp 0x55a980
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0xffffffff
je 0x55a76e
mov eax, dword [eax + 0x4c]
nop word [eax + eax]
cmp eax, 0xffffffff
je case.0x562241.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 0x55a740
mov eax, dword [ecx + 0x4c]
jmp 0x55a710
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 0x55a628
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x55a7a0
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x78]
test al, 4
jne 0x55a972
test al, 8
je 0x55a7a0
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je 0x55a972
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x54]
jae 0x5644ce
mov ebp, dword [esp + 0x78]
mov eax, dword [eax + 0x7c]
or eax, dword [ebp + 0x78]
test eax, 0x20000000
je 0x5644cc
test bl, bl
jne 0x5644c2
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x78]
mov esi, dword [eax + 0x88]
test esi, esi
je 0x55a815
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 0x54]
cmp ecx, edx
jae 0x55a85f
push dword [esp + 0x18]
add eax, 0x8c
push eax
push edx
push esi
push ecx
call fcn.0058a7d0
add esp, 0x14
test eax, eax
je 0x55a857
mov ebp, dword [esp + 0x78]
xor esi, esi
jmp 0x55a978
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 0x55a85d
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x55a85d
cmp esi, 1
je case.default.0x56225e
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
jne 0x55a85d
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x78]
jmp 0x55a85f
mov eax, ebp
movzx eax, word [eax + 0x3c]
mov ebp, dword [esp + 0x78]
mov edx, eax
test ax, ax
je case.0x55a64c.13
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, 2
cmp ecx, eax
jne case.0x55a64c.13
mov eax, ebp
cmp dword [eax + 0x88], 0
jne 0x55a8b1
cmp dword [eax + 0x8c], 2
jne 0x55a8b1
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.0x55a64c.13
mov eax, ebp
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov ebp, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x55a8f2
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x55a8eb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x55a8d9
cmp dword [eax + 0x24], 0
je 0x55a8e9
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov ebp, eax
xor esi, esi
jmp 0x55a978
mov edx, dword [esp + 0x18]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x55a928
cmp ecx, dword [ebp + 0x54]
jae 0x55a928
mov ax, word [ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x55a924
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 0x55a628
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jb 0x55a9ca
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x55a972
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x55a962
cmp dword [eax + 0x24], 0
je 0x55a972
cmp edx, 1
mov dword [eax + 0x1c], 1
ja 0x55c164
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 0x55a98b
mov dword [ebp + 0x60], eax
mov ebx, dword [esp + 0x14]
cmp dword [ebx + 0x18], 0
je 0x564565
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.0x562241.15
movzx eax, byte [eax + 0x5648ac]
jmp dword [eax*4 + 0x5647b4]
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 0x55a628
mov eax, dword [esp + 0x14]
test edx, edx
je 0x55aab4
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 0x55aa25
mov dword [eax + 0xc], 2
mov edx, 2
jmp 0x55aa2a
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 0x55aa7d
cmp ecx, esi
jb 0x55a8eb
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x55a8eb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x55aa64
cmp dword [eax + 0x24], 0
je 0x55a8e9
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov ebp, eax
xor esi, esi
jmp 0x55a978
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 0x55aaad
add dword [eax + 0xc], 0xffffffff
jne 0x55aa81
jmp 0x55a620
xor esi, esi
jmp 0x55a97c
mov esi, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x55aafb
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55aaf0
mov eax, dword [esp + 0x78]
cmp esi, dword [eax + 0x5c]
ja 0x55aade
cmp dword [eax + 0x24], 0
je 0x55aaee
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x55c164
mov ebp, eax
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
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 0x563ba2
xor esi, esi
mov eax, ebx
jmp 0x55a980
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ecx + 0x54]
jb 0x55ab6b
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x55ab5c
mov eax, dword [esp + 0x78]
cmp ebp, dword [eax + 0x5c]
ja 0x55ab4c
cmp dword [eax + 0x24], 0
je 0x55ab5c
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
xor esi, esi
mov ebp, dword [esp + 0x78]
jmp 0x55a980
test edx, edx
je 0x55aca9
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 0x55abc1
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 0x55abc5
mov eax, dword [esp + 0x14]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x55ac15
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x55abe0
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov edx, dword [esp + 0x18]
je 0x55abf9
mov eax, dword [esp + 0x14]
xor esi, esi
mov ebp, ecx
jmp 0x55a980
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 0x55a628
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ac4e
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 0x55ac52
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
lea eax, [edi + ebx*2]
mov dword [ecx], eax
cmp edx, esi
je 0x55a620
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x68b2c8]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6870bc]
add eax, esi
cmp edx, eax
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x55a628
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
cmp dword [esp + 0x38], 0
je 0x55ad2c
movzx esi, word [edi + 2]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x55ace4
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x55accf
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
je 0x55ad61
xor esi, esi
mov ebp, ecx
jmp 0x55a978
cmp edx, esi
je 0x55ad61
mov eax, esi
test eax, eax
jns 0x55acf1
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x68b2c8]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x55ad0d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6870bc]
add eax, esi
cmp edx, eax
je 0x55ad61
jmp 0x55a972
movzx eax, word [edi + 2]
mov ebx, 0xff
mov edx, eax
cmp ax, bx
ja 0x55ad43
mov eax, dword [ecx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, bx
ja 0x55ad59
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x55a972
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 0x55a620
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x55a948
lea eax, [edi + 2]
test edx, edx
je 0x55ae7c
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 0x55add4
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 0x55ae12
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 0x55ae21
xor esi, esi
jmp 0x55a978
cmp bl, 0x20
jne 0x55a620
cmp edx, 0x7f
jbe 0x55ae5a
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x68b2c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x6870bc]
jmp 0x55ae61
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
jne 0x55a628
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
cmp dword [esp + 0x38], 0
lea esi, [ecx + 2]
mov ebp, dword [esp + 0x78]
je 0x55af18
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 0x55aeab
xor esi, esi
jmp 0x55a978
cmp byte [esp + 0x13], 0x20
mov esi, dword [esp + 0x70]
jne 0x55a624
cmp edx, 0x7f
jbe 0x55aefa
mov eax, edx
test eax, eax
jns 0x55aec8
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x68b2c8]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x55aee4
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x6870bc]
jmp 0x55af01
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [esp + 0x18]
jne 0x55a628
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
movzx edx, word [eax]
mov eax, dword [esp + 0x14]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.default.0x56225e
cmp bl, 0x20
jne 0x55af49
cmp edx, 0xff
ja 0x55af49
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.default.0x56225e
lea eax, [edi + 4]
jmp 0x55a61a
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 0x55b08f
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 0x55b08b
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 0x55b08b
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 0x55b08b
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 0x55b08b
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 0x55b08b
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 0x55b08b
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 + 0x6864a0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x6864cc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x6864f8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x55b495
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 0x55b0e7
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 0x55b0fe
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 0x55b48c
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x31], 0x2e
jb 0x55b14a
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x68b2c8]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x6870bc]
add ecx, esi
cmp ecx, esi
je 0x55b14a
mov eax, dword [esp + 0x14]
add eax, 0x32
push eax
push ecx
call fcn.0058a980
add esp, 8
jmp 0x55b14c
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 0x55b294
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x38]
jmp 0x55b178
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 0x55b1ef
mov eax, dword [esp + 0x14]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x55b1a9
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55b1b2
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55b198
cmp esi, 0xfffffffc
je 0x55b273
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55b1ef
cmp esi, 0xfffffffd
je 0x55b273
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55b1ef
cmp esi, 0xfffffffe
je 0x55b273
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55b1ef
cmp esi, 0xffffffff
je 0x55b273
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55b273
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x55b3f8
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x55b3f8
mov edx, dword [esp + 0x14]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x55b231
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55b236
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55b220
cmp esi, 0xfffffffc
je 0x55b273
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55b3f8
cmp esi, 0xfffffffd
je 0x55b273
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55b3f8
cmp esi, 0xfffffffe
je 0x55b273
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55b3f8
cmp esi, 0xffffffff
je 0x55b273
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x55b3f8
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 0x55b174
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 0x55a628
cmp dword [esp + 0x1c], 0
je 0x563fcd
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 0x55b471
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 0x55b357
mov eax, dword [esp + 0x14]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x55b311
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55b31a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55b300
cmp esi, 0xfffffffc
je 0x55b3d4
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55b357
cmp esi, 0xfffffffd
je 0x55b3d4
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55b357
cmp esi, 0xfffffffe
je 0x55b3d4
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55b357
cmp esi, 0xffffffff
je 0x55b3d4
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55b3d4
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x55b43d
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x55b43d
mov edx, dword [esp + 0x14]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x55b396
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55b39b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55b385
cmp esi, 0xfffffffc
je 0x55b3d4
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55b43d
cmp esi, 0xfffffffd
je 0x55b3d4
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55b43d
cmp esi, 0xfffffffe
je 0x55b3d4
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55b43d
cmp esi, 0xffffffff
je 0x55b3d4
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x55b43d
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 0x55b2d7
mov ebp, dword [esp + 0x78]
jmp 0x55b471
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb 0x55a8eb
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55a8eb
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x55b424
cmp dword [eax + 0x24], 0
je 0x55a8e9
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x55c164
mov ebp, eax
xor esi, esi
jmp 0x55a978
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb 0x55b46d
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55b46d
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x55b45d
cmp dword [eax + 0x24], 0
je 0x55b46d
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x1c], 2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x55a628
mov ecx, dword [eax + 0x38]
jmp 0x562878
mov eax, dword [esp + 0x14]
mov dword [eax + 0x28], edx
jmp 0x55b4a6
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 0x55b5fb
test ebx, ebx
jne 0x55b4ba
cmp dword [esp + 0x38], ebx
je 0x55b4ec
cmp edx, 0x7f
jbe 0x55b4ec
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x68b2c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6870bc]
add eax, edx
jmp 0x55b4ff
cmp edx, 0xff
ja 0x55b4fd
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x55b4ff
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 0x55b551
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x55a948
mov ebx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x55b542
cmp dword [ebx + 0x2c], eax
jne 0x55a972
mov eax, dword [esp + 0x14]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, esi
jbe 0x55b520
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x78]
cmp esi, edx
je 0x55a620
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x561f88
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x55b5cb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x55b5a1
mov ebx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x55b590
cmp dword [ebx + 0x2c], eax
jne 0x55b5cf
mov eax, dword [esp + 0x14]
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x55b576
jmp 0x55b5cb
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x55b5cb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x55b5bb
cmp dword [eax + 0x24], 0
je 0x55b5cb
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp ebp, 2
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
je 0x55a628
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x55a620
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1a
jmp 0x5643c2
mov edi, dword [eax + 0x20]
mov esi, 1
cmp edi, esi
jb 0x55b634
mov edx, dword [eax + 0x38]
mov ebx, dword [esp + 0x14]
nop
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x54]
jae 0x55b685
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
jne 0x55a972
inc esi
cmp esi, edi
jbe 0x55b610
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
cmp edi, edx
je 0x55a624
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x562015
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, edx
jae 0x55b6d9
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x55b6af
mov ebx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x55b6dd
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, edx
jb 0x55b661
jmp 0x55b6d9
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x55a972
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x5c]
ja 0x55b6a7
cmp dword [eax + 0x24], 0
je 0x55a972
cmp ecx, 1
jmp 0x55a965
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x55b6d9
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x55b6c9
cmp dword [eax + 0x24], 0
je 0x55b6d9
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp ebp, 2
mov ebp, dword [esp + 0x78]
je 0x55a628
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x55a620
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1c
jmp 0x5643c2
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 0x55b855
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 0x55b851
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 0x55b851
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 0x55b851
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 0x55b851
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 0x55b851
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 0x55b851
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 + 0x6864a0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x6864cc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x6864f8]
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 0x55b8a3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x14]
jne 0x55b8a3
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 0x55bbb3
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x55b8bb
cmp dword [esp + 0x38], edx
je 0x55b8ed
cmp esi, 0x7f
jbe 0x55b8ed
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x68b2c8]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6870bc]
add eax, esi
jmp 0x55b900
cmp esi, 0xff
ja 0x55b8fe
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + esi]
jmp 0x55b900
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 0x55ba79
mov esi, 1
cmp ebx, esi
jb 0x55b997
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
jmp 0x55b934
mov eax, dword [esp + 0x14]
cmp edx, dword [ebp + 0x54]
jae 0x55ba44
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55b979
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 0x55b97d
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], ecx
je case.default.0x56225e
cmp dword [eax + 0x2c], ecx
je case.default.0x56225e
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x55b930
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x55a624
cmp dword [esp + 0x1c], 0
je 0x563dad
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 0x55bb3f
cmp ebx, eax
jae 0x55bb39
nop dword [eax]
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x55baf8
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ba1e
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 0x55bb1e
cmp dword [eax + 0x2c], edx
je 0x55bb1e
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x55b9e0
jmp 0x55bb1e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55ba62
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov edx, 1
cmp ebx, edx
jb 0x55b997
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
nop dword [eax]
cmp ecx, dword [ebp + 0x54]
jae 0x55bac3
mov esi, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [esi + 0x28], eax
je case.default.0x56225e
cmp dword [esi + 0x2c], eax
je case.default.0x56225e
mov eax, esi
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x55ba90
jmp 0x55b997
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x55bae1
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x55bb1a
cmp ecx, dword [ebp + 0x5c]
ja 0x55bb0e
cmp dword [ebp + 0x24], 0
je 0x55bb1a
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
mov esi, dword [esp + 0x70]
je 0x55a628
mov ecx, dword [eax + 0x38]
jmp 0x562963
mov eax, dword [esp + 0x14]
jmp 0x55bb22
cmp ebx, eax
jae 0x55bbad
cmp ecx, dword [ebp + 0x54]
jae 0x55bb68
mov edx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x55bb8e
cmp dword [edx + 0x2c], eax
mov eax, edx
je 0x55bb92
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x55bb43
jmp 0x55bb92
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x55bb8e
cmp ecx, dword [ebp + 0x5c]
ja 0x55bb7e
cmp dword [ebp + 0x24], 0
je 0x55bb8e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
je 0x55a628
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x14]
jmp 0x5620c0
mov eax, dword [esp + 0x14]
jmp 0x55bb96
cmp dword [esp + 0x18], 0
mov esi, 1
mov ebx, dword [eax + 0x20]
mov eax, ebx
je 0x55bd10
cmp ebx, esi
jb 0x55bc3e
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
jmp 0x55bbe4
mov eax, dword [esp + 0x14]
cmp edx, dword [ebp + 0x54]
jae 0x55bcdb
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55bc29
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 0x55bc2d
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], ecx
je case.default.0x56225e
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x55bbe0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x55a624
cmp dword [esp + 0x1c], 0
je 0x563dc7
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 0x55bdbd
cmp ebx, eax
jae 0x55bda5
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x55bd7f
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55bcbe
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 0x55bda1
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x55bc80
jmp 0x55bda1
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55bcf9
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
cmp ebx, 1
jb 0x55bc3e
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x55bd4a
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 0x55aaad
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x55bd20
jmp 0x55bc3e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55bd68
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x55bda1
cmp ecx, dword [ebp + 0x5c]
ja 0x55bd95
cmp dword [ebp + 0x24], 0
je 0x55bda1
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x55c164
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
mov esi, dword [esp + 0x70]
je 0x55a628
mov ebx, dword [esp + 0x14]
jmp 0x562a3f
cmp ebx, eax
jae 0x55be26
cmp ecx, dword [ebp + 0x54]
jae 0x55bde1
mov edx, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
mov eax, edx
je 0x55be0b
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x55bdc1
jmp 0x55be0b
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x55be07
cmp ecx, dword [ebp + 0x5c]
ja 0x55bdf7
cmp dword [ebp + 0x24], 0
je 0x55be07
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
je 0x55a628
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x14]
jmp 0x562155
mov eax, dword [esp + 0x14]
jmp 0x55be0f
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.0x55be4f
movzx eax, byte [eax + 0x564998]
jmp dword [eax*4 + 0x564990]
mov edx, dword [esp + 0x14]
lea eax, [edi + 2]
mov edi, dword [esp + 0x14]
mov ebx, dword [ecx*4 + 0x686370]
mov dword [esp + 0x1c], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x14]
mov edx, dword [ecx*4 + 0x686318]
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x686344]
mov dword [edi + 0x24], eax
jmp 0x55bed4
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 + 0x686370]
mov dword [esp + 0x1c], eax
lea eax, [edi + 6]
mov dword [ecx], eax
jmp 0x55bed4
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 0x55bfc6
cmp edx, ebx
jb 0x55c05a
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x38]
nop dword [eax]
cmp edi, dword [ebp + 0x54]
jae 0x55bf91
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55bf45
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 0x55bf49
mov eax, dword [esp + 0x14]
cmp esi, 0xff
jbe 0x55bf5d
cmp byte [eax + 0x31], 0x6e
je case.default.0x56225e
jmp 0x55bf7c
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 0x55aaad
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x55c05a
mov eax, dword [esp + 0x14]
jmp 0x55bf00
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edi, dword [ebp + 0x5c]
ja 0x55bfaf
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
cmp edx, 1
jb 0x55c05a
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x38]
cmp edi, dword [ebp + 0x54]
jae 0x55c025
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x55bff8
cmp byte [eax + 0x31], 0x6e
je case.default.0x56225e
jmp 0x55c017
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 0x55aaad
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x55c05a
mov eax, dword [esp + 0x14]
jmp 0x55bfd6
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edi, dword [ebp + 0x5c]
ja 0x55c043
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
mov ebp, dword [ebx + 0x24]
cmp eax, ebp
je 0x55a614
cmp dword [esp + 0x1c], 0
je 0x563de1
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 0x55c177
cmp dword [esp + 0x24], eax
jae 0x55c171
nop dword [eax]
mov eax, dword [esp + 0x78]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x55c144
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c0e2
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 0x55c110
cmp byte [eax + 0x31], 0x6e
jne 0x55c12b
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
jne 0x563fb4
mov esi, dword [esp + 0x70]
jmp 0x55a628
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 0x55c0f4
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 0x55c0a0
jmp 0x55c0f4
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55c0f8
cmp edi, dword [ebp + 0x5c]
ja 0x55c15c
cmp dword [ebp + 0x24], 0
je 0x55c0f8
mov dword [ebp + 0x1c], ebx
cmp ecx, 1
jbe 0x55c0f8
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x50
ret
mov ebp, dword [esp + 0x78]
jmp 0x55c0fc
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jae 0x55c21a
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
nop dword [eax + eax]
cmp edi, dword [ecx + 0x54]
jae 0x55c1ee
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x55c1c2
cmp byte [eax + 0x31], 0x6e
jne 0x55c1e1
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 2
jne 0x561efc
mov esi, dword [esp + 0x70]
jmp 0x55a628
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 0x55c1a6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
add edi, 2
inc ebx
mov dword [eax + 0x38], edi
cmp ebx, ebp
jb 0x55c190
jmp 0x55c1a6
mov ebp, dword [esp + 0x78]
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55c1aa
cmp edi, dword [ebp + 0x5c]
ja 0x55c208
cmp dword [ebp + 0x24], 0
je 0x55c1aa
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
jmp 0x55c1aa
mov ebp, dword [esp + 0x78]
jmp 0x55c1ae
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.0x55c24b
movzx eax, byte [eax + 0x5649ac]
jmp dword [eax*4 + 0x5649a4]
mov ecx, dword [esp + 0x14]
lea eax, [edx + 2]
mov esi, dword [edi*4 + 0x686344]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [edi*4 + 0x686318]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
mov eax, dword [edi*4 + 0x686370]
mov dword [ebx], esi
mov dword [esp + 0x1c], eax
jmp 0x55c2ba
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 0x55c2a3
mov dword [ebx], 0xffffffff
or esi, 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x686370]
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 0x55c36b
mov esi, 1
jmp 0x55c2f4
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 0x55c2f4
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x55c440
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55c345
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c341
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.0058c7d0
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x14]
je 0x55aaad
mov ecx, dword [eax + 0x20]
inc esi
cmp esi, ecx
jbe 0x55c2f0
mov esi, dword [edi]
cmp ecx, esi
je 0x55a620
cmp dword [esp + 0x1c], 0
je 0x563f7f
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
mov edi, dword [eax + 0x20]
cmp edi, esi
jae 0x55c426
jmp 0x55c395
mov eax, dword [esp + 0x14]
mov esi, 1
cmp edx, dword [ebp + 0x54]
jae 0x55c404
cmp dword [esp + 0x18], 0
movzx ecx, word [edx]
je 0x55c3da
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c3d6
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.0058c7d0
add esp, 0xc
test eax, eax
je 0x55c426
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 0x55c391
jmp 0x55c426
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55c426
cmp edx, dword [ebp + 0x5c]
ja 0x55c41a
cmp dword [ebp + 0x24], 0
je 0x55c426
mov dword [ebp + 0x1c], esi
cmp ecx, 1
ja 0x55c164
cmp dword [esp + 0x1c], 2
je 0x55a620
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x5643c2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c45e
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c4b6
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c49f
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55c4f9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c4f9
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 0x55c4fd
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x55ca76.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x55ca76.8203
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c55e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c547
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55c5a1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c5a1
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 0x55c5a5
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.default.0x56225e
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x55a624
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c609
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c5f2
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55c64c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c64c
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 0x55c650
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x55ca76.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x55ca76.8203
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c6b1
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c69a
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55c6f4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c6f4
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 0x55c6f8
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.default.0x56225e
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x55a624
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c75c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c745
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55c79f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c79f
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 0x55c7a3
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x55ca76.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x55ca76.8203
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c804
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c7ed
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55c847
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c847
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 0x55c84b
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x56225e
lea eax, [edi + 2]
mov dword [edx], eax
jmp 0x55a624
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c8af
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c898
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55c8f2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c8f2
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 0x55c960
je case.0x55c908.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x56225e
jmp dword [ecx*4 + 0x5649b8]
cmp esi, dword [ebp + 0x54]
jb 0x55c946
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.0x55c908.10
cmp esi, dword [ebp + 0x5c]
ja 0x55c92a
cmp dword [ebp + 0x24], 0
je case.0x55c908.10
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
add dword [eax], 2
jmp 0x55a620
cmp word [esi], 0xa
jne case.0x55c908.10
mov ecx, dword [esp + 0x14]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x55a620
sub ecx, 0x2028
je case.0x55c908.11
sub ecx, 1
je case.0x55c908.11
xor esi, esi
jmp 0x55a978
cmp word [ebp + 0x3e], 2
jne case.0x55c908.10
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55c9c3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55c9ac
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55ca06
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ca06
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 0x55ca0a
mov edx, dword [esp + 0x14]
cmp ecx, 0x2000
ja 0x55ca4e
je case.default.0x56225e
cmp ecx, 0xa0
ja 0x55ca37
je case.default.0x56225e
cmp ecx, 9
je case.default.0x56225e
cmp ecx, 0x20
jmp 0x55c5b8
cmp ecx, 0x1680
je case.default.0x56225e
cmp ecx, 0x180e
jmp 0x55c5b8
cmp ecx, 0x3000
ja case.0x55ca76.8203
je case.default.0x56225e
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55ca76.8203
movzx eax, byte [ecx + 0x5649d0]
jmp dword [eax*4 + 0x5649c8]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55cabe
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55caa7
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55cb01
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55cb01
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 0x55cb05
mov edx, dword [esp + 0x14]
cmp ecx, 0x2000
ja 0x55cb59
je case.0x55ca76.8203
cmp ecx, 0xa0
ja 0x55cb3a
je case.0x55ca76.8203
cmp ecx, 9
je case.0x55ca76.8203
cmp ecx, 0x20
je case.0x55ca76.8203
xor esi, esi
jmp 0x55a978
cmp ecx, 0x1680
je case.0x55ca76.8203
cmp ecx, 0x180e
je case.0x55ca76.8203
xor esi, esi
jmp 0x55a978
cmp ecx, 0x3000
ja case.default.0x56225e
je case.0x55ca76.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x56225e
movzx eax, byte [ecx + 0x564a38]
jmp dword [eax*4 + 0x564a30]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55cbc9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55cbb2
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55cc0c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55cc0c
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 0x55cc10
mov edx, dword [esp + 0x14]
cmp ecx, 0x85
ja 0x55cc31
je case.default.0x56225e
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55ca76.8203
jmp dword [ecx*4 + 0x564a98]
sub ecx, 0x2028
je case.default.0x56225e
sub ecx, 1
jne case.0x55ca76.8203
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55cc8e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55cc77
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55ccd1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ccd1
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 0x55ccd5
mov edx, dword [esp + 0x14]
cmp ecx, 0x85
ja 0x55ccf6
je case.0x55ca76.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x56225e
jmp dword [ecx*4 + 0x564aa8]
sub ecx, 0x2028
je case.0x55ca76.8203
sub ecx, 1
je case.0x55ca76.8203
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x55cd53
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x55cd3c
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], ecx
je 0x55cd94
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55cd94
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 + 0x68b2c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
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.0x562241.15
jmp dword [eax*4 + 0x564ab8]
cmp cl, 0xf
je case.default.0x56225e
mov eax, dword [esp + 0x14]
add dword [eax], 6
jmp 0x55a620
mov al, byte [esi*4 + 0x6870b9]
cmp al, 9
je 0x55ce02
cmp al, 5
je 0x55ce02
cmp al, 8
je 0x55ce02
xor eax, eax
jmp 0x55ce07
mov eax, 1
cmp eax, ebx
jne 0x55cddf
xor esi, esi
jmp 0x55a978
movzx ecx, byte [esi*4 + 0x6870b9]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x6a2bc8]
sete dl
cmp edx, ebx
jne 0x55cddf
xor esi, esi
jmp 0x55a978
movzx eax, byte [esi*4 + 0x6870b9]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x55cddf
xor esi, esi
jmp 0x55a978
movzx eax, byte [esi*4 + 0x6870b8]
jmp 0x55ce3d
movzx ecx, word [edi + 4]
movzx eax, byte [esi*4 + 0x6870b8]
cmp cx, ax
je 0x55ce02
movzx edx, word [esi*4 + 0x6870c0]
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 + 0x686dc0], eax
jne 0x55ce02
xor eax, eax
jmp 0x55ce07
movzx eax, byte [esi*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x55ce02
cmp eax, 3
je 0x55ce02
xor eax, eax
jmp 0x55ce07
cmp edx, 0x20
ja 0x55cee1
je case.0x55cdcf.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x55cf51.8203
jmp dword [edx*4 + 0x564af0]
cmp edx, 0x2000
ja 0x55cf31
je case.0x55cdcf.0
cmp edx, 0x1680
ja 0x55cf29
je case.0x55cdcf.0
sub edx, 0x85
je case.0x55cdcf.0
sub edx, 0x1b
je case.0x55cdcf.0
movzx eax, byte [esi*4 + 0x6870b9]
xor ecx, ecx
cmp dword [eax*4 + 0x6a2bc8], 6
jmp 0x55ce43
cmp edx, 0x180e
jmp 0x55cf0c
cmp edx, 0x3000
ja case.0x55cf51.8203
je case.0x55cdcf.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x55cf51.8203
movzx eax, byte [edx + 0x564b0c]
jmp dword [eax*4 + 0x564b04]
movzx eax, byte [esi*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x55ce02
cmp eax, 3
je 0x55ce02
cmp edx, 0x5f
je 0x55ce02
xor eax, eax
jmp 0x55ce07
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x686af0]
lea eax, [eax*4 + 0x686af0]
cmp edx, ecx
jb 0x55cfad
nop
lea eax, [eax + 4]
cmp edx, ecx
je 0x55cfbf
mov ecx, dword [eax]
cmp edx, ecx
jae 0x55cfa0
cmp byte [esp + 0x13], 0xf
je 0x55cddf
xor esi, esi
jmp 0x55a978
cmp byte [esp + 0x13], 0xf
jne 0x55cddf
xor esi, esi
jmp 0x55a978
cmp edx, 0x24
je 0x55ce02
cmp edx, 0x40
je 0x55ce02
cmp edx, 0x60
je 0x55ce02
cmp edx, 0xa0
jb 0x55d000
cmp edx, 0xd7ff
jbe 0x55ce02
cmp edx, 0xe000
jae 0x55ce02
xor eax, eax
jmp 0x55ce07
mov ax, word [esi*4 + 0x6870c0]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
jmp 0x55ce43
movzx ecx, word [edi + 4]
movzx edx, word [esi*4 + 0x6870c2]
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 + 0x686568]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
jmp 0x55ce46
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x55d0a2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55d08b
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [esp + 0x18]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55d0e6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d0e6
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.0058c180
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x55d12b
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x55d12b
cmp eax, dword [ebp + 0x5c]
ja 0x55d11b
cmp dword [ebp + 0x24], 0
je 0x55d12b
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x70]
add dword [eax], 2
jmp 0x55a628
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 0x55d258
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 0x55d258
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 0x55d258
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 0x55d258
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 0x55d258
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 0x55d258
movzx ecx, word [edi]
add edi, 2
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ebp, dword [ecx*4 + 0x68634c]
mov dword [eax], edi
mov dword [eax + 0x20], ebp
mov eax, dword [ecx*4 + 0x686378]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x6863a4]
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 0x55d27a
cmp edx, 0xf
je 0x55d27a
or edx, 0xffffffff
jmp 0x55d296
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 0x55d401
mov edi, dword [eax + 0x28]
test edx, edx
js 0x55df4d
xor ebx, ebx
cmp edi, 0xf
sete bl
cmp edx, 0xd
ja case.0x562241.15
jmp dword [edx*4 + 0x564b6c]
cmp edi, 0xf
je 0x55a972
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 0x55d318
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov ecx, eax
test edi, edi
je 0x55d30c
and edx, 0xfc00
cmp edx, 0xd800
jne 0x55d30c
lea ecx, [eax + 2]
mov dword [ebx + 0x38], ecx
inc esi
cmp esi, ebp
jbe 0x55d2e0
mov esi, edi
jmp 0x55d409
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x55d340
cmp ecx, dword [ebp + 0x5c]
ja 0x55d330
cmp dword [ebp + 0x24], 0
je 0x55d340
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
xor esi, esi
mov edx, edi
jmp 0x55a980
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55d364
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55d457
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55d3b4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d3b4
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6870b9]
cmp al, 9
je 0x55d3eb
cmp al, 5
je 0x55d3eb
cmp al, 8
je 0x55d3eb
xor eax, eax
jmp 0x55d3f0
mov eax, 1
cmp eax, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55d360
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 0x55ad70
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24]
je 0x563df7
mov esi, dword [ebx + 0x38]
mov dword [ebx + 4], esi
mov ebx, dword [ebx + 0x28]
test ecx, ecx
js 0x55fc1a
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x24], eax
cmp ecx, 0xd
ja case.0x562241.15
jmp dword [ecx*4 + 0x564ba4]
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55d477
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55d4a4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55d545
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55d4f4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d4f4
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55d4a0
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55d565
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55d594
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55d62e
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55d5e4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d5e4
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55d590
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55d64e
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55d674
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55d70e
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55d6c4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d6c4
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b8]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55d670
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55d72e
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55d754
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55d81e
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55d7a4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d7a4
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x6870b8]
cmp eax, ecx
je 0x55d803
movzx edx, word [edx*4 + 0x6870c0]
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 + 0x686dc0], eax
jne 0x55d803
xor eax, eax
jmp 0x55d808
mov eax, 1
cmp eax, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55d750
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55d83e
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55d864
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55d90c
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55d8b4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d8b4
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x55d8f1
cmp eax, 3
je 0x55d8f1
xor eax, eax
jmp 0x55d8f6
mov eax, 1
cmp eax, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55d860
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55d92c
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov ebp, dword [esp + 0x78]
mov esi, 1
nop dword [eax]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x55da73
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55d99f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d99f
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 0x55d9a3
mov edx, dword [esp + 0x14]
cmp ecx, 0x20
ja 0x55d9bd
je case.0x55da67.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x55da67.8203
jmp dword [eax*4 + 0x564bdc]
cmp ecx, 0x2000
ja 0x55da4b
je case.0x55da67.8193
cmp ecx, 0x1680
ja 0x55da43
je case.0x55da67.8193
mov eax, ecx
sub eax, 0x85
je case.0x55da67.8193
sub eax, 0x1b
je case.0x55da67.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
cmp dword [eax*4 + 0x6a2bc8], 6
sete cl
cmp ecx, ebx
je case.default.0x56225e
inc esi
cmp esi, dword [edx + 0x20]
ja 0x55d401
mov eax, dword [esp + 0x14]
jmp 0x55d950
cmp ecx, 0x180e
jmp 0x55d9ed
cmp ecx, 0x3000
ja case.0x55da67.8203
je case.0x55da67.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x55da67.8203
movzx eax, byte [eax + 0x564bf8]
jmp dword [eax*4 + 0x564bf0]
cmp edi, 0xf
jmp 0x55da2a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55da91
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55dab6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55db65
cmp dword [esp + 0x18], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x55db06
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55db06
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 + 0x68b2c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x55db4a
cmp eax, 3
je 0x55db4a
cmp edx, 0x5f
je 0x55db4a
xor eax, eax
jmp 0x55db4f
mov eax, 1
cmp eax, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55dab2
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55db85
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov ebx, dword [esp + 0x18]
mov esi, 1
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x55dc4a
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55dbf7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dbf3
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 + 0x686af0]
lea eax, [eax*4 + 0x686af0]
cmp ecx, edx
jb 0x55dc1d
nop dword [eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x55dc34
mov edx, dword [eax]
cmp ecx, edx
jae 0x55dc10
cmp edi, 0xf
jne 0x55dc39
inc esi
cmp esi, ebp
ja 0x55d401
mov eax, dword [esp + 0x14]
jmp 0x55dba5
cmp edi, 0xf
jne 0x55dc22
mov eax, dword [esp + 0x14]
xor esi, esi
mov ebp, dword [esp + 0x78]
mov edx, ebx
jmp 0x55a980
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55dc72
cmp edx, dword [ebp + 0x5c]
ja 0x55dc62
cmp dword [ebp + 0x24], 0
je 0x55dc72
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
mov eax, dword [esp + 0x14]
xor esi, esi
mov edx, ebx
jmp 0x55a980
mov esi, 1
jmp 0x55dc94
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x55dd2b
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55dce5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dce5
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 0x55dd10
cmp ecx, 0x40
je 0x55dd10
cmp ecx, 0x60
je 0x55dd10
cmp ecx, 0xa0
jb 0x55dd04
cmp ecx, 0xd7ff
jbe 0x55dd10
cmp ecx, 0xe000
jae 0x55dd10
xor eax, eax
jmp 0x55dd15
mov eax, 1
cmp eax, ebx
je 0x55a972
inc esi
cmp esi, ebp
jbe 0x55dc90
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55dd4b
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x55dd74
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55de11
cmp dword [esp + 0x18], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55ddc4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ddc4
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6870c0]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x55a972
inc edi
cmp edi, ebp
jbe 0x55dd70
jmp 0x55d401
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55de31
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov esi, dword [eax + 0x38]
mov edi, 1
mov ecx, dword [esp + 0x78]
cmp esi, dword [ecx + 0x54]
jae 0x55df16
cmp dword [esp + 0x18], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x55dea4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dea0
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 + 0x68b2c8]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6870c2]
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 + 0x686568]
and ecx, eax
mov eax, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
je 0x55df0b
inc edi
cmp edi, ebp
jbe 0x55de50
jmp 0x55d401
mov ebp, dword [esp + 0x78]
xor esi, esi
jmp 0x55a97c
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x55df36
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
cmp edi, 0x16
jne 0x55e040
mov ebp, dword [esp + 0x78]
mov edi, 1
mov esi, dword [ebp + 0x54]
jmp 0x55df68
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, esi
jae 0x55e00b
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 0x55dfb6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dfb6
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.0058c180
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x55dffc
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x55dffc
cmp eax, dword [ebp + 0x5c]
ja 0x55dfec
cmp dword [ebp + 0x24], 0
je 0x55dffc
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x55df64
jmp 0x55d405
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x55e029
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x562241.15
mov esi, dword [esp + 0x18]
test esi, esi
je 0x55e9ec
jmp dword [eax*4 + 0x564c58]
jmp dword [eax*4 + 0x564d98]
cmp edi, ebp
jae 0x55fbf7
mov eax, dword [esp + 0x78]
mov ecx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f23e
cmp dword [esp + 0x18], 0
je 0x55f221
mov eax, 0xfc00
mov edx, 0xd800
and ax, word [esi]
cmp ax, dx
mov eax, 2
cmove ecx, eax
cmp ebx, 0xf
je 0x55fbf7
mov eax, dword [esp + 0x14]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x55f1f4
jmp 0x55fbf7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55fbfb
cmp esi, dword [ebp + 0x5c]
ja 0x55f25e
cmp dword [ebp + 0x24], 0
je 0x55fbfb
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
jmp 0x55fbfb
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x24]
nop
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f325
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f2c9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f2c9
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6870b9]
cmp al, 9
je 0x55f300
cmp al, 5
je 0x55f300
cmp al, 8
je 0x55f300
xor eax, eax
jmp 0x55f305
mov eax, 1
cmp eax, ebx
je 0x55fbf7
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x55f280
jmp 0x55fbf7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55fbfb
cmp esi, dword [ebp + 0x5c]
ja 0x55f345
cmp dword [ebp + 0x24], 0
je 0x55fbfb
mov dword [ebp + 0x1c], edx
cmp ecx, 1
ja 0x55c164
jmp 0x55fbfb
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f325
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f3a7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f3a7
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x55fbf7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x55f362
jmp 0x55fbf7
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x14]
nop dword [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f325
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f459
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f459
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x55fbf7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x55f410
jmp 0x55fbf7
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f325
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f4fc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f4fc
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b8]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x55fbf7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x55f4b3
jmp 0x55fbf7
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x24]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x55f635
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f5a9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f5a9
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x6870b8]
cmp eax, ecx
je 0x55f608
movzx edx, word [edx*4 + 0x6870c0]
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 + 0x686dc0], eax
jne 0x55f608
xor eax, eax
jmp 0x55f60d
mov eax, 1
cmp eax, ebx
je 0x55fbf7
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 0x55f560
jmp 0x55fbf7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55fbfb
cmp esi, dword [ebp + 0x5c]
ja 0x55f655
cmp dword [ebp + 0x24], 0
je 0x55fbfb
mov dword [ebp + 0x1c], edi
jmp 0x55f348
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x24]
nop dword [eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f325
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f6b9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f6b9
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x55f6f6
cmp eax, 3
je 0x55f6f6
xor eax, eax
jmp 0x55f6fb
mov eax, 1
cmp eax, ebx
je 0x55fbf7
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x55f670
jmp 0x55fbf7
cmp edi, ebp
mov ebp, dword [esp + 0x78]
jae 0x55fbfb
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x55f327
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f775
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f775
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 0x55f78f
je case.0x55f845.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x55f845.8203
jmp dword [eax*4 + 0x564ed8]
cmp ecx, 0x2000
ja 0x55f829
je case.0x55f845.8193
cmp ecx, 0x1680
ja 0x55f821
je case.0x55f845.8193
mov eax, ecx
sub eax, 0x85
je case.0x55f845.8193
sub eax, 0x1b
je case.0x55f845.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
cmp dword [eax*4 + 0x6a2bc8], 6
sete cl
cmp ecx, dword [esp + 0x24]
je 0x55fbfb
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x55f730
jmp 0x55fbfb
cmp ecx, 0x180e
jmp 0x55f7c3
cmp ecx, 0x3000
ja case.0x55f845.8203
je case.0x55f845.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x55f845.8203
movzx eax, byte [eax + 0x564ef4]
jmp dword [eax*4 + 0x564eec]
cmp ebx, 0xf
je 0x55fbfb
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x38]
jmp 0x55f80c
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x24]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x55f635
cmp dword [esp + 0x18], 0
movzx edx, word [esi]
je 0x55f8b9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f8b9
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 + 0x68b2c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x55f8fd
cmp eax, 3
je 0x55f8fd
cmp edx, 0x5f
je 0x55f8fd
xor eax, eax
jmp 0x55f902
mov eax, 1
cmp eax, ebx
je 0x55fbf7
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 0x55f870
jmp 0x55fbf7
cmp edi, ebp
jae 0x55fbf7
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x55f635
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55f97b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55f97b
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 + 0x686af0]
lea eax, [eax*4 + 0x686af0]
cmp ecx, edx
jb 0x55f9a1
lea eax, [eax + 4]
cmp ecx, edx
je 0x55f9c9
mov edx, dword [eax]
cmp ecx, edx
jae 0x55f994
cmp ebx, 0xf
jne 0x55fbf7
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 0x55f932
jmp 0x55fbf7
cmp ebx, 0xf
je 0x55fbf7
jmp 0x55f9aa
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f325
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55fa29
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55fa29
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 0x55fa54
cmp ecx, 0x40
je 0x55fa54
cmp ecx, 0x60
je 0x55fa54
cmp ecx, 0xa0
jb 0x55fa48
cmp ecx, 0xd7ff
jbe 0x55fa54
cmp ecx, 0xe000
jae 0x55fa54
xor eax, eax
jmp 0x55fa59
mov eax, 1
cmp eax, ebx
je 0x55fbf7
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x55f9e0
jmp 0x55fbf7
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x55f325
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55fad9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55fad9
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6870c0]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x55fbf7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x55fa90
jmp 0x55fbf7
cmp edi, ebp
jae 0x55fbf7
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x55f635
cmp dword [esp + 0x18], 0
movzx edx, word [esi]
je 0x55fb89
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55fb89
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 + 0x68b2c8]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6870c2]
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 + 0x686568]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x24]
je 0x55fbf7
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 0x55fb40
mov ebp, dword [esp + 0x78]
cmp dword [esp + 0x1c], 2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x55a628
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x38]
jmp 0x56381f
cmp ebx, 0x16
jne 0x55fd1a
cmp edi, ebp
mov ebp, dword [esp + 0x78]
jae 0x55fd02
mov esi, dword [ebp + 0x54]
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
mov edx, dword [ebx + 0x38]
cmp edx, esi
jae 0x55fcdc
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x55fc8a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55fc8a
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.0058c180
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x55fcd0
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x55fcd0
cmp eax, dword [ebp + 0x5c]
ja 0x55fcc0
cmp dword [ebp + 0x24], 0
je 0x55fcd0
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x55fc40
jmp 0x55fd02
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x55fd02
cmp edx, dword [ebp + 0x5c]
ja 0x55fcf2
cmp dword [ebp + 0x24], 0
je 0x55fd02
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
cmp dword [esp + 0x1c], 2
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
je 0x55a628
jmp 0x563d5a
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x562241.15
mov edx, dword [esp + 0x18]
test edx, edx
je 0x56056c
jmp dword [eax*4 + 0x564f54]
jmp dword [eax*4 + 0x56500c]
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 0x560d55
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 0x560d4a
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x560d55
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x560d30
mov edi, dword [ebp]
jmp 0x560d81
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.0x560d99
movzx eax, byte [eax + 0x565144]
jmp dword [eax*4 + 0x56513c]
mov ecx, dword [edx*4 + 0x686318]
lea eax, [edi + 2]
mov ebx, dword [edx*4 + 0x686344]
mov edx, dword [edx*4 + 0x686370]
mov dword [ebp], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [esp + 0x1c], edx
jmp 0x560df7
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 + 0x686370]
mov dword [esp + 0x1c], eax
test ebx, ebx
jne 0x560df1
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 0x560e20
mov eax, dword [ebp + edi*4 + 0x54]
cmp eax, 0xffffffff
je 0x560e20
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
cmp eax, dword [ebp + edi*4 + 0x58]
je 0x55a9d9
mov eax, dword [esp + 0x78]
jmp 0x560e41
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
test ecx, ecx
je 0x55a9d9
mov eax, dword [esp + 0x78]
test dword [eax + 0x7c], 0x200
jne 0x55a610
mov esi, 1
cmp ecx, esi
jb 0x560e86
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.00565520
add esp, 0x14
test eax, eax
jne 0x560f09
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 0x560e50
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
cmp ecx, ebx
je 0x55a9d9
cmp dword [esp + 0x1c], 0
je 0x563eb8
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 0x561e22
nop word [eax + eax]
lea eax, [esp + 0x54]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00565520
add esp, 0x14
test eax, eax
jne 0x560f5c
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 0x560ed0
jmp 0x560f81
jle 0x560f17
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x560f1a
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x78]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x56225e
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x560f45
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
jle 0x560f81
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x560f81
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jbe 0x560f81
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
test esi, esi
jne 0x561e22
mov dword [ebx + 0x24], edi
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x5643c2
lea eax, [esp + 0x34]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.00565520
add esp, 0x14
test eax, eax
je 0x560fff
jle 0x560fba
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x560fbd
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x78]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x56225e
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x560fe8
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov eax, dword [esp + 0x34]
add eax, eax
add dword [ebp + 0x38], eax
mov ebp, dword [esp + 0x78]
jmp 0x55a620
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 0x561020
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x55a628
cmp dword [ebp + 0x20], 0
mov ebx, dword [esp + 0x14]
jne 0x56104d
cmp dword [ebx + 0x18], 0
jne 0x561a21
xor eax, eax
jmp 0x5641c7
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x34]
push eax
push ebp
push ebx
call fcn.0055a3f0
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x56225e
js 0x55a978
mov eax, dword [esp + 0x34]
add eax, eax
add dword [ebx], eax
jmp 0x55a620
movzx eax, word [edi + 2]
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x56109c
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 0x5610b1
cmp eax, 0x77
jne 0x5610e6
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x7c]
push ebp
call fcn.0055a3f0
mov esi, eax
add esp, 0xc
test esi, esi
jg 0x55a972
js 0x55a974
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.0x5610ff.150
movzx eax, byte [eax + 0x565168]
jmp dword [eax*4 + 0x56514c]
mov ecx, dword [ebp + 0x44]
mov ebp, dword [esp + 0x78]
cmp ecx, 0xffffffff
je 0x563c14
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x14]
cmp eax, 0xffff
je 0x563c02
cmp eax, ecx
je 0x563c02
jmp 0x563c18
mov edi, dword [ebp + 0x44]
mov ebp, dword [esp + 0x78]
cmp edi, 0xffffffff
je 0x563c14
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 0x563c14
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x561197
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x561163
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 0x563c18
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 + 0x6a2a28]
jmp 0x563c1d
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 0x563c18
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je 0x563c18
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6a2a28]
jmp 0x563c1d
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 0x563c18
mov edi, dword [ebx + 0x50]
nop dword [eax + eax]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x56124a
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x563c02
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x561230
jmp 0x563c18
cmp dword [esp + 0x18], 0
movzx edx, word [edi + 2]
mov ebx, dword [esp + 0x14]
je 0x56129d
test edx, edx
je 0x561298
mov ecx, dword [ebx + 0x38]
mov edi, 0xfc00
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.default.0x56225e
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [esp + 0x3c]
jne 0x561294
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x561271
mov ecx, dword [ebx + 0x38]
jmp 0x5612b7
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.default.0x56225e
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebp + 0x5c]
jae 0x5612bf
mov dword [ebp + 0x5c], ecx
add dword [ebx], 4
jmp 0x55a624
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.0x55a64c.120
jmp 0x55a628
movzx eax, word [edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x561371
mov ecx, 0x8a
cmp ax, cx
je 0x561371
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 0x56136c
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.00591570
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 0x55a978
movzx eax, word [edi]
jmp 0x56137b
mov ebx, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [esp + 0x28]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x561391.134
movzx eax, byte [eax + 0x565198]
jmp dword [eax*4 + 0x56517c]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x5613a3
mov dword [ebp + 0x60], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x561391.134
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x5613b9
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.0x561391.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 0x5613e0
jmp case.0x561391.134
mov eax, dword [esp + 0x14]
mov esi, 1
jmp 0x55a980
push edx
push dword [ebx + 0x38]
push dword [esi + 0x38]
call fcn.0058c380
add esp, 0xc
test eax, eax
jne case.0x561391.134
xor esi, esi
jmp 0x55a978
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x561465
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.00591570
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 0x55a620
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.0x561391.134
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x5614b4
push dword [esp + 0x4c]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00591570
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x55a978
mov cl, byte [ebx + 0x31]
cmp cl, 0x79
je 0x5614d0
test esi, esi
je 0x563e73
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x563e73
add dword [ebx], 4
jmp 0x55a620
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x55aaf0
test byte [ebp + 0x78], 1
jne 0x55aaf0
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x55a628
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
je 0x5614f2
xor esi, esi
mov eax, ecx
jmp 0x55a980
test byte [ebp + 0x78], 2
je 0x561522
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
test byte [ebp + 0x7c], 0x10
je case.0x55a64c.23
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebp + 0x54]
jb case.default.0x56225e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x561553
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
add dword [edx], 2
jmp 0x55a624
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
cmp edx, esi
jae 0x56162c
mov eax, dword [ecx + 0x88]
lea ebx, [ecx + 0x8c]
test eax, eax
je 0x5615a3
push dword [esp + 0x18]
push ebx
push esi
push eax
push edx
call fcn.0058a7d0
add esp, 0x14
test eax, eax
je 0x5615db
mov ecx, dword [esp + 0x78]
mov edi, dword [ebx]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
jmp 0x5615d2
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x5615db
mov ecx, dword [esp + 0x78]
mov ax, word [edx]
cmp ax, word [ecx + 0x90]
jne 0x5615db
cmp edi, 1
je 0x5615d2
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x92]
jne 0x5615db
lea eax, [edi + edi]
sub esi, eax
cmp edx, esi
je 0x56162c
mov eax, dword [esp + 0x78]
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x55a80a
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x78]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x56225e
cmp dword [ebp + 0x88], 0
jne case.default.0x56225e
cmp dword [ebx], 2
jne case.default.0x56225e
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x56225e
jmp 0x55cd3c
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x56164b
mov eax, dword [esp + 0x78]
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x55c164
add dword [ebp], 2
mov ebp, dword [esp + 0x78]
jmp 0x55a620
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x14]
je 0x561673
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x561673
xor esi, esi
mov eax, ebx
jmp 0x55a980
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x5617e0
cmp ecx, dword [ebp + 0x54]
jne 0x561693
test dword [ebp + 0x7c], 0x200000
je case.default.0x56225e
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x5616cb
cmp ecx, edx
jbe case.default.0x56225e
push dword [esp + 0x18]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.0058a890
add esp, 0x14
test eax, eax
je case.default.0x56225e
add dword [ebx], 2
jmp 0x55a620
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb case.default.0x56225e
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x56225e
cmp edi, 1
je 0x5617e0
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
je 0x5617e0
xor esi, esi
jmp 0x55a978
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x5617b0
mov eax, dword [ebp + 0x88]
lea edi, [ebp + 0x8c]
test eax, eax
je 0x561750
push dword [esp + 0x18]
push edi
push ecx
push eax
push edx
call fcn.0058a7d0
add esp, 0x14
test eax, eax
je 0x56177d
add dword [ebx], 2
jmp 0x55a620
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x56177d
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x56177d
cmp esi, 1
je 0x5617e0
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x5617e0
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x56225e
cmp dword [ebp + 0x88], 0
jne case.default.0x56225e
cmp dword [edi], 2
jmp 0x561611
test byte [ebp + 0x78], 2
jne case.default.0x56225e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5617e0
cmp edx, dword [ebp + 0x5c]
ja 0x5617d0
cmp dword [ebp + 0x24], 0
je 0x5617e0
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
add dword [ebx], 2
jmp 0x55a620
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 0x5614f2
xor esi, esi
mov eax, ecx
jmp 0x55a980
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x55a628
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x5618ec
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x18], 0
mov ecx, eax
je 0x561879
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x56184e
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x561879
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 0x561881
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x5618d4
cmp ecx, 0x5f
jne 0x561894
lea edi, [ecx - 0x5e]
jmp 0x5618ee
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x5618cd
cmp eax, 3
jne 0x5618ec
mov edi, 1
jmp 0x5618ee
cmp ecx, 0xff
ja 0x5618ec
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x5618ec
mov edi, 1
jmp 0x5618ee
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x56193b
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x56191e
cmp ecx, dword [ebp + 0x5c]
ja 0x56190e
cmp dword [ebp + 0x24], 0
je 0x56191e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
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 0x561934
xor edx, 1
test edx, edx
jmp 0x55ac90
cmp dword [esp + 0x18], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x561989
cmp edx, eax
jae 0x56195d
mov ax, word [edx]
and ax, word [esp + 0x40]
cmp ax, word [esp + 0x3c]
jne 0x56195d
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56198c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x56198c
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x561994
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x5619f1
cmp ecx, 0x5f
jne 0x5619aa
lea edx, [ecx - 0x5e]
jmp 0x561920
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x5619e7
cmp eax, 3
jne 0x56191e
mov edx, 1
jmp 0x561920
cmp ecx, 0xff
ja 0x56191e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x56191e
mov edx, 1
jmp 0x561920
test esi, esi
jne case.0x561aee.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 + 0x6a2a28]
lea edi, [ecx + eax*2]
je 0x563e91
mov dword [ebx], edi
jmp 0x55a620
cmp esi, 0xfffffc1f
jne 0x561a71
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x561aee.998
cmp word [ecx], 0x78
je 0x561a79
cmp word [eax], 0x78
jmp 0x561a73
test esi, esi
jne case.0x561aee.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x5641ca
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
cmp esi, 0xfffffc19
je 0x563b24
test esi, esi
je 0x561ab5
cmp esi, 0xfffffc1f
jne case.0x561aee.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x564282
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
test esi, esi
jg 0x561af5
je case.0x561aee.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x561aee.998
jmp dword [eax*4 + 0x5651ac]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x14]
jne 0x55a980
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
test esi, esi
jg 0x561b2f
je case.0x561b28.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x561aee.998
jmp dword [eax*4 + 0x5651c8]
mov eax, esi
sub eax, 1
jne case.0x561aee.998
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x563c18
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x561b47
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6a2a28]
jmp 0x563c1d
test esi, esi
jne case.0x561aee.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 0x55a628
test esi, esi
je 0x5614d0
mov eax, dword [esp + 0x14]
jmp 0x55a980
cmp esi, 0xfffffc1a
jne 0x561bc1
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x563e9a
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x561bb0
jmp 0x561c04
cmp esi, 0xfffffc1f
jne 0x561be7
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x561aee.998
cmp word [ecx], 0x78
je 0x561bef
cmp word [eax], 0x78
jmp 0x561be9
test esi, esi
jne case.0x561aee.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x56418b
cmp dword [ebx + 0x24], 0
jne 0x561c36
cmp dword [ebx + 0x28], 0
jne 0x561c36
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
test esi, esi
jne case.0x561aee.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 0x561c26
mov esi, dword [esp + 0x70]
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x55a628
test esi, esi
jne case.0x561aee.998
add dword [ebx], 2
mov esi, dword [esp + 0x70]
jmp 0x55a628
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x561ca2
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [ebp + 0x74], eax
jne 0x561ca2
cmp esi, 0xfffffc1f
jne case.default.0x56225e
cmp dword [ebp + 0x6c], ecx
jae case.default.0x56225e
cmp word [edx], 0x78
je 0x561cae
cmp word [ecx], 0x78
je 0x561cae
xor esi, esi
jmp 0x55a978
mov edx, dword [esp + 0x18]
test esi, esi
jne case.0x561aee.998
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x564253
xor esi, esi
jmp 0x55a978
cmp esi, 0xfffffc1e
jne case.0x561aee.998
mov eax, dword [ebx]
push dword [ebp + 0x70]
add eax, 4
push eax
call fcn.00588c90
mov edx, dword [esp + 0x20]
add esp, 8
test eax, eax
jne case.0x561aee.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [esp + 0x14]
jmp 0x55a980
test esi, esi
jne case.0x561aee.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x14]
jmp 0x55a980
test esi, esi
jne case.0x561aee.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x14]
jmp 0x55a980
test esi, esi
jne case.0x561aee.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 0x55a980
test esi, esi
jne case.0x561aee.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 0x55a980
test esi, esi
jne case.0x561aee.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 0x55a980
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae 0x55a978
lea eax, [esp + 0x58]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00565520
add esp, 0x14
test eax, eax
je 0x563ea4
jle 0x561dcf
mov ecx, dword [ebp + 0x54]
mov dword [edi + 0x38], ecx
jmp 0x561dd2
mov ecx, dword [edi + 0x38]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x56225e
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x561df9
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.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.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x15
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov esi, dword [ebx + 4]
cmp dword [ebx + 0x38], esi
jne 0x563ec7
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x561eaa
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x561e93
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x561ed0
cmp byte [ebx + 0x31], 0x6e
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x5643c2
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 0x561ec5
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
add dword [ebx + 0x38], 0xfffffffe
jmp 0x561f00
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x18
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x561f6d
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x561f56
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x561f7e
cmp dword [ebx + 0x2c], eax
jne case.default.0x56225e
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x5643c2
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x55b5e4
mov eax, dword [esp + 0x14]
jmp 0x55a980
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x561fff
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x561fe8
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.default.0x56225e
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x5643c2
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x55b6ee
mov eax, dword [esp + 0x14]
jmp 0x55a980
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x56208b
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x562074
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.default.0x56225e
cmp dword [ebx + 0x2c], eax
je case.default.0x56225e
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x563f05
mov esi, dword [esp + 0x70]
jmp 0x55a628
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x562129
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp esi, dword [ebp + 0x5c]
ja 0x562112
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x563f10
mov esi, dword [esp + 0x70]
jmp 0x55a628
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x5621bf
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x5621a8
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x56222c
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x5621fb
push dword [esp + 0x18]
push eax
push ecx
push esi
push edx
call fcn.0058a7d0
add esp, 0x14
test eax, eax
jne case.default.0x56225e
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x56222c
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x56222c
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x56222c
cmp esi, 1
je case.default.0x56225e
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x56225e
movzx ecx, word [edx]
lea eax, [edi - 6]
lea esi, [edx + 2]
mov dword [ebx + 0x38], esi
cmp eax, 0xf
ja case.0x562241.15
jmp dword [eax*4 + 0x5651e4]
cmp ecx, 0x85
ja 0x562265
je case.0x56225e.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x56225e
jmp dword [ecx*4 + 0x565224]
sub ecx, 0x2028
je case.0x56225e.11
sub ecx, 1
jne case.default.0x56225e
cmp word [ebp + 0x3e], 2
jne case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x2000
ja 0x5622dc
je case.default.0x56225e
cmp ecx, 0xa0
ja 0x5622bd
je case.default.0x56225e
cmp ecx, 9
je case.default.0x56225e
cmp ecx, 0x20
jne case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x1680
je case.default.0x56225e
cmp ecx, 0x180e
jne case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x3000
ja case.0x562241.13
je case.default.0x56225e
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x562241.13
movzx eax, byte [ecx + 0x56523c]
jmp dword [eax*4 + 0x565234]
cmp ecx, 0x2000
ja 0x56235f
je case.0x562241.13
cmp ecx, 0xa0
ja 0x562340
je case.0x562241.13
cmp ecx, 9
je case.0x562241.13
cmp ecx, 0x20
je case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x1680
je case.0x562241.13
cmp ecx, 0x180e
je case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x3000
ja case.default.0x56225e
je case.0x562241.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x56225e
movzx eax, byte [ecx + 0x5652a4]
jmp dword [eax*4 + 0x56529c]
cmp ecx, 0x85
ja 0x5623af
je case.default.0x56225e
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x562241.13
jmp dword [ecx*4 + 0x565304]
sub ecx, 0x2028
je case.default.0x56225e
sub ecx, 1
jne case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x85
ja 0x5623ec
je case.0x562241.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x56225e
jmp dword [ecx*4 + 0x565314]
sub ecx, 0x2028
je case.0x562241.13
sub ecx, 1
je case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0xff
ja case.0x562241.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0xff
ja case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0xff
ja case.0x562241.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0xff
ja case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0xff
ja case.0x562241.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x562241.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0xff
ja case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x562241.13
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x5624fb
cmp eax, dword [ebx + 4]
jbe 0x5624fb
cmp word [eax], 0xa
jne 0x5624fb
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x5624fb
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x55a620
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x22
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562565
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x56254e
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
mov esi, dword [esp + 0x18]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x5625a3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5625a3
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.0058c7d0
add esp, 0xc
test eax, eax
jne 0x563f83
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x56225e
cmp dword [esp + 0x18], esi
je 0x55c435
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x55c435
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562663
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x56264c
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562699
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 0x5626b6
cmp byte [ebx + 0x31], 0x6e
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc8
jmp 0x5643c2
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 0x5626ab
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
ja 0x563f8e
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
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 0x56278a
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x562744
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x56274d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x562733
cmp esi, 0xfffffffc
je 0x563fc3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x56278a
cmp esi, 0xfffffffd
je 0x563fc3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x56278a
cmp esi, 0xfffffffe
je 0x563fc3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x56278a
cmp esi, 0xffffffff
je 0x563fc3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x563fc3
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x14]
test edi, edi
je 0x562809
lea esi, [edi + edi]
mov eax, ebp
sub eax, esi
cmp ebx, eax
ja 0x562809
lea edx, [ecx + 0x32]
mov ecx, ebx
sub esi, 4
jb 0x5627c3
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5627cc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5627b2
cmp esi, 0xfffffffc
je 0x563fc3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x562809
cmp esi, 0xfffffffd
je 0x563fc3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x562809
cmp esi, 0xfffffffe
je 0x563fc3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x562809
cmp esi, 0xffffffff
je 0x563fc3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x563fc3
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb case.default.0x56225e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp ebx, dword [ebp + 0x5c]
ja 0x562833
cmp dword [ebp + 0x24], 0
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.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 0x562878
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x55a620
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x5643c6
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5628e2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x5628cb
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562918
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.0x56225e
cmp dword [ebx + 0x2c], ecx
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xcc
jmp 0x5643c2
test esi, esi
jne case.0x561aee.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 0x562963
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x563fdc
mov esi, dword [esp + 0x70]
jmp 0x55a628
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5629cb
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x5629b4
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562a01
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.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xce
jmp 0x5643c2
test esi, esi
jne case.0x561aee.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 0x562a3f
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
ja 0x563fe7
mov esi, dword [esp + 0x70]
jmp 0x55a628
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x562aaa
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x562a93
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx eax, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x38], ecx
test edx, edx
je 0x562acd
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562acd
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x563e04.0
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x55a980
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562b38
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x562b21
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x562b75
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562b75
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6870b9]
cmp al, 9
je 0x562bac
cmp al, 5
je 0x562bac
cmp al, 8
je 0x562bac
xor ecx, ecx
jmp 0x562bb1
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd1
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562c23
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x562c0c
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x562c60
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562c60
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd2
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562d09
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x562cf2
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x562d46
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562d46
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd3
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562de8
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x562dd1
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x562e25
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562e25
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b8]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd4
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562ec7
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x562eb0
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x562f04
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562f04
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x562f41
cmp eax, 3
je 0x562f41
xor ecx, ecx
jmp 0x562f46
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd5
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x562fb8
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x562fa1
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x562ff5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x562ff5
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 0x56300f
je case.0x5630be.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x5630be.8203
jmp dword [eax*4 + 0x565324]
cmp ecx, 0x2000
ja 0x5630a2
je case.0x5630be.8193
cmp ecx, 0x1680
ja 0x56309a
je case.0x5630be.8193
mov eax, ecx
sub eax, 0x85
je case.0x5630be.8193
sub eax, 0x1b
je case.0x5630be.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
cmp dword [eax*4 + 0x6a2bc8], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd6
jmp 0x5643c2
cmp ecx, 0x180e
jmp 0x563043
cmp ecx, 0x3000
ja case.0x5630be.8203
je case.0x5630be.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x5630be.8203
movzx eax, byte [eax + 0x565340]
jmp dword [eax*4 + 0x565338]
cmp dword [ebx + 0x28], 0xf
jne case.0x563e04.7
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x563128
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x563111
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], ecx
je 0x563165
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563165
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 + 0x68b2c8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6870b9]
mov eax, dword [eax*4 + 0x6a2bc8]
cmp eax, 1
je 0x5631a9
cmp eax, 3
je 0x5631a9
cmp edx, 0x5f
je 0x5631a9
xor ecx, ecx
jmp 0x5631ae
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd7
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x563220
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x563209
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x56325d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56325d
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 + 0x686af0]
lea eax, [eax*4 + 0x686af0]
cmp ecx, edx
jb 0x56327f
lea eax, [eax + 4]
cmp ecx, edx
je 0x563294
mov edx, dword [eax]
cmp ecx, edx
jae 0x563272
cmp dword [ebx + 0x28], 0xf
jne case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd8
jmp 0x5643c2
cmp dword [ebx + 0x28], 0xf
jne case.0x563e04.10
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5632f7
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x5632e0
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x563334
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563334
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 0x56335f
cmp ecx, 0x40
je 0x56335f
cmp ecx, 0x60
je 0x56335f
cmp ecx, 0xa0
jb 0x563353
cmp ecx, 0xd7ff
jbe 0x56335f
cmp ecx, 0xe000
jae 0x56335f
xor ecx, ecx
jmp 0x563364
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd9
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x563ffd
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x5633c3
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x563432
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x56341b
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x56349f
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x56346e
push dword [esp + 0x18]
push eax
push ecx
push esi
push edx
call fcn.0058a7d0
add esp, 0x14
test eax, eax
jne case.default.0x56225e
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x56349f
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x56349f
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x56349f
cmp esi, 1
je case.default.0x56225e
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x56225e
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5634d5
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.0x562241.15
jmp dword [eax*4 + 0x5653a0]
cmp ecx, 0x85
ja 0x563505
je case.0x5634fe.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x56225e
jmp dword [ecx*4 + 0x5653e0]
sub ecx, 0x2028
je case.0x5634fe.11
sub ecx, 1
jne case.default.0x56225e
cmp word [ebp + 0x3e], 2
jne case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x2000
ja 0x56357c
je case.default.0x56225e
cmp ecx, 0xa0
ja 0x56355d
je case.default.0x56225e
cmp ecx, 9
je case.default.0x56225e
cmp ecx, 0x20
jne case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x1680
je case.default.0x56225e
cmp ecx, 0x180e
jne case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x3000
ja case.0x5634e1.13
je case.default.0x56225e
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5634e1.13
movzx eax, byte [ecx + 0x5653f8]
jmp dword [eax*4 + 0x5653f0]
cmp ecx, 0x2000
ja 0x5635ff
je case.0x5634e1.13
cmp ecx, 0xa0
ja 0x5635e0
je case.0x5634e1.13
cmp ecx, 9
je case.0x5634e1.13
cmp ecx, 0x20
je case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x1680
je case.0x5634e1.13
cmp ecx, 0x180e
je case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x3000
ja case.default.0x56225e
je case.0x5634e1.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x56225e
movzx eax, byte [ecx + 0x565460]
jmp dword [eax*4 + 0x565458]
cmp ecx, 0x85
ja 0x56364f
je case.default.0x56225e
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5634e1.13
jmp dword [ecx*4 + 0x5654c0]
sub ecx, 0x2028
je case.default.0x56225e
sub ecx, 1
jne case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x85
ja 0x56368c
je case.0x5634e1.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x56225e
jmp dword [ecx*4 + 0x5654d0]
sub ecx, 0x2028
je case.0x5634e1.13
sub ecx, 1
je case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x100
jae case.0x5634e1.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x100
jae case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x100
jae case.0x5634e1.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x100
jae case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x100
jae case.0x5634e1.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x5634e1.13
xor esi, esi
jmp 0x55a978
cmp ecx, 0x100
jae case.default.0x56225e
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x5634e1.13
xor esi, esi
jmp 0x55a978
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x38]
add edx, 0xfffffffe
mov dword [ebx + 0x38], edx
cmp dword [esp + 0x18], esi
jne 0x563c3e
movzx ecx, word [edx]
jmp 0x563c87
test esi, esi
jne case.0x561aee.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 0x5637b5
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x5637d7
cmp ecx, dword [ebx + 4]
jbe 0x5637d7
cmp word [ecx], 0xa
jne 0x5637d7
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x5637d7
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x55a620
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdd
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov ecx, dword [ebx + 0x38]
add ecx, 0xfffffffe
mov edx, ecx
mov dword [ebx + 0x38], ecx
cmp dword [esp + 0x18], esi
je 0x56381f
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x56381f
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebx + 4]
jbe 0x55a620
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xde
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x563889
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x56225e
cmp ecx, dword [ebp + 0x5c]
ja 0x563872
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], ecx
je 0x5638c6
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5638c6
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 + 0x68b2c8]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6870c2]
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 + 0x686568]
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.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdf
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x563989
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x563972
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x5639c6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5639c6
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6870c0]
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.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xe0
jmp 0x5643c2
test esi, esi
jne case.0x561aee.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x56225e
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x563a6b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x56225e
cmp edx, dword [ebp + 0x5c]
ja 0x563a54
cmp dword [ebp + 0x24], esi
je case.default.0x56225e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x55c164
xor esi, esi
jmp 0x55a978
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [ebx + 0x38], edx
je 0x563aa8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563aa8
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
mov ecx, dword [ebx + 0x2c]
movzx eax, word [eax*2 + 0x68f6c8]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x6870b8]
cmp eax, ecx
je 0x563b03
movzx edx, word [edx*4 + 0x6870c0]
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 + 0x686dc0], eax
jne 0x563b03
xor ecx, ecx
jmp 0x563b08
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x56225e
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xe1
jmp 0x5643c2
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.00591570
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 0x563b50
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x55a620
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 0x563b70
mov esi, dword [esp + 0x70]
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x55a628
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebx], edi
cmp word [edi], 0x78
je 0x5642ae
mov esi, dword [esp + 0x70]
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x55a628
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.00591570
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
jmp 0x561b3a
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 0x563e4c
xor eax, eax
cmp dword [ebx + 0x20], eax
sete al
jmp 0x561b3d
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6a2a28]
jmp 0x563c1d
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 0x55a620
mov eax, 0x2008f
mov byte [ebx + 0x30], 0x23
mov dword [esp + 0x2c], eax
jmp 0x5643c2
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x563c5a
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 0x563c87
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x6870ba]
cmp edx, ebx
jbe 0x563d5a
mov ebp, dword [esp + 0x18]
nop
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test ebp, ebp
je 0x563d0b
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x563ce0
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x563d0b
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 + 0x68b2c8]
shl eax, 7
add eax, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x6870ba]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x6a2b88], eax
je 0x563d56
mov eax, dword [esp + 0x14]
mov edi, esi
mov dword [eax + 0x38], edx
cmp edx, ebx
ja 0x563cc0
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x55a620
mov edi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x5643c2
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 + 0x6a2a28]
movzx eax, word [edx + 2]
ja 0x5640ed
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x55a624
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x14]
jne 0x56292a
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x5643c2
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x14]
jne 0x562a0a
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x5643c2
cmp dword [esp + 0x18], 0
jne 0x5626ab
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x5643c2
test ecx, ecx
js 0x563e0b
cmp ecx, 0xd
ja case.0x562241.15
jmp dword [ecx*4 + 0x5654e0]
cmp dword [ebx + 0x28], 0x16
je 0x56407e
test esi, esi
jne case.0x5634e1.13
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5643c2
cmp ecx, 0x7e
je 0x563e3b
mov eax, 0x80
cmp cx, ax
je 0x563e3b
xor eax, eax
jmp 0x563e40
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 + 0x6a2a28]
mov byte [ebx + 0x30], 5
lea edi, [ecx + eax*2]
jmp 0x5643c2
mov eax, dword [esp + 0x14]
cmp cl, 0x7b
jne 0x563e88
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x5643c6
mov byte [ebx + 0x30], 7
jmp 0x5643c6
mov byte [ebx + 0x30], 1
jmp 0x5643c2
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x56418b
mov eax, dword [esp + 0x58]
add eax, eax
add dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x5643c2
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x5643c2
mov dword [ebx + 0x38], esi
dec dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x563efa
lea eax, [esp + 0x5c]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00565520
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 0x563ed5
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x5643c2
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x1e
jmp 0x5643c2
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x20
jmp 0x5643c2
cmp esi, dword [ebp + 0x54]
jae case.0x562241.13
cmp word [esi], 0xa
jne case.0x562241.13
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5643c2
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x562241.13
cmp esi, dword [ebp + 0x54]
jb case.0x562241.13
cmp dword [ebp + 0x88], 0
jne case.0x562241.13
cmp dword [ebp + 0x8c], 2
jne case.0x562241.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x562241.13
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5643c2
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0x64
jmp 0x5643c2
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x563fb8
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x5643c2
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x5643c2
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 0x5643c2
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x5643c2
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xcf
jmp 0x5643c2
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xd0
jmp 0x5643c2
movzx edx, word [ecx]
add ecx, 2
mov edi, dword [esp + 0x18]
mov esi, ecx
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x56403d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x56403d
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.0058c180
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x56407e
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x56407e
cmp eax, dword [ebp + 0x5c]
ja 0x56406e
cmp dword [ebp + 0x24], 0
je 0x56407e
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x55c164
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xda
jmp 0x5643c2
cmp edx, dword [ebp + 0x54]
jae case.0x5634e1.13
cmp word [edx], 0xa
jne case.0x5634e1.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x5643c2
movzx eax, word [ebp + 0x3c]
mov esi, eax
test ax, ax
je case.0x5634e1.13
cmp edx, dword [ebp + 0x54]
jb case.0x5634e1.13
cmp dword [ebp + 0x88], 0
jne case.0x5634e1.13
cmp dword [ebp + 0x8c], 2
jne case.0x5634e1.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x5634e1.13
mov dword [ebp + 0x1c], 1
cmp esi, 1
ja 0x55c164
mov edi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x5643c2
mov byte [ebx + 0x30], 0x11
jmp 0x5643bd
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x5643c2
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 0x564113
add edi, 4
mov byte [ecx + 0x30], 0xa
jmp 0x5643c2
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 0x564175
mov ecx, 0x8e
cmp ax, cx
jne 0x564163
jmp 0x564175
mov ebx, dword [esp + 0x14]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x56417e
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 + 0x6a2a28]
mov byte [ebx + 0x30], 8
lea edi, [ecx + eax*2]
jmp 0x5643c2
movzx eax, word [edi + 4]
or eax, 0x10000
jmp 0x5641c3
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 + 0x6a2a28]
mov byte [ebx + 0x30], 2
lea edi, [edi + eax*2]
jmp 0x5643c2
mov ecx, dword [ebp + 0x48]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x5641f9
xor edi, edi
jmp 0x5641fd
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x14]
cmp dword [ebp + 0x44], 0xffffffff
je 0x564243
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x564243
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 0x564237
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x564220
jmp 0x564243
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x56456f
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 + 0x6a2a28]
mov byte [ebx + 0x30], 0xb
lea edi, [ecx + eax*2]
jmp 0x5643c2
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 + 0x6a2a28]
mov byte [ebx + 0x30], 3
lea edi, [edi + eax*2]
jmp 0x5643c2
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 + 0x6a2a28]
mov byte [ebx + 0x30], 4
lea edi, [edi + eax*2]
jmp 0x5643c2
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 + 0x6a2a28]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x5643bd
movzx eax, word [edi]
movzx eax, byte [eax + 0x6a2a28]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0xd
jmp 0x5643c2
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 + 0x6a2a28]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x5643bd
movzx eax, word [edi]
movzx eax, byte [eax + 0x6a2a28]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0xe
jmp 0x5643c2
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 + 0x6a2a28]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x5643bd
movzx eax, word [edi]
movzx eax, byte [eax + 0x6a2a28]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0x10
jmp 0x5643c2
movzx eax, word [edi]
movzx eax, byte [eax + 0x6a2a28]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0x12
jmp 0x5643c2
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 + 0x6a2a28]
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 0x56448c
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 0x564402
xor edx, edx
mov eax, ecx
div ebp
mov ebx, ecx
sub ebx, edx
cmp esi, ebx
jae 0x56457c
mov eax, dword [esp + 0x74]
push dword [eax + 8]
mov esi, dword [eax]
mov ecx, esi
push ebx
call dword [0x5c53f0]
call esi
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x564589
mov esi, dword [esp + 0x74]
push dword [esp + 0x44]
push dword [esi + 0x18]
push ebp
call fcn.00591570
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 [0x5c53f0]
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.00591570
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 0x55a5a6
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 0x5644f0
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.00591570
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x564558
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 0x564544
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