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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [ebp + 0x18]
push ebx
push esi
push edi
mov ebx, dword [eax + 0x8c]
mov edi, edx
mov eax, dword [eax + 0x10]
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], edx
mov edx, ebx
shr edx, 0x13
and edx, 1
mov dword [eax + 0x18], 0
shr ebx, 0x11
mov dword [ebp - 0xc], edx
and ebx, 1
mov edx, dword [ebp + 0x14]
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov dword [ebp - 0x30], ebx
mov dword [eax + 0x38], ecx
lea ebx, [edx - 0x38]
mov dword [eax + 0x3c], ecx
mov dword [ebp - 0x3c], ebx
xor ebx, ebx
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [ebp - 8], eax
mov dword [eax + 0x4c], 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x34], 0xfc00
mov dword [ebp - 0x2c], 0xdc00
mov dword [ebp - 0x40], 0xd800
mov dword [ebp - 0x38], 0xff
mov dword [eax + 0x1c], ebx
mov dword [eax], edi
mov dword [eax + 0x10], edx
test ebx, ebx
je 0x54d7a4
mov ecx, dword [ebp + 0x18]
sub eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x4c], eax
mov eax, ebx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x54d79f
movzx eax, bx
mov dword [ecx + 0x44], eax
xor edx, edx
mov dword [ebp - 0x20], edx
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x18]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
cmp edx, ecx
jae 0x558838
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x24]
jb 0x54d7dc
pop edi
pop esi
mov eax, 0xffffffcb
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov dword [ecx], eax
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
nop
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov bl, byte [edi]
movzx ecx, bl
mov byte [ebp - 1], bl
mov byte [eax + 0x31], bl
cmp ecx, 0xa6
ja case.0x556309.15
movzx eax, byte [ecx + 0x5589a4]
jmp dword [eax*4 + 0x558848]
mov eax, dword [ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
jne 0x54d883
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
lea ebx, [ebx]
cmp eax, 0xffffffff
je case.0x556309.15
mov ecx, dword ds:[esi + 0x10]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [ebp - 0x18], ecx
sub edx, dword [ebp + 0x14]
or eax, 0x10000
cmp dword [ecx + 0x1c], eax
je 0x54d84a
mov eax, dword [edx + 0x4c]
jmp 0x54d820
mov eax, dword [ebp - 8]
lea esi, [edi + edi]
mov ebx, dword [ebp + 0x18]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebx + 0x5c]
mov edx, dword [ebp - 8]
sar eax, 1
mov dword [edx + ecx*4 + 0x54], eax
mov eax, edx
mov eax, dword [eax + 0x38]
sub eax, dword [ebx + 0x5c]
sar eax, 1
mov dword [edx + ecx*4 + 0x58], eax
mov eax, edx
cmp ecx, dword [eax + 0x50]
jb 0x54d880
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2e30]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 8]
jmp 0x54d7d7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [esi + 0x70]
jbe 0x54d8a8
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 8]
mov esi, 0xfffffc19
mov dword [ebp - 0x24], eax
jmp 0x555420
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
je 0x54d90f
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x556309.15
mov edx, dword [esi + 0x10]
add edx, eax
mov ecx, edx
mov dword [ebp - 0x18], edx
sub ecx, dword [ebp + 0x14]
mov eax, dword [edx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x54d8ef
mov eax, dword [ecx + 0x4c]
jmp 0x54d8c5
mov edx, dword [ebp - 8]
mov dword [ebp - 8], ecx
mov eax, dword [edx + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [edx + 0x3c]
mov dword [ecx + 0x3c], eax
add dword [ecx], 4
jmp 0x54d7dc
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x54d948
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x88]
test al, 4
jne case.0x54d803.162
test al, 8
je 0x54d948
mov eax, dword ds:[ebp + 0x18]
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x5c]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.0x54d803.162
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x558752
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0x8c]
or eax, dword [ecx + 0x88]
test eax, 0x20000000
je 0x558750
test bl, bl
jne 0x558745
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, ecx
jmp 0x555423
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x54da6d
mov esi, dword [eax + 0x64]
lea edi, [eax + 0x64]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, esi
jae 0x54d9c3
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x18]
add eax, 0x9c
push eax
push esi
call fcn.00579ee0
test eax, eax
je 0x54d9c3
mov eax, 1
jmp 0x54d9c5
xor eax, eax
test eax, eax
jne case.0x54d803.162
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x54d803.13
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x98], 0
jne 0x54da1c
cmp dword [eax + 0x9c], 2
jne 0x54da1c
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54d803.13
mov eax, esi
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov esi, eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x54dabb
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54da4f
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp edx, 1
jbe case.0x54d803.162
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [eax + 0x9c]
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp - 8]
lea eax, [esi + esi]
mov ecx, dword [edi + 0x64]
mov edx, dword [ebx + 0x38]
sub ecx, eax
cmp edx, ecx
ja 0x54dab1
mov ax, word [edx]
cmp ax, word [edi + 0xa0]
jne 0x54dab1
cmp esi, 1
je case.0x54d803.162
mov ax, word [edx + 2]
mov esi, edi
cmp ax, word [esi + 0xa2]
jne 0x54dab3
jmp case.0x54d803.162
mov esi, edi
lea edi, [esi + 0x64]
jmp 0x54d9d3
mov edx, dword [ebp - 0xc]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x54daf1
cmp ecx, dword [esi + 0x64]
jae 0x54daf1
mov ax, word ds:[ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x54daee
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
add dword [eax], 2
jmp 0x54d7e0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x54db3d
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54db28
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54db50
mov esi, dword [ebp + 0x18]
jmp 0x54d7e0
mov ebx, dword ds:[ebp - 0xc]
test ebx, ebx
je 0x54dc25
mov eax, dword [ebp - 8]
add edi, 2
mov ecx, 0xfc00
mov edx, 1
mov dword [eax + 0xc], 1
mov dword [eax], edi
mov ax, word [edi]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [ebp - 8]
jne 0x54dba0
mov dword [eax + 0xc], 2
mov edx, 2
mov ecx, dword [esi + 0x64]
mov esi, dword [eax + 0x38]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x54dbf3
cmp esi, ecx
jb case.0x555bc9.999
mov eax, dword [ebp + 0x18]
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x555bc9.999
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54dbd3
cmp dword [eax + 0x34], 0
je case.0x555bc9.999
mov dword [eax + 0x2c], 1
cmp ecx, 1
lea ecx, [ecx]
ja 0x54da5f
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov ax, word [esi]
add esi, 2
mov ebx, dword [ebp - 8]
movzx ecx, word [edi]
add edi, 2
cmp cx, ax
mov eax, ebx
mov dword [ebx + 0x38], esi
mov dword [ebx], edi
jne 0x54dc1b
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x54dbf3
jmp 0x54d7d9
xor esi, esi
jmp 0x555420
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 8]
mov eax, dword [ecx + 0x64]
mov esi, dword [ebx + 0x38]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x54dc71
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54dc5c
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx edx, word ds:[edi + 2]
lea eax, [esi + 2]
movzx ecx, word [esi]
mov dword [ebx + 0x38], eax
cmp dx, cx
jne case.0x54d803.162
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x54d7d9
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [esi + 0x64]
jb 0x54dcde
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x6c]
mov eax, dword [ebp + 0x18]
ja 0x54dcc9
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x54de0b
mov dword [eax + 0xc], 1
lea ebx, [edi + 2]
mov dword [eax], ebx
mov edi, 1
movzx esi, word [ebx]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54dd36
movzx eax, word [ebx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov edi, 2
mov eax, dword [ebp - 8]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x54dd39
mov eax, dword [ebp - 8]
movzx edx, word ds:[ecx]
cmp esi, 0x80
jae 0x54dd7f
cmp edx, 0xff
ja 0x54dd5a
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax + esi]
cmp eax, edx
jne case.0x54d803.162
mov edx, dword [ebp - 8]
lea eax, [ebx + 2]
mov dword [edx], eax
lea eax, [ecx + 2]
mov dword [edx + 0x38], eax
jmp 0x54d7d9
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ddb7
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
jmp 0x54ddba
mov ecx, dword [ebp - 8]
lea eax, ds:[ebx + edi*2]
mov dword [ecx], eax
cmp edx, esi
je 0x54d7d9
mov eax, esi
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d7b04]
add eax, esi
mov esi, dword [ebp + 0x18]
cmp edx, eax
mov edx, dword [ebp - 0xc]
je 0x54d7e0
jmp case.0x54d803.162
cmp dword [ebp - 0x30], 0
je 0x54dece
movzx esi, word ds:[edi + 2]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x54de59
cmp edx, 0xff
ja 0x54de3a
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax + esi]
cmp eax, edx
mov eax, dword [ebp - 8]
je 0x54deb3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x555426
cmp edx, esi
je 0x54deb3
lfence
mov eax, esi
test eax, eax
jns 0x54de69
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x54de8c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d7b04]
add eax, esi
cmp edx, eax
mov eax, dword [ebp - 8]
je 0x54deb3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x555426
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 8]
add eax, 2
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 4
mov esi, dword [ebp + 0x18]
mov edx, ebx
jmp 0x54d7e0
movzx eax, word [edi + 2]
mov edx, eax
cmp ax, word [ebp - 0x38]
ja 0x54dee1
mov eax, dword [esi + 0x38]
movzx edx, byte [eax + edx]
movzx eax, word [ecx]
mov ecx, eax
cmp ax, word [ebp - 0x38]
ja 0x54def3
mov eax, dword [esi + 0x38]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x54df05
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov ecx, dword [ebp - 8]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ecx + 0x38], eax
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x54d7e0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x54df65
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54df4f
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54da5f
nop
jmp case.0x54d803.162
lea eax, [edi + 2]
test edx, edx
je 0x54e045
mov edi, dword [ebp - 8]
lea esi, [eax + 2]
mov dword [edi], eax
movzx edx, word [eax]
mov eax, edx
mov dword [edi], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54dfa9
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
movzx esi, word ds:[ecx]
add ecx, 2
mov eax, esi
mov dword [edi + 0x38], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54dfe6
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
add esi, 0x10000
mov dword [edi + 0x38], eax
cmp edx, esi
je case.0x54d803.162
cmp bl, 0x20
jne 0x54d7d9
cmp edx, 0x7f
jbe 0x54e02a
mov eax, edx
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d7b04]
jmp 0x54e034
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [ebp - 0xc]
jne 0x54db50
nop
jmp case.0x54d803.162
cmp dword [ebp - 0x30], 0
lea esi, [ecx + 2]
je 0x54e0d9
movzx ebx, word [ecx]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], esi
movzx edx, word [eax]
lea eax, [edi + 4]
mov dword [ecx], eax
cmp edx, ebx
je case.0x54d803.162
cmp byte [ebp - 1], 0x20
mov esi, dword [ebp + 0x18]
jne 0x54d7dc
cmp edx, 0x7f
jbe 0x54e0c2
lfence
mov eax, edx
test eax, eax
jns 0x54e089
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x54e0ac
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d7b04]
jmp 0x54e0c9
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
jne 0x54d7e0
jmp case.0x54d803.162
movzx edx, word [eax]
mov eax, dword [ebp - 8]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.0x54d803.162
mov esi, dword [ebp + 0x18]
cmp bl, 0x20
jne 0x54e10c
cmp edx, 0xff
ja 0x54e10c
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.0x54d803.162
mov ecx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x54d7dc
mov eax, dword [ebp - 8]
movzx ebx, word [edi + 2]
add edi, 4
mov dword [eax + 0x24], ebx
mov dword [eax + 0x20], ebx
mov dword [eax], edi
jmp 0x54e249
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebx, ebx
mov dword [ecx], edi
jmp 0x54e246
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebx, ebx
mov dword [ecx], edi
jmp 0x54e246
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 0
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebx, ebx
mov dword [ecx], edi
jmp 0x54e246
mov eax, dword ds:[ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor ebx, ebx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54e246
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov ebx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54e246
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor ebx, ebx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x54e246
movzx ecx, word [edi]
cmp bl, 0x2e
mov edx, dword [ebp - 8]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, dword [ebp - 8]
add edi, 2
mov ebx, dword [ecx*4 + 0x5d67fc]
mov dword [eax], edi
mov dword [eax + 0x20], ebx
mov eax, dword [ecx*4 + 0x5d67d0]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d67a0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
je 0x54e68f
mov dword [eax + 0xc], 1
lea ecx, [edi + 2]
mov dword [eax + 8], edi
movzx edx, word [edi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e685
movzx esi, word [ecx]
lea eax, [edi + 4]
mov ecx, dword [ebp - 8]
and edx, 0x3ff
and esi, 0x3ff
shl edx, 0xa
or esi, edx
add esi, 0x10000
mov dword [ecx + 0xc], 2
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x54e324
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5d7b04]
add ecx, esi
cmp ecx, esi
je 0x54e324
lea esp, [esp]
cmp ecx, 0xffff
ja 0x54e2f6
mov eax, dword [ebp - 8]
mov word [eax + 0x32], cx
mov eax, 1
jmp 0x54e326
mov edx, dword [ebp - 8]
add ecx, 0xffff0000
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [edx + 0x32], ax
mov eax, 2
mov word [edx + 0x34], cx
jmp 0x54e326
xor eax, eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], 1
mov dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x20]
cmp eax, 1
jb 0x54e4d0
nop
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x38]
add edi, edi
mov ecx, dword [ecx + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
cmp ebx, eax
ja 0x54e3dd
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x54e388
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54e391
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54e377
cmp esi, 0xfffffffc
je 0x54e45f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54e3da
jmp 0x54e3a0
cmp esi, 0xfffffffd
je 0x54e45f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54e3da
cmp esi, 0xfffffffe
je 0x54e45f
mov al, byte ds:[ecx + 2]
cmp al, byte [edx + 2]
jne 0x54e3da
cmp esi, 0xffffffff
je 0x54e45f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x54e45f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x54e486
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x54e486
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x54e425
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54e42a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54e410
cmp esi, 0xfffffffc
je 0x54e45f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54e486
cmp esi, 0xfffffffd
je 0x54e45f
mov al, byte ds:[ecx + 1]
cmp al, byte [edx + 1]
jne 0x54e486
cmp esi, 0xfffffffe
je 0x54e45f
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54e486
cmp esi, 0xffffffff
je 0x54e45f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54e486
mov ecx, dword [ebp - 8]
lea eax, [ebx + edi]
mov edx, 0x38
mov dword [edx + ecx], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x20]
inc edx
mov dword [ebp - 0x10], edx
cmp edx, eax
jbe 0x54e340
mov edx, eax
mov dword [ebp - 0x10], edx
jmp 0x54e4d5
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb case.0x54d803.162
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x54e4bb
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
mov edx, eax
mov dword [ebp - 0x10], eax
mov ecx, dword ds:[ecx + 0x24]
cmp eax, ecx
je 0x54d7d9
cmp dword [ebp - 0x14], 0
je 0x55826f
mov eax, dword ds:[ebp - 8]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x54e66e
jmp 0x54e513
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0x18]
add edi, edi
mov ecx, dword [eax + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
cmp ebx, eax
ja 0x54e59e
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x54e551
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54e55a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54e540
cmp esi, 0xfffffffc
je 0x54e61a
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x54e59b
cmp esi, 0xfffffffd
je 0x54e61a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54e59b
cmp esi, 0xfffffffe
je 0x54e61a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54e59b
cmp esi, 0xffffffff
je 0x54e61a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x54e61a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x54e639
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x54e639
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x54e5e5
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54e5ea
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54e5d0
cmp esi, 0xfffffffc
je 0x54e61a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54e639
cmp esi, 0xfffffffd
je 0x54e61a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54e639
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x54e61a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54e639
cmp esi, 0xffffffff
je 0x54e61a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54e639
mov eax, dword [ebp - 8]
mov ecx, 0x38
mov edx, dword [ebp - 0x10]
add ebx, edi
inc edx
mov dword [ebp - 0x10], edx
mov dword [ecx + eax], ebx
cmp edx, dword [eax + 0x24]
jb 0x54e510
jmp 0x54e66e
mov eax, dword ds:[ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb 0x54e66e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54e66e
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x54e65e
cmp dword [eax + 0x34], 0
je 0x54e66e
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54db50
mov edi, dword ds:[ebp - 8]
jmp 0x556ac1
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x54e69f
movzx edx, word [edi]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x28], edx
lea eax, [edi + 2]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x54e848
cmp dword [ebp - 0xc], 0
jne 0x54e6b5
cmp dword [ebp - 0x30], 0
je 0x54e6e7
cmp edx, 0x7f
jbe 0x54e6e7
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d7b04]
add eax, edx
jmp 0x54e6fa
cmp edx, 0xff
ja 0x54e6f8
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
jmp 0x54e6fa
mov eax, edx
mov ecx, dword [ebp - 8]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp ebx, esi
jb 0x54e74a
lea esp, [esp]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54e7af
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
mov edx, dword [edi + 0x28]
cmp edx, eax
je 0x54e73f
cmp dword [edi + 0x2c], eax
jne case.0x54d803.162
inc esi
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp esi, ebx
jbe 0x54e710
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [eax + 0x24]
cmp ebx, esi
je 0x54d7d9
cmp dword ds:[ebp - 0x14], 0
je 0x5560a7
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, esi
jae 0x54e81b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54e7ee
movzx eax, word [ecx]
cmp edx, eax
je 0x54e79c
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x2c], eax
jne 0x54e81b
mov eax, dword [ebp - 8]
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, esi
jb 0x54e774
jmp 0x54e81b
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54e7d0
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword ds:[eax + 0x2c], 1
nop
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x54e81b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54e80b
cmp dword [eax + 0x34], 0
je 0x54e81b
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54da5f
cmp dword [ebp - 0x14], 2
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
je 0x54d7e0
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d7d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1a
jmp 0x55862a
mov edi, 1
cmp ebx, edi
jb 0x54e88d
mov esi, dword ds:[eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae 0x54e8ed
mov eax, dword ds:[ebp - 8]
movzx edx, word [esi]
mov ecx, dword [eax + 0x28]
lea eax, [esi + 2]
mov esi, dword [ebp - 8]
mov dword [esi + 0x38], eax
mov eax, esi
cmp ecx, edx
jne 0x54dc1b
inc edi
cmp edi, ebx
jbe 0x54e851
mov edx, dword [eax + 0x24]
mov esi, ebx
cmp ebx, edx
je 0x54d7d9
mov ebx, dword ds:[ebp - 0x14]
test ebx, ebx
je 0x55610d
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x54e94e
jmp 0x54e8c0
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54e925
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
jne 0x54e951
mov eax, edi
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x54e8c0
jmp 0x54e94e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54e90f
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
nop
jmp case.0x54d803.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x54e94e
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54e93e
cmp dword [eax + 0x34], 0
je 0x54e94e
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov edi, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp ebx, 2
je 0x54d7e0
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d7d9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1c
jmp 0x55862a
mov eax, dword [ebp - 8]
movzx edx, word [edi + 2]
add edi, 4
mov dword [eax + 0x24], edx
mov dword [eax + 0x20], edx
mov dword [eax], edi
jmp 0x54eab5
mov ecx, dword ds:[ebp - 8]
mov dword [ebp - 0x14], 1
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], edi
jmp 0x54eab2
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 0
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], edi
jmp 0x54eab2
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54eab2
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov edx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54eab2
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x54eab2
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], edi
jmp 0x54eab2
movzx ecx, word [edi]
cmp bl, 0x48
mov ebx, dword [ebp - 8]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [ebp - 8]
add edi, 2
mov edx, dword [ecx*4 + 0x5d67fc]
mov dword [eax], edi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5d67d0]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d67a0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
movzx ecx, word [edi]
lea esi, [edi + 2]
mov ebx, dword [ebp - 0xc]
mov edi, ecx
mov dword [eax + 0x28], ecx
mov dword [eax], esi
test ebx, ebx
je 0x54eaff
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54eafc
movzx edi, word [esi]
lea eax, [esi + 2]
and ecx, 0x3ff
and edi, 0x3ff
shl ecx, 0xa
or edi, ecx
mov ecx, dword [ebp - 8]
add edi, 0x10000
mov dword [ecx + 0x28], edi
mov dword [ecx], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x31], 0x48
jb 0x54ee1e
test ebx, ebx
jne 0x54eb12
cmp dword [ebp - 0x30], ebx
je 0x54eb44
cmp edi, 0x7f
jbe 0x54eb44
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x5d7b04]
add ebx, edi
jmp 0x54eb5a
cmp edi, 0xff
ja 0x54eb58
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx ebx, byte [eax + edi]
jmp 0x54eb5a
mov ebx, edi
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov dword [eax + 0x2c], ebx
je 0x54ecd0
mov dword [ebp - 0x1c], 1
cmp edx, 1
jae 0x54ec28
mov dword [ebp - 0x1c], edx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x54d7d9
cmp dword [ebp - 0x14], 0
je 0x558092
cmp dword [ebp - 0xc], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x54ed9e
cmp ebx, edi
jae 0x54ed89
mov eax, dword ds:[ebp + 0x18]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x54ed5c
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ebf9
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 ds:[ebp - 8]
cmp dword [eax + 0x28], ecx
je 0x54ed89
cmp dword [eax + 0x2c], ecx
je 0x54ed89
inc ebx
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x54ebb0
lea ecx, [ecx]
jmp 0x54ed89
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x64]
jae 0x54ec98
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ec70
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [esi + 2]
mov esi, dword [ebp - 8]
add ecx, 0x10000
mov dword [esi + 0x38], eax
cmp edi, ecx
je case.0x54d803.162
jmp 0x54ec80
cmp ebx, ecx
je case.0x54d803.162
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, edx
jbe 0x54ec25
jmp 0x54eb7a
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54ecbb
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
mov esi, 1
mov dword [ebp - 0x1c], edx
cmp edx, esi
jb 0x54eb7d
jmp 0x54ecf0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54ed26
movzx eax, word [ecx]
cmp edi, eax
je case.0x54d803.162
cmp ebx, eax
je case.0x54d803.162
lea eax, [ecx + 2]
inc esi
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x54ecf0
mov ebx, edx
jmp 0x54eb80
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54ed47
cmp dword [eax + 0x34], 0
je case.0x54d803.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ed89
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54ed75
cmp dword [eax + 0x34], 0
je 0x54ed89
mov dword ds:[eax + 0x2c], esi
cmp ecx, 1
ja 0x54da5f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54db50
mov edi, dword [ebp - 8]
jmp 0x556b9a
mov edi, edi
cmp ebx, edi
jae 0x54ee09
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x54edd8
mov ecx, dword [ebp - 8]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x54ee09
nop
cmp dword [ecx + 0x2c], eax
je 0x54ee09
mov eax, ecx
add edx, 2
inc ebx
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x54eda8
jmp 0x54ee09
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ee09
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54edf3
cmp dword [eax + 0x34], 0
je 0x54ee09
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54db50
mov edi, dword [ebp - 8]
jmp 0x556194
mov esi, 1
test ebx, ebx
je 0x54ef6e
cmp edx, esi
jae 0x54eef3
mov eax, dword [ebp - 8]
mov esi, dword ds:[eax + 0x24]
cmp edx, esi
je 0x54dec4
cmp dword [ebp - 0x14], 0
je 0x5580a7
mov ecx, dword ds:[eax + 0x38]
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], ecx
mov ebx, dword [eax + 0x20]
test edx, edx
je 0x54f036
cmp ebx, esi
jae 0x54f02e
mov eax, dword ds:[ebp + 0x18]
mov edi, 1
cmp ecx, dword [eax + 0x64]
jae 0x54eff6
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54eeb9
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x28], edx
je 0x54eed0
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x54ee70
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x54d7e0
mov edi, dword [ebp - 8]
jmp 0x556c75
mov eax, dword [ebp - 8]
mov ecx, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x54ef65
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ef49
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
cmp edi, ecx
je 0x54de4f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x54eef0
lea esp, [esp]
jmp 0x54ee33
movzx eax, word [ecx + 0x4c]
jmp 0x54efb9
cmp edx, 1
jb 0x54ee33
jmp 0x54ef83
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x54efb5
movzx ecx, word ds:[edx]
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
mov dword [edx + 0x38], eax
mov eax, edx
cmp edi, ecx
je 0x54de4f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x54ef80
jmp 0x54ee36
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54efe9
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54efd3
cmp dword [eax + 0x34], 0
je 0x54efe9
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x555426
movzx eax, word ds:[eax + 0x4c]
mov esi, dword [ebp + 0x18]
mov edx, eax
test ax, ax
je 0x54eed3
cmp ecx, dword [esi + 0x6c]
ja 0x54f018
cmp dword [esi + 0x34], 0
je 0x54eed3
mov dword ds:[esi + 0x2c], edi
cmp edx, 1
ja 0x54da5f
jmp 0x54eed3
mov esi, dword [ebp + 0x18]
jmp 0x54eed6
cmp ebx, esi
jae 0x54f064
lea ebx, [ebx]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54f079
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x54f067
mov eax, edi
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x54f040
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x54d7e0
jmp 0x556215
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x54f0a9
cmp ecx, dword [esi + 0x6c]
ja 0x54f091
cmp dword [esi + 0x34], 0
je 0x54f0a9
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
jmp 0x54f06a
mov ebx, dword [ebp - 8]
lea eax, [edi + 2]
lea edx, [edi + 0x22]
mov dword [ebx + 8], eax
mov dword [ebx], edx
movzx esi, word [edx]
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x54f0d5
movzx eax, byte [eax + 0x558a54]
jmp dword [eax*4 + 0x558a4c]
mov ecx, dword [esi*4 + 0x5d6674]
lea eax, [edi + 0x24]
mov dword [ebx], eax
mov eax, dword [esi*4 + 0x5d6648]
mov esi, dword [esi*4 + 0x5d6618]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], esi
jmp 0x54f152
movzx ecx, word [edi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x54f125
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d6618]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [ebp - 8]
jmp 0x54f152
mov eax, dword [ebp - 8]
mov ecx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
cmp dword ds:[ebp - 0xc], 0
mov edi, 1
je 0x54f245
cmp ecx, edi
jb 0x54f2ee
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54f210
movzx esi, word [ecx]
add ecx, 2
mov ebx, dword [ebp - 8]
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f1b8
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
add esi, 0x10000
mov dword [ebx + 0x38], eax
jmp 0x54f1c0
cmp esi, 0xff
jbe 0x54f1d7
mov eax, dword [ebp - 8]
cmp byte [eax + 0x31], 0x6e
je case.0x54d803.162
jmp 0x54f1f5
mov eax, dword [ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [ebp - 8]
je 0x54dc1b
mov ecx, dword ds:[eax + 0x20]
inc edi
cmp edi, ecx
ja 0x54f2ee
mov eax, dword [ebp - 8]
jmp 0x54f170
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
nop
cmp ecx, dword [esi + 0x6c]
ja 0x54f22f
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
nop
jmp case.0x54d803.162
cmp ecx, 1
jb 0x54f2ee
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54f2b7
mov ebx, dword [ebp - 8]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x54f282
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je case.0x54d803.162
nop
jmp 0x54f2a6
mov eax, dword ds:[ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [ebp - 8]
je 0x54dc1b
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x54f2f1
mov eax, dword [ebp - 8]
jmp 0x54f250
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
cmp ecx, dword [esi + 0x6c]
ja 0x54f2d8
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x24]
cmp ecx, ebx
je 0x54d7d9
cmp dword [ebp - 0x14], 0
je 0x5580ba
mov edi, dword [eax + 0x38]
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x1c], eax
test edx, edx
je 0x54f415
lea ecx, [ecx]
cmp eax, ebx
jae 0x54f410
jmp 0x54f330
mov esi, dword ds:[ebp + 0x18]
mov dword [ebp - 0x10], ebx
mov ebx, 1
cmp edi, dword [esi + 0x64]
jae 0x54f3eb
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f379
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 ds:[ebp - 8]
cmp esi, 0xff
jbe 0x54f3b7
cmp byte [eax + 0x31], 0x6e
jne 0x54f3d1
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x54d7e0
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55862a
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 0x54f396
mov eax, dword [ebp - 8]
lea edi, [edi + ebx*2]
mov ebx, dword [ebp - 0x10]
mov dword [eax + 0x38], edi
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ebx
jb 0x54f330
jmp 0x54f396
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54f399
cmp edi, dword [esi + 0x6c]
ja 0x54f402
cmp dword ds:[esi + 0x34], 0
je 0x54f399
mov dword [esi + 0x2c], ebx
cmp ecx, 1
ja 0x54da5f
jmp 0x54f399
mov esi, dword [ebp + 0x18]
jmp 0x54f39c
cmp eax, ebx
jae 0x54f4d7
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp edi, dword [esi + 0x64]
jae 0x54f4ab
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x54f477
cmp byte ds:[ecx + 0x31], 0x6e
jne 0x54f497
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x54d7e0
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x54d803.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x18
jmp 0x55862a
mov eax, dword [ebp - 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
mov eax, dword [eax + 8]
test byte [esi + eax], dl
je 0x54f446
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
inc eax
add edi, 2
mov dword [ecx + 0x38], edi
mov dword [ebp - 0x1c], eax
cmp eax, ebx
jb 0x54f420
jmp 0x54f446
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54f449
cmp edi, dword [esi + 0x6c]
ja 0x54f4c2
cmp dword ds:[esi + 0x34], 0
je 0x54f449
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp 0x54f449
mov esi, dword [ebp + 0x18]
jmp 0x54f44c
mov ebx, dword ds:[ebp - 8]
lea eax, [edi + 4]
mov dword [ebx + 8], eax
movzx eax, word [edi + 2]
lea edx, [edi + eax*2]
mov dword [ebx], edx
movzx esi, word [edx]
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x54f510
movzx eax, byte [eax + 0x558a68]
jmp dword [eax*4 + 0x558a60]
mov ecx, dword [esi*4 + 0x5d6674]
lea eax, ds:[edx + 2]
mov dword [ebx], eax
lea edi, [ebx + 0x20]
mov eax, dword [esi*4 + 0x5d6648]
mov dword [edi], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esi*4 + 0x5d6618]
mov dword [ebp - 0x14], eax
jmp 0x54f577
movzx ecx, word [edx + 2]
lea edi, [ebx + 0x20]
mov dword [edi], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x54f565
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d6618]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov esi, 1
cmp ecx, esi
jae 0x54f669
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x24]
cmp ecx, eax
je 0x54d7d9
cmp dword ds:[ebp - 0x14], 0
je 0x55676d
mov edx, dword [edi + 0x38]
mov dword [edi + 4], edx
mov edi, dword [edi + 0x20]
cmp edi, eax
jae 0x54f632
mov eax, dword [ebp - 8]
lea ebx, [ebx]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x54f6f4
cmp dword [ebp - 0xc], 0
movzx ecx, word [edx]
je 0x54f60f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f60c
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 [ebp - 8]
push dword [ebp - 0xc]
mov edx, dword [eax + 8]
call fcn.0057a1a0
test eax, eax
je 0x54f632
mov ecx, dword [ebp - 8]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [eax + 0x24]
jb 0x54f5c0
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x54d7dc
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55862a
mov eax, dword [ebp - 8]
mov esi, 1
mov dword [eax + 0x24], 1
lea edi, [eax + 0x20]
mov dword [eax + 0x20], 1
mov ebx, dword [ebp + 0x18]
lea esp, [esp]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x54f72e
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x54f6d0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f6cd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
push dword [ebp - 0xc]
mov edx, dword [eax + 8]
call fcn.0057a1a0
jmp 0x54f6e0
test eax, eax
je 0x54f75b
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x54f670
jmp 0x54f58b
mov esi, dword ds:[ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54f635
cmp edx, dword [esi + 0x6c]
ja 0x54f718
cmp dword [esi + 0x34], 0
je 0x54f635
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp 0x54f635
mov esi, ebx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54f75b
nop
cmp edx, dword [esi + 0x6c]
ja 0x54f74b
cmp dword [esi + 0x34], 0
je 0x54f75b
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x555423
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f7ae
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
cmp edx, dword [esi + 0x6c]
ja 0x54f798
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f7fe
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f7fe
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f801
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x550109
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.default.0x550109
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f86e
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
cmp edx, dword [esi + 0x6c]
ja 0x54f858
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f8be
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f8be
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f8c1
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x555bc9.999
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.0x555bc9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d7e0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f931
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
cmp edx, dword [esi + 0x6c]
ja 0x54f91c
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f97e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f97e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f981
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x550109
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 1
je case.default.0x550109
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f9f1
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
cmp edx, dword [esi + 0x6c]
ja 0x54f9dc
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fa45
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fa45
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54fa48
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x555bc9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 1
je case.0x555bc9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d7e0
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54face
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
jmp 0x54faa0
cmp edx, dword [esi + 0x6c]
ja 0x54fab3
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fb25
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fb25
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54fb28
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x550109
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x550109
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54fbae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
jmp 0x54fb80
cmp edx, dword [esi + 0x6c]
ja 0x54fb93
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fc05
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fc05
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54fc08
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x555bc9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.0x555bc9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d7e0
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54fc8e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
jmp 0x54fc60
cmp edx, dword [esi + 0x6c]
ja 0x54fc73
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fcdc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fcdc
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
lea esp, [esp]
cmp ecx, 0x85
ja 0x54fd7e
je case.0x54fd00.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x555bc9.999
mov edi, edi
jmp dword [ecx*4 + 0x558a74]
mov edx, dword [ebp + 0x18]
cmp esi, dword [edx + 0x64]
jb 0x54fd5b
movzx eax, word ds:[edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x54fd6f
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x54fd3e
cmp dword [esi + 0x34], 0
je case.0x54fef2.8203
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d7e0
cmp word ds:[esi], 0xa
jne 0x54fd6f
mov ecx, dword [ebp - 8]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov esi, edx
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d7e0
mov edi, edi
sub ecx, 0x2028
je case.0x54fd00.11
sub ecx, 1
je case.0x54fd00.11
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov esi, dword [ebp + 0x18]
cmp word [esi + 0x4e], 2
jne case.0x54fef2.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov eax, dword [ebp - 8]
mov edx, ebx
mov esi, dword [ebp + 0x18]
add dword [eax], 2
jmp 0x54d7e0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54fe12
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
cmp edx, dword [esi + 0x6c]
ja 0x54fdfd
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fe5c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fe5c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
lea esp, [esp]
cmp ecx, 0x2000
ja 0x54feca
je case.0x555bc9.999
cmp ecx, 0xa0
ja 0x54fea5
mov edi, edi
je case.0x555bc9.999
cmp ecx, 9
je case.0x555bc9.999
cmp ecx, 0x20
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d7e0
cmp ecx, 0x1680
je case.0x555bc9.999
cmp ecx, 0x180e
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d7e0
cmp ecx, 0x3000
ja case.0x54fef2.8203
je case.0x555bc9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x54fef2.8203
movzx eax, byte [ecx + 0x558a8c]
jmp dword [eax*4 + 0x558a84]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54ff4e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
jmp 0x54ff20
cmp edx, dword [esi + 0x6c]
ja 0x54ff33
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54ff9c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ff9c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
lea esp, [esp]
cmp ecx, 0x2000
ja 0x55000a
je case.0x54fef2.8203
cmp ecx, 0xa0
ja 0x54ffe5
mov edi, edi
je case.0x54fef2.8203
cmp ecx, 9
je case.0x54fef2.8203
cmp ecx, 0x20
je case.0x54fef2.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x1680
je case.0x54fef2.8203
cmp ecx, 0x180e
je case.0x54fef2.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x3000
ja case.0x555bc9.999
je case.0x54fef2.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x555bc9.999
movzx eax, byte [ecx + 0x558af4]
jmp dword [eax*4 + 0x558aec]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55008e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
jmp 0x550060
cmp edx, dword [esi + 0x6c]
ja 0x550073
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5500e5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5500e5
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5500e8
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x550110
je case.0x555bc9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x550109
jmp dword [ecx*4 + 0x558b54]
sub ecx, 0x2028
je case.0x555bc9.999
lea esp, [esp]
sub ecx, 1
je case.0x555bc9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d7e0
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55018e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
jmp 0x550160
cmp edx, dword [esi + 0x6c]
ja 0x550173
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5501e5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5501e5
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5501e8
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x550210
je case.default.0x550109
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x555bc9.999
jmp dword [ecx*4 + 0x558b64]
sub ecx, 0x2028
je case.default.0x550109
lea esp, [esp]
sub ecx, 1
je case.default.0x550109
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x55028e
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
jmp 0x550260
cmp ecx, dword [esi + 0x6c]
ja 0x550273
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx edx, word ds:[ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], ecx
je 0x5502da
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5502da
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
xor ebx, ebx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
mov cl, byte [ebp - 1]
cmp cl, 0xf
lea esi, [eax + eax*2]
sete bl
movzx eax, word [edi + 2]
cmp eax, 0xd
ja case.0x556309.15
jmp dword [eax*4 + 0x558b74]
cmp cl, 0xf
mov edi, edi
je case.0x54d803.162
mov eax, dword [ebp - 8]
add dword [eax], 6
jmp 0x54d7d9
mov al, byte [esi*4 + 0x5d7b01]
jmp 0x550340
cmp al, 9
je 0x55035f
cmp al, 5
je 0x55035f
cmp al, 8
je 0x55035f
xor eax, eax
jmp 0x550364
mov eax, 1
cmp eax, ebx
jne 0x550326
jmp case.0x54d803.162
movzx ecx, byte [esi*4 + 0x5d7b01]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x5f2db0]
sete dl
cmp edx, ebx
jne 0x550326
jmp case.0x54d803.162
movzx eax, byte [esi*4 + 0x5d7b01]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x550326
jmp case.0x54d803.162
movzx eax, byte [esi*4 + 0x5d7b00]
jmp 0x550396
movzx ecx, word ds:[edi + 4]
movzx eax, byte [esi*4 + 0x5d7b00]
cmp cx, ax
je 0x55035f
movzx edx, word [esi*4 + 0x5d7b08]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x5503f1
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5d7270], eax
jne 0x55035f
xor eax, eax
jmp 0x550364
movzx eax, byte [esi*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x55035f
cmp eax, 3
je 0x55035f
xor eax, eax
jmp 0x550364
lea esp, [esp]
cmp edx, 0x20
ja 0x550467
je case.0x550314.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x5504ed.8203
jmp 0x550460
jmp dword [edx*4 + 0x558bac]
cmp edx, 0x2000
ja 0x5504cd
je case.0x550314.0
lea esp, [esp]
cmp edx, 0x1680
ja 0x5504c5
je case.0x550314.0
sub edx, 0x85
je case.0x550314.0
sub edx, 0x1b
je case.0x550314.0
movzx eax, byte [esi*4 + 0x5d7b01]
xor ecx, ecx
cmp dword [eax*4 + 0x5f2db0], 6
sete cl
cmp ecx, ebx
jmp 0x55031e
cmp edx, 0x180e
jmp 0x5504a1
cmp edx, 0x3000
ja case.0x5504ed.8203
je case.0x550314.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x5504ed.8203
movzx eax, byte [edx + 0x558bc8]
jmp dword [eax*4 + 0x558bc0]
movzx eax, byte [esi*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x550527
cmp eax, 3
je 0x550527
cmp edx, 0x5f
je 0x550527
xor eax, eax
cmp eax, ebx
jmp 0x55031e
mov eax, 1
cmp eax, ebx
jmp 0x55031e
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x5d70b0]
lea eax, [eax*4 + 0x5d70b0]
cmp edx, ecx
jb 0x550564
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x550573
mov ecx, dword ds:[eax]
cmp edx, ecx
jae 0x550550
cmp byte [ebp - 1], 0xf
je 0x550326
jmp case.0x54d803.162
cmp byte [ebp - 1], 0xf
jmp 0x55031e
lea esp, [esp]
cmp edx, 0x24
je 0x550527
cmp edx, 0x40
je 0x550527
cmp edx, 0x60
je 0x550527
cmp edx, 0xa0
jb 0x5505ac
jmp 0x5505a0
cmp edx, 0xd7ff
jbe 0x550527
cmp edx, 0xe000
jae 0x550527
xor eax, eax
cmp eax, ebx
jmp 0x55031e
mov ax, word [esi*4 + 0x5d7b08]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
sete cl
cmp ecx, ebx
jmp 0x55031e
movzx ecx, word ds:[edi + 4]
movzx edx, word [esi*4 + 0x5d7b0a]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x550611
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5d7570]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x55031e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x550674
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
cmp edx, dword [esi + 0x6c]
ja 0x55065f
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5506be
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5506be
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, dword [ebp + 0x18]
mov edx, esi
push 0
push ebx
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.0057ac40
mov ecx, dword ds:[ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb case.0x54fef2.8203
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je case.0x54fef2.8203
jmp 0x550700
cmp eax, dword [esi + 0x6c]
ja 0x550713
cmp dword [esi + 0x34], 0
je case.0x54fef2.8203
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d7e0
mov ecx, dword [ebp - 8]
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 0x55082a
mov ecx, dword [ebp - 8]
xor edx, edx
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
mov dword [ecx + 0x24], eax
cmp word [edi], 0x5c
setne dl
add edi, 4
mov dword [ebp - 0x14], edx
mov dword [ecx], edi
jmp 0x550827
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x550827
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x550827
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x550827
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx], edi
jmp 0x550827
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 8]
mov eax, dword [ecx*4 + 0x5d66a8]
mov dword [edx], edi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5d667c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d664c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
movzx ebx, word [edi]
lea ecx, [edi + 2]
mov dword [eax + 0x28], ebx
mov dword [eax], ecx
cmp ebx, 0x10
je 0x550851
mov edi, edi
cmp ebx, 0xf
je 0x550851
or edx, 0xffffffff
jmp 0x550869
movzx edx, word [ecx]
add ecx, 2
mov esi, dword [ebp - 8]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [esi + 0x2c], eax
lea eax, [ecx + 2]
mov dword [esi], eax
mov eax, esi
mov edi, dword [eax + 0x20]
mov dword [ebp - 0x1c], edx
test edi, edi
je 0x55187c
test edx, edx
js 0x5514b5
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [ebp - 0x10], eax
cmp edx, 0xd
ja case.0x556309.15
jmp dword [edx*4 + 0x558c28]
lea ebx, [ebx]
cmp ebx, 0xf
je case.0x54d803.162
mov esi, dword [ebp + 0x18]
mov edx, 1
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550905
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], ecx
je 0x5508f5
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5508f5
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x5508b1
mov eax, dword ds:[ebp - 8]
jmp 0x55187f
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
cmp ecx, dword [esi + 0x6c]
ja 0x550927
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5509a5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5509a5
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5509a8
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d7b01]
cmp al, 9
je 0x5509ef
cmp al, 5
je 0x5509ef
nop
cmp al, 8
je 0x5509ef
xor eax, eax
jmp 0x5509f4
mov eax, 1
cmp eax, edi
je case.0x555bc9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x550947
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x551882
mov esi, ecx
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x555bc9.999
cmp edx, dword [esi + 0x6c]
ja 0x550a3c
cmp dword [esi + 0x34], 0
je case.0x555bc9.999
mov dword [esi + 0x2c], 1
jmp 0x54dbda
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550ab2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550ab2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550ab5
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x555bc9.999
inc esi
cmp esi, edi
jbe 0x550a50
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x551882
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550b73
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550b73
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550b76
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x555bc9.999
inc esi
cmp esi, edi
jbe 0x550b13
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x551882
mov ebx, dword [ebp - 0xc]
mov esi, 1
lea ecx, [ecx]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550c33
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550c33
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550c36
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b00]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x555bc9.999
inc esi
cmp esi, edi
jbe 0x550bd0
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x551882
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550cee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550cee
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d7b00]
cmp eax, ecx
je 0x550d5b
movzx edx, word [edx*4 + 0x5d7b08]
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 + 0x5d7270], eax
jne 0x550d5b
xor eax, eax
jmp 0x550d60
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x550d7f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x550c90
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x551882
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x555426
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550df3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550df3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550df6
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x550e3e
cmp eax, 3
je 0x550e3e
xor eax, eax
jmp 0x550e43
mov eax, 1
cmp eax, edi
je case.0x555bc9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x550d94
mov eax, dword ds:[ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x551882
mov edi, dword [ebp - 0xc]
mov esi, 1
lea ecx, [ecx]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550fbb
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x550ece
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550ece
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x20
ja 0x550ef0
je case.0x550faf.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x550faf.8203
jmp dword [eax*4 + 0x558c60]
cmp ecx, 0x2000
ja 0x550f8f
lea esp, [esp]
je case.0x550faf.8193
cmp ecx, 0x1680
ja 0x550f87
je case.0x550faf.8193
mov eax, ecx
sub eax, 0x85
je case.0x550faf.8193
sub eax, 0x1b
je case.0x550faf.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
cmp dword [eax*4 + 0x5f2db0], 6
sete cl
cmp ecx, dword [ebp - 0x10]
je 0x550fef
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x550e70
mov esi, dword [ebp + 0x18]
jmp 0x551882
cmp ecx, 0x180e
jmp 0x550f2e
cmp ecx, 0x3000
ja case.0x550faf.8203
je case.0x550faf.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x550faf.8203
movzx eax, byte [eax + 0x558c7c]
jmp dword [eax*4 + 0x558c74]
cmp ebx, 0xf
jmp 0x550f6c
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x550fef
cmp edx, dword [esi + 0x6c]
ja 0x550fdf
cmp dword [esi + 0x34], 0
je 0x550fef
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x555426
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
lea esp, [esp]
mov eax, dword ds:[ebp - 8]
mov edx, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [edx + 0x64]
jae 0x5510e9
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x55106e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55106e
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x5510c5
cmp eax, 3
je 0x5510c5
cmp edx, 0x5f
je 0x5510c5
xor eax, eax
jmp 0x5510ca
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x550d7f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x551010
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x551882
mov esi, edx
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x555bc9.999
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x551113
cmp dword [esi + 0x34], 0
je case.0x555bc9.999
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
jmp 0x54dbdd
mov edi, dword [ebp - 0xc]
mov esi, 1
lea ecx, [ecx]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x5511f0
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x551191
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55118e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x5d70b0]
lea eax, [eax*4 + 0x5d70b0]
cmp ecx, edx
jb 0x5511c4
lea ebx, [ebx]
lea eax, [eax + 4]
cmp ecx, edx
je 0x5511e5
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x5511b0
cmp ebx, 0xf
jne 0x550fef
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x551130
mov esi, dword ds:[ebp + 0x18]
jmp 0x551882
cmp ebx, 0xf
je 0x550fef
jmp 0x5511cd
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x550fef
cmp edx, dword [esi + 0x6c]
ja 0x55121c
cmp dword [esi + 0x34], 0
je 0x550fef
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x555426
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55129d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55129d
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
lea ecx, [ecx]
cmp ecx, 0x24
je 0x5512f3
cmp ecx, 0x40
je 0x5512f3
cmp ecx, 0x60
je 0x5512f3
jmp 0x5512c0
cmp ecx, 0xa0
jb 0x5512d8
cmp ecx, 0xd7ff
jbe 0x5512f3
jmp 0x5512e0
cmp ecx, 0xe000
jae 0x5512f3
xor eax, eax
jmp 0x5512f8
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x550d7f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x551246
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x551882
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550a16
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x551385
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x551385
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x551388
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d7b08]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x555bc9.999
inc esi
cmp esi, edi
jbe 0x551322
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x551882
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [edx + 0x64]
jae 0x5510e9
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x551441
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55143e
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d7b0a]
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 + 0x5d7570]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x10]
je case.0x555bc9.999
inc esi
cmp esi, edi
jbe 0x5513e7
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x551882
cmp ebx, 0x16
jne 0x5515a5
mov esi, dword [ebp + 0x18]
lea edi, [ebx - 0x15]
mov ebx, dword [ebp - 0xc]
jmp 0x5514d0
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test ebx, ebx
je 0x55152d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55152d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, dword ds:[ebp + 0x18]
mov edx, esi
push 0
push ebx
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.0057ac40
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x55158c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x55158c
cmp eax, dword [esi + 0x6c]
ja 0x55157c
cmp dword [esi + 0x34], 0
je 0x55158c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x5514d0
mov edi, ebx
jmp 0x551882
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x556309.15
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x552174
lea esp, [esp]
jmp dword [eax*4 + 0x558cdc]
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp - 0xc]
mov ecx, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
je 0x54d7dc
cmp dword ds:[ebp - 0x14], 0
mov edx, dword [ebp - 0x1c]
je 0x5580d1
mov esi, dword [eax + 0x38]
mov dword [eax + 4], esi
mov edi, dword [eax + 0x28]
mov dword [ebp - 0x44], edi
test edx, edx
js 0x553717
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x1c], eax
cmp edx, 0xd
ja case.0x556309.15
jmp dword [edx*4 + 0x558d2c]
jmp dword [eax*4 + 0x558e54]
cmp ecx, ebx
jae 0x552b46
mov edx, dword [ebp - 0x10]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov ecx, 1
cmp esi, dword [eax + 0x64]
jae 0x552b5e
cmp dword [ebp - 0xc], 0
je 0x552b2f
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [ebp - 0x40]
mov eax, 2
cmove ecx, eax
cmp edi, 0xf
je 0x552b46
mov eax, dword [ebp - 8]
lea esi, [esi + ecx*2]
inc edx
mov dword [eax + 0x38], esi
cmp edx, ebx
jb 0x552b00
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54d7e0
jmp 0x557b5d
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x552b46
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x552b86
cmp dword ds:[esi + 0x34], 0
je 0x552b96
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
mov edi, dword [ebp - 8]
jmp 0x552b4c
cmp ecx, ebx
jae 0x552b46
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 0x18]
jmp 0x552bb0
mov edx, 1
cmp esi, dword [edi + 0x64]
jae 0x552c70
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552bfc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552bfc
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 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d7b01]
cmp al, 9
je 0x552c45
cmp al, 5
je 0x552c45
cmp al, 8
je 0x552c45
xor eax, eax
jmp 0x552c4a
mov eax, 1
cmp eax, ebx
je 0x552b46
mov eax, dword [ebp - 8]
lea esi, [esi + edx*2]
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x10], ecx
mov dword [eax + 0x38], esi
cmp ecx, dword [eax + 0x24]
jb 0x552bb0
jmp 0x552b46
movzx eax, word [edi + 0x4c]
mov ecx, eax
test ax, ax
je 0x552b46
cmp esi, dword [edi + 0x6c]
mov esi, edi
ja 0x552c94
cmp dword [esi + 0x34], 0
je 0x552b96
mov dword [esi + 0x2c], edx
jmp 0x552ca0
cmp ecx, 1
ja 0x54da5f
mov edi, dword [ebp - 8]
jmp 0x552b4c
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552b49
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x552d6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552d0f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552d0f
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 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552b46
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x552cc0
jmp 0x552b46
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x552b46
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
jmp 0x552c84
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552b49
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x552d6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552dea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552dea
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 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552b46
mov eax, dword [ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x552d94
mov edi, edi
jmp 0x552b46
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552b49
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x552d6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552eaa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552eaa
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 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b00]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552b46
mov eax, dword [ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x552e50
mov edi, edi
jmp 0x552b46
cmp ecx, ebx
jae 0x552b46
mov ebx, dword [ebp - 0x1c]
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55300e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552f6a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552f6a
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 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d7b00]
cmp eax, ecx
je 0x552fdb
movzx edx, word [edx*4 + 0x5d7b08]
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 + 0x5d7270], eax
jne 0x552fdb
xor eax, eax
jmp 0x552fe0
mov eax, 1
cmp eax, ebx
je 0x552b46
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edi*2]
mov edi, dword [ebp - 8]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edi + 0x38], esi
cmp eax, dword [edi + 0x24]
jb 0x552f10
jmp 0x552b49
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x55370d
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x553032
cmp dword [esi + 0x34], 0
je 0x552b96
mov dword [esi + 0x2c], edi
jmp 0x552c97
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x552b49
mov ebx, dword [ebp - 0x1c]
jmp 0x553050
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x553125
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5530aa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5530aa
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 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x5530f9
cmp eax, 3
je 0x5530f9
xor eax, eax
jmp 0x5530fe
mov eax, 1
mov edi, edi
cmp eax, ebx
je 0x552b49
mov eax, dword [ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, dword [edi + 0x24]
jb 0x553050
mov edi, edi
jmp 0x552b49
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x552b49
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x553150
cmp dword [esi + 0x34], 0
je 0x552b4c
mov dword [esi + 0x2c], edx
cmp ecx, 1
ja 0x54da5f
lea esp, [esp]
jmp 0x552b4c
cmp ecx, ebx
jae 0x552b46
mov ebx, dword [ebp - 0x1c]
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x552d6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5531ca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5531ca
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 0x5531f0
je case.0x5532c4.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x5532c4.8203
jmp dword [eax*4 + 0x558f94]
cmp ecx, 0x2000
ja 0x55329a
lea esp, [esp]
je case.0x5532c4.8193
cmp ecx, 0x1680
ja 0x553292
je case.0x5532c4.8193
mov eax, ecx
sub eax, 0x85
je case.0x5532c4.8193
sub eax, 0x1b
je case.0x5532c4.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
cmp dword [eax*4 + 0x5f2db0], 6
sete cl
cmp ecx, ebx
je 0x552b46
mov ecx, dword [ebp - 8]
lea eax, [edx + edx]
add dword [ecx + 0x38], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [ecx + 0x38]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ecx + 0x24]
jb 0x553170
jmp 0x552b46
cmp ecx, 0x180e
jmp 0x55322e
lea ebx, [ebx]
cmp ecx, 0x3000
ja case.0x5532c4.8203
je case.0x5532c4.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x5532c4.8203
movzx eax, byte [eax + 0x558fb0]
jmp dword [eax*4 + 0x558fa8]
cmp edi, 0xf
jmp 0x55326b
cmp ecx, ebx
jae 0x552b46
mov ebx, dword [ebp - 0x1c]
jmp 0x5532e0
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55300e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x55332f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55332f
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 + 0x5ee910]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x553385
cmp eax, 3
je 0x553385
cmp edx, 0x5f
je 0x553385
xor eax, eax
jmp 0x55338a
mov eax, 1
cmp eax, ebx
je 0x552b46
mov eax, dword [ebp - 0x10]
lea esi, [esi + edi*2]
mov edi, dword [ebp - 8]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edi + 0x38], esi
cmp eax, dword [edi + 0x24]
jb 0x5532e0
jmp 0x552b49
cmp ecx, ebx
jae 0x552b46
mov ebx, dword [ebp - 0x44]
jmp 0x5533c0
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55300e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55340f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55340f
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, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x5d70b0]
lea eax, [eax*4 + 0x5d70b0]
cmp ecx, edx
jb 0x553444
jmp 0x553430
lea eax, [eax + 4]
cmp ecx, edx
je 0x55346e
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x553430
cmp ebx, 0xf
jne 0x552b46
lea eax, [edi + edi]
mov edi, dword [ebp - 8]
add dword [edi + 0x38], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [edi + 0x38]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [edi + 0x24]
jb 0x5533c0
jmp 0x552b49
cmp ebx, 0xf
je 0x552b46
jmp 0x55344d
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x552b49
mov ebx, dword [ebp - 0x1c]
jmp 0x553490
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x553125
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5534ea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5534ea
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 0x55353f
cmp ecx, 0x40
je 0x55353f
lea esp, [esp]
cmp ecx, 0x60
je 0x55353f
cmp ecx, 0xa0
jb 0x55352c
jmp 0x553520
cmp ecx, 0xd7ff
jbe 0x55353f
cmp ecx, 0xe000
jae 0x55353f
xor eax, eax
jmp 0x553544
mov eax, 1
cmp eax, ebx
je 0x552b49
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, dword [edi + 0x24]
jb 0x553490
jmp 0x552b49
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552b49
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x553125
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5535cf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5535cf
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 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d7b08]
shr eax, 0xb
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552b49
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x553580
jmp 0x552b49
cmp ecx, ebx
jae 0x552b46
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55300e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x55368a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55368a
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, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d7b0a]
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 + 0x5d7570]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x1c]
je 0x552b46
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edi*2]
mov edi, dword [ebp - 8]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edi + 0x38], esi
cmp eax, ebx
jb 0x553635
jmp 0x552b49
mov edi, dword [ebp - 8]
mov esi, edx
jmp 0x552b4c
jmp 0x553720
cmp edi, 0x16
jne 0x55385c
cmp ecx, ebx
jb 0x553753
mov esi, dword [ebp + 0x18]
cmp dword ds:[ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54d7e0
jmp 0x55803d
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x553825
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5537b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5537b3
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push ebx
mov ebx, dword [ebp + 0x18]
mov edx, esi
push dword [ebx + 0x64]
push dword [ebx + 0x5c]
call fcn.0057ac40
mov esi, dword [ebp - 8]
mov dword [esi + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x55380c
movzx ecx, word ds:[ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x55380c
cmp eax, dword [ebx + 0x6c]
ja 0x5537fc
cmp dword [ebx + 0x34], 0
je 0x55380c
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x24]
jb 0x553750
mov esi, ebx
jmp 0x553734
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x553734
cmp edx, dword [esi + 0x6c]
ja 0x553847
cmp dword [esi + 0x34], 0
je 0x553734
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp 0x553734
lea eax, ds:[edi - 6]
cmp eax, 0xf
ja case.0x556309.15
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x5541f0
jmp dword [eax*4 + 0x559010]
jmp dword [eax*4 + 0x5590c8]
mov ecx, dword [ebp - 8]
xor eax, eax
cmp bl, 0x74
sete al
mov dword [ecx + 0x28], eax
movzx ecx, word [edi + 2]
movzx eax, word [esi + 0x52]
movzx edx, word [edi + 4]
imul ecx, eax
mov eax, dword [esi + 0x54]
lea ecx, [eax + ecx*2]
lea eax, [edi + 6]
mov edi, dword [ebp - 8]
mov dword [edi], eax
test edx, edx
je 0x554be8
lea esp, [esp]
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [edi + 0x14], eax
cmp eax, dword [edi + 0x50]
jae 0x554bb4
cmp dword [edi + eax*4 + 0x54], 0xffffffff
jne 0x554be8
movzx eax, word [esi + 0x52]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x554b90
nop
jmp 0x554be8
mov ecx, dword [ebp - 8]
xor eax, eax
cmp bl, 0x72
sete al
mov dword [ecx + 0x28], eax
movzx eax, word [edi + 2]
lea eax, [eax*2 - 2]
mov dword [ecx + 0x14], eax
lea eax, [edi + 4]
mov edi, ecx
mov dword [edi], eax
mov esi, dword [edi]
movzx ecx, word [esi]
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x554c00
movzx eax, byte [eax + 0x559200]
jmp dword [eax*4 + 0x5591f8]
mov edx, dword [ecx*4 + 0x5d6674]
lea eax, [esi + 2]
mov ebx, dword [ecx*4 + 0x5d6618]
mov dword [edi], eax
mov eax, dword [ecx*4 + 0x5d6648]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov dword [ebp - 0x14], ebx
jmp 0x554c5e
movzx edx, word [esi + 2]
mov dword [edi + 0x20], edx
movzx ecx, word [esi + 4]
mov dword [edi + 0x24], ecx
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x5d6618]
mov dword [ebp - 0x14], eax
test ecx, ecx
jne 0x554c59
mov dword [edi + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [edi], eax
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x50]
jae 0x554c8f
mov ecx, dword [edi + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x554c8f
mov esi, dword ds:[ebp + 0x18]
cmp ecx, dword [edi + eax*4 + 0x58]
je 0x54d7dc
jmp 0x554caa
mov esi, dword [ebp + 0x18]
test edx, edx
je 0x54d7dc
test dword [esi + 0x8c], 0x200
jne 0x54d7dc
mov esi, 1
cmp edx, esi
jb 0x554ce4
mov edx, dword [edi + 0x28]
lea eax, [ebp - 0x48]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.0054d3e0
test eax, eax
jne 0x554d6a
mov eax, dword ds:[ebp - 0x48]
inc esi
add eax, eax
add dword [edi + 0x38], eax
mov edx, dword [edi + 0x20]
cmp esi, edx
jbe 0x554cb7
mov ebx, dword [edi + 0x24]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
je 0x54db50
cmp dword [ebp - 0x14], 0
je 0x5581bc
mov eax, dword ds:[edi + 0x38]
mov esi, 1
mov dword [edi + 4], eax
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + ecx*4 + 0x58]
sub eax, dword [edi + ecx*4 + 0x54]
mov dword [edi + 0xc], eax
mov edi, dword [edi + 0x20]
cmp edi, ebx
jae 0x554e11
mov ebx, dword [ebp - 8]
jmp 0x554d30
mov edx, dword ds:[ebx + 0x28]
lea eax, [ebp - 0x4c]
mov ecx, dword [ebx + 0x14]
push eax
push dword [ebp + 0x18]
push ebx
call fcn.0054d3e0
test eax, eax
jne 0x554dce
mov eax, dword ds:[ebp - 0x4c]
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 0x554d30
jmp 0x554e09
mov esi, dword [ebp + 0x18]
jle 0x554d79
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x54d803.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
jmp 0x554da0
cmp ecx, dword [esi + 0x6c]
ja 0x554db3
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
jle 0x554e09
mov edx, dword ds:[ebp + 0x18]
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x554e09
mov eax, dword [edx + 0x64]
cmp eax, dword [edx + 0x6c]
jbe 0x554e09
mov dword ds:[edx + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
test esi, esi
je 0x558113
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x54d803.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x15
jmp 0x55862a
mov esi, dword [ebp + 0x18]
lea eax, [ebp - 0x28]
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x14]
push eax
push esi
push edi
call fcn.0054d3e0
test eax, eax
je 0x554eae
jle 0x554e5f
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x54d803.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x554e93
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
jmp case.0x54d803.162
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [edi + 0x38], eax
jmp 0x54d7dc
mov ecx, dword [ebp - 8]
add edi, 2
mov dword [ecx], edi
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
mov edi, eax
mov dword [ecx], eax
cmp word [edi], 0x78
je 0x554ec3
add eax, 4
mov dword [ecx], eax
jmp 0x54d7e0
cmp dword [esi + 0x30], 0
jne 0x554ef5
mov edx, dword [ebp - 8]
cmp dword [edx + 0x18], 0
jne 0x555ac3
xor ecx, ecx
jmp 0x558404
mov ebx, dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
mov edx, esi
mov ecx, ebx
call fcn.0054d2e0
mov esi, eax
test esi, esi
jg case.0x54d803.162
js 0x55541d
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x54d7d9
movzx eax, word [edi + 2]
mov ebx, dword [ebp - 8]
mov dword [ebx + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x554f43
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
add edi, 4
mov dword [ebx], edi
movzx eax, word [edi]
cmp eax, 0x76
je 0x554f5d
cmp eax, 0x77
jne 0x554f89
lea eax, [ebp - 0x28]
mov edx, esi
push eax
mov ecx, ebx
call fcn.0054d2e0
mov esi, eax
test esi, esi
jg case.0x54d803.162
js 0x55541d
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [ebx], eax
mov edi, dword [ebx]
mov eax, dword [ebp - 0x28]
sub dword [ebx + 0xc], eax
movzx ecx, word [edi]
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x554fa2.150
movzx eax, byte [eax + 0x559224]
jmp dword [eax*4 + 0x559208]
mov ecx, dword [ebx + 0x44]
cmp ecx, 0xffffffff
je case.0x554fa2.148
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
cmp eax, 0xffff
je 0x557ee8
cmp eax, ecx
je 0x557ee8
jmp 0x5550fd
mov ebx, dword ds:[ebx + 0x44]
cmp ebx, 0xffffffff
je case.0x554fa2.148
mov eax, dword [ebp + 0x18]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
movzx esi, word [eax + 0x52]
mov eax, dword [eax + 0x54]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x554fa2.148
lea esp, [esp]
movzx eax, word [ecx]
dec edx
cmp eax, ebx
je 0x555045
lea ecx, ds:[ecx + esi*2]
test edx, edx
jg 0x555010
mov eax, dword ds:[ebp - 0x18]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], edi
jmp 0x5550fd
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [edi]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
movzx eax, word [ecx]
mov dword [ebp - 8], edi
movzx eax, byte [eax + 0x5f2e30]
jmp 0x555102
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
lea eax, [eax*2 - 2]
cmp eax, dword [edi + 0x50]
jae 0x5550fd
cmp dword [edi + eax*4 + 0x54], 0xffffffff
je 0x5550fd
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2e30]
jmp 0x555102
mov eax, dword ds:[ebp + 0x18]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
movzx esi, word [eax + 0x52]
mov eax, dword [eax + 0x54]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x554fa2.148
mov edi, dword [ebx + 0x50]
jmp 0x5550d0
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x5550f3
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne case.0x554fa2.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x5550d0
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov dword [eax], edi
cmp byte [eax + 0x31], 0x8f
jne 0x54d7d9
mov edx, 0x2008f
mov byte [eax + 0x30], 0x23
mov dword [ebp - 0x20], edx
jmp 0x55862a
cmp dword [ebp - 0xc], 0
movzx edx, word [edi + 2]
mov ebx, dword [ebp - 8]
je 0x555179
test edx, edx
je 0x555193
mov edi, 0xfc00
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [esi + 0x60]
jbe case.0x54d803.162
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [ebp - 0x2c]
jne 0x555170
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x555143
jmp 0x555193
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jg case.0x54d803.162
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x6c]
jae 0x5551a2
mov dword [esi + 0x6c], eax
add dword [ebx], 4
jmp 0x54d7dc
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov dword [eax], edi
cmp word [edi], 0x78
je case.0x54d803.120
jmp 0x54d7e0
movzx eax, word ds:[edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x55525f
mov ecx, 0x8a
cmp ax, cx
je 0x55525f
mov ebx, dword ds:[ebp - 8]
mov ecx, dword [esi + 0x10]
add ecx, dword [ebx + 0x4c]
mov esi, ecx
mov dword [ebp - 0x18], ecx
sub esi, dword [ebp + 0x14]
mov eax, dword [esi + 0x4c]
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x555267
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.00581150
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 dword [ebx + 0x10], eax
mov esi, 1
jmp 0x55541d
mov ebx, dword [ebp - 8]
xor esi, esi
mov ecx, dword [ebp - 0x18]
movzx eax, word [edi]
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x555280.132
movzx eax, byte [eax + 0x559254]
lea ecx, [ecx]
jmp dword [eax*4 + 0x559238]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x555299
mov dword [ecx + 0x70], eax
mov eax, dword ds:[esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x555280.132
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x5552b7
mov dword [ecx + 0x70], 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]
add eax, eax
cmp word [eax + ecx], 0x78
jne case.0x555280.132
add eax, ecx
mov ecx, eax
mov dword [esi], eax
movzx eax, word [eax + 2]
add eax, eax
cmp word [ecx + eax], 0x78
je 0x5552d7
jmp case.0x555280.132
mov ecx, dword [esi + 0x38]
push edx
mov edx, dword [ebx + 0x38]
call fcn.0057a7e0
jmp 0x555300
test eax, eax
jne case.0x555280.132
jmp case.0x54d803.162
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x555354
mov esi, ecx
sub esi, dword [ebp + 0x14]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00581150
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 0x54d7d9
lea edx, ds:[eax + eax]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x38]
lea ecx, [edx - 2]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp + 0x18]
sub eax, dword [edx + 0x5c]
sar eax, 1
mov dword [ebx + ecx*4 + 0x54], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [edx + 0x5c]
mov edx, dword [ebp - 0x44]
sar eax, 1
mov dword [ebx + ecx*4 + 0x58], eax
cmp ecx, dword [ebx + 0x50]
jb case.0x555280.132
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x5553b5
push dword [ebp - 0x3c]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00581150
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x55541d
mov cl, byte ds:[ebx + 0x31]
cmp cl, 0x79
je 0x5553dd
test esi, esi
je 0x55817d
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x55817d
mov edi, dword [ebp - 8]
add dword [edi], 4
jmp 0x54d7d9
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
jne case.0x54d803.162
test byte ds:[esi + 0x88], 1
jne case.0x54d803.162
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54d7e0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
je 0x555406
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0xc]
mov eax, dword [eax + 0x38]
cmp eax, dword [edx + 0x70]
jbe 0x555435
mov dword [edx + 0x70], eax
mov edi, dword ds:[ebp - 8]
cmp dword [edi + 0x18], 0
je 0x558803
mov eax, dword ds:[ebp + 0x18]
sub edi, dword [edi + 0x10]
mov dword [ebp - 8], edi
mov eax, dword [eax + 0xa8]
or dword [eax + 0x3c], 2
movzx eax, byte [edi + 0x30]
dec eax
cmp eax, 0xe0
ja case.0x556309.15
movzx eax, byte [eax + 0x559360]
jmp dword [eax*4 + 0x559268]
test byte [esi + 0x88], 2
jne case.0x54d803.162
test byte [esi + 0x8c], 0x10
je case.0x54d803.23
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x38]
cmp eax, dword [esi + 0x64]
jb case.0x54d803.162
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x5554b9
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
add dword ds:[edx], 2
jmp 0x54d7dc
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x5555c5
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
lea edi, [eax + 0x9c]
test edx, edx
je 0x55550d
push dword [ebp - 0xc]
push edi
push esi
call fcn.00579ee0
mov esi, dword ds:[ebp + 0x18]
test eax, eax
je 0x555574
jmp 0x555553
mov edx, dword [edi]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [ebp + 0x18]
ja 0x55556e
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x55556e
cmp edx, 1
je 0x555553
mov ax, word ds:[ecx + 2]
cmp ax, word [esi + 0xa2]
jne 0x55556e
lea edi, [esi + 0x9c]
mov ecx, dword ds:[edi]
mov eax, dword [esi + 0x64]
add ecx, ecx
sub eax, ecx
cmp dword [ebx + 0x38], eax
je 0x5555c8
jmp 0x555574
lea edi, [esi + 0x9c]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x54d803.162
cmp dword ds:[esi + 0x98], 0
jne case.0x54d803.162
cmp dword [edi], 2
jne case.0x54d803.162
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54d803.162
nop
jmp 0x54f22f
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x5555e9
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
add dword [ebx], 2
jmp 0x54d7dc
test byte ds:[esi + 0x88], 1
mov ebx, dword [ebp - 8]
je 0x555612
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x5c]
je case.0x54d803.162
mov ecx, dword ds:[ebx + 0x38]
mov esi, dword [esi + 0x5c]
cmp ecx, esi
je 0x555688
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jne 0x555646
test dword ds:[eax + 0x8c], 0x200000
je case.0x54d803.162
mov edx, dword [eax + 0x98]
test edx, edx
je 0x555693
cmp ecx, esi
jbe 0x55567d
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00579fc0
test eax, eax
je 0x55567d
mov eax, 1
jmp 0x55567f
xor eax, eax
nop
test eax, eax
je case.0x54d803.162
mov esi, dword [ebp + 0x18]
add dword [ebx], 2
jmp 0x54d7dc
mov edi, dword ds:[eax + 0x9c]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ecx, eax
jb case.0x54d803.162
mov esi, dword [ebp + 0x18]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54d803.162
lea ecx, [ecx]
cmp edi, 1
je 0x55568b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x55568b
jmp case.0x54d803.162
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x555792
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x555752
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00579ee0
test eax, eax
jne 0x555688
mov esi, dword [ebp + 0x18]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d803.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x54d803.162
cmp dword ds:[esi + 0x98], 0
jne case.0x54d803.162
cmp dword [esi + 0x9c], 2
jmp 0x5555a9
mov edx, dword ds:[eax + 0x9c]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
ja 0x555710
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x555713
cmp edx, 1
je 0x55568b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x55568b
jmp 0x555713
mov esi, dword ds:[ebp + 0x18]
test byte [esi + 0x88], 2
jne case.0x54d803.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x55568b
cmp ecx, dword [esi + 0x6c]
ja 0x5557c8
cmp dword [esi + 0x34], 0
je 0x55568b
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
add dword ds:[ebx], 2
jmp 0x54d7dc
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x5c]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x38], eax
jmp 0x555419
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54d7e0
mov ebx, dword [ebp - 8]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x60]
je 0x555916
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x555874
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x555845
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555874
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp edx, dword [esi + 0x6c]
jae 0x555880
mov dword [esi + 0x6c], edx
test dword [esi + 0x8c], 0x20000
je 0x5558f3
cmp ecx, 0x5f
jne 0x5558a5
lea edi, ds:[ecx - 0x5e]
jmp 0x555918
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x5558e9
lea ecx, [ecx]
cmp eax, 3
jne 0x555916
mov edi, 1
jmp 0x555918
cmp ecx, 0xff
ja 0x555916
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je 0x555916
mov edi, 1
jmp 0x555918
xor edi, edi
mov ecx, dword ds:[ebx + 0x38]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jb 0x55599c
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x555969
jmp 0x555940
cmp ecx, dword [esi + 0x6c]
ja 0x555953
cmp dword [esi + 0x34], 0
je 0x555969
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
xor edx, edx
mov eax, dword ds:[ebx]
xor edx, edi
movzx ecx, word [eax]
add eax, 2
mov dword [ebx], eax
cmp ecx, 5
jne 0x55598c
xor edx, 1
test edx, edx
mov edx, dword [ebp - 0xc]
je 0x54d7e0
jmp case.0x54d803.162
cmp dword [ebp - 0xc], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x555a09
cmp edx, eax
jae 0x5559cd
mov ax, word ds:[edx]
and ax, word [ebp - 0x34]
cmp ax, word [ebp - 0x2c]
jne 0x5559cd
add edx, 2
movzx ecx, word ds:[ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555a0c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x555a0c
movzx ecx, word [ecx]
mov esi, dword [ebp + 0x18]
cmp edx, dword [esi + 0x70]
jbe 0x555a1b
mov dword [esi + 0x70], edx
test dword [esi + 0x8c], 0x20000
je 0x555a87
cmp ecx, 0x5f
jne 0x555a3c
lea edx, [ecx - 0x5e]
jmp 0x55596b
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x555a7d
cmp eax, 3
jne 0x555969
mov edx, 1
jmp 0x55596b
cmp ecx, 0xff
ja 0x555969
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je 0x555969
mov edx, 1
jmp 0x55596b
test esi, esi
jne case.0x555472.35
mov edx, dword [ebp - 8]
mov edi, dword [edi + 4]
mov esi, dword [ebp + 0x18]
mov dword [edx], edi
movzx eax, word ds:[edi + 2]
lea ecx, [edi + eax*2]
mov dword [edx + 4], ecx
cmp word [ecx], 0x78
mov eax, dword [edx]
movzx eax, word [eax]
mov al, byte [eax + 0x5f2e30]
movzx eax, al
je 0x55819e
lea eax, [edi + eax*2]
mov dword [edx], eax
jmp 0x54d7dc
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x555b25
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x555bc9.998
cmp word [ecx], 0x78
je 0x555b2d
cmp word ds:[eax], 0x78
jmp 0x555b27
test esi, esi
jne case.0x555bc9.998
mov ecx, dword ds:[edi]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov ecx, dword [ebp - 8]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x55840c
xor esi, esi
mov eax, ecx
jmp 0x555426
cmp esi, 0xfffffc19
je 0x557e18
jmp 0x555b60
test esi, esi
je 0x555b77
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne case.0x555bc9.998
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov ecx, dword [ebp - 8]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x5584eb
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, ecx
jmp 0x555426
jmp 0x555ba0
test esi, esi
jg 0x555bd0
je case.0x555bc9.993
mov edx, dword ds:[ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x555bc9.998
jmp dword [eax*4 + 0x559444]
mov edx, dword ds:[ebp + 0x18]
mov eax, esi
sub eax, 1
mov eax, dword [ebp - 8]
jne 0x555426
xor esi, esi
jmp 0x555426
test esi, esi
jg 0x555c14
je case.0x555c0d.993
mov edx, dword [ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x555bc9.998
jmp dword [eax*4 + 0x559460]
mov eax, esi
sub eax, 1
jne case.0x555472.35
mov eax, dword [edi + 0x20]
test eax, eax
je 0x5550fd
mov ecx, dword [edi]
lea esp, [esp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x555c30
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2e30]
jmp 0x555102
test esi, esi
jne case.0x555472.35
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [edi], ecx
jmp 0x54d7d9
test esi, esi
je 0x5553e0
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x555426
lea ebx, [ebx]
cmp esi, 0xfffffc1a
jne 0x555cb5
mov dword [edi + 0x24], 1
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jne 0x5581aa
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x555ca1
jmp 0x555d0e
mov edx, dword ds:[ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x555cf1
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x555bc9.998
cmp word [ecx], 0x78
je 0x555cf9
cmp word [eax], 0x78
jmp 0x555cf3
test esi, esi
jne case.0x555bc9.998
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x5583c8
cmp dword [edi + 0x24], 0
jne 0x555d50
cmp dword ds:[edi + 0x28], 0
jne 0x555d50
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
test esi, esi
jne case.0x555472.35
mov ecx, dword [edi + 4]
mov edi, edi
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi + 4], ecx
cmp word [ecx], 0x78
je 0x555d40
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x54d7d9
lea ebx, [ebx]
test esi, esi
jne case.0x555472.35
add dword [edi], 2
jmp 0x54d7d9
mov edx, dword [edi + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x555de9
mov ebx, dword ds:[ebp + 0x18]
mov eax, dword [edi + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x84], eax
jne 0x555de9
cmp esi, 0xfffffc1f
jne 0x54f75b
mov eax, ebx
cmp dword [eax + 0x7c], ecx
jae 0x54f75b
cmp word [edx], 0x78
je 0x555df7
cmp word [ecx], 0x78
je 0x555df7
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x555423
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0xc]
test esi, esi
jne case.0x555bc9.998
mov dword ds:[edi + 4], ecx
cmp word [ecx], 0x78
je 0x5584bb
jmp case.0x54d803.162
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1e
jne case.0x555bc9.998
mov ecx, dword [edi]
mov eax, edx
add ecx, 4
mov edx, dword [eax + 0x80]
call fcn.0057ae20
mov edx, dword [ebp + 0x18]
test eax, eax
jne case.0x555bc9.998
mov eax, dword [edi + 0x38]
mov esi, 0xfffffc1d
mov dword [edx + 0x80], eax
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1c
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov eax, dword [edi + 0x38]
mov esi, edx
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1d
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov eax, dword [edi]
mov esi, edx
add eax, 4
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1e
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov eax, dword [edi]
mov esi, edx
mov dword [esi + 0x7c], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1f
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword ds:[ebp + 0x18]
lea eax, [ebp - 0x50]
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x14]
push eax
push esi
push edi
call fcn.0054d3e0
test eax, eax
je 0x5581b4
jle 0x555f39
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x555bc9.999
jmp 0x5510eb
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov eax, dword ds:[edi + 0xc]
neg eax
add eax, eax
add dword [edi + 0x38], eax
jmp 0x554e14
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov eax, dword [edi + 4]
cmp dword [edi + 0x38], eax
je case.0x54d803.162
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x24]
dec eax
mov dword [edi + 0x24], eax
mov esi, dword [edi + 0x20]
cmp esi, eax
jae 0x555fb3
mov edx, dword ds:[edi + 0x28]
lea eax, [ebp - 0x54]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.0054d3e0
mov eax, dword [ebp - 0x54]
inc esi
add eax, eax
add dword [edi + 0x38], eax
cmp esi, dword [edi + 0x24]
jb 0x555f91
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x16
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [edi + 0x38], eax
cmp ecx, 0xff
jbe 0x556025
cmp byte [edi + 0x31], 0x6e
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55862a
mov edx, dword [edi + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x556017
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
add dword [edi + 0x38], 0xfffffffe
jmp 0x54f459
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x5510eb
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x55609e
cmp dword [edi + 0x2c], eax
jne case.0x555bc9.999
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x55862a
add dword [edi + 0x38], 0xfffffffe
test esi, esi
je 0x54e82e
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x54dbb7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
jne case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x55862d
add dword ds:[edi + 0x38], 0xfffffffe
test esi, esi
je 0x54e969
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x5510eb
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je case.0x555bc9.999
cmp dword [edi + 0x2c], eax
je case.0x555bc9.999
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55862a
test esi, esi
jne case.0x555472.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d7d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1e
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x54dbb7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55862a
test esi, esi
jne case.0x555472.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d7d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x20
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x54dbb7
cmp dword [edi + 0x28], 0xc
jne 0x5562ed
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x5562a7
push ebx
push eax
push ecx
mov ecx, esi
call fcn.00579ee0
test eax, eax
je 0x5562ed
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x5562ed
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x5562ed
cmp edx, 1
je 0x556310
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x556312
mov eax, dword ds:[edi + 0x38]
movzx ecx, word [eax]
lea esi, [eax + 2]
mov dword [edi + 0x38], esi
mov eax, dword [edi + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x556309.15
jmp dword [eax*4 + 0x55947c]
mov edx, ecx
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x555426
lea esp, [esp]
cmp ecx, 0x85
ja 0x556347
je case.0x556340.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x555bc9.999
mov edi, edi
jmp dword [ecx*4 + 0x5594bc]
sub ecx, 0x2028
je case.0x556340.11
sub ecx, 1
jne case.0x555bc9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
jmp 0x556380
cmp ecx, 0x2000
ja 0x5563ea
je case.0x555bc9.999
cmp ecx, 0xa0
ja 0x5563c5
mov edi, edi
je case.0x555bc9.999
cmp ecx, 9
je case.0x555bc9.999
cmp ecx, 0x20
jne case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x1680
je case.0x555bc9.999
cmp ecx, 0x180e
jne case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x3000
ja case.0x556309.13
je case.0x555bc9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x556309.13
movzx eax, byte [ecx + 0x5594d4]
jmp dword [eax*4 + 0x5594cc]
lea esp, [esp]
cmp ecx, 0x2000
ja 0x55648a
je case.0x556309.13
cmp ecx, 0xa0
ja 0x556465
mov edi, edi
je case.0x556309.13
cmp ecx, 9
je case.0x556309.13
cmp ecx, 0x20
je case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x1680
je case.0x556309.13
cmp ecx, 0x180e
je case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x3000
ja case.0x555bc9.999
je case.0x556309.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x555bc9.999
movzx eax, byte [ecx + 0x55953c]
jmp dword [eax*4 + 0x559534]
lea esp, [esp]
cmp ecx, 0x85
ja 0x5564e7
je case.0x555bc9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x556309.13
mov edi, edi
jmp dword [ecx*4 + 0x55959c]
sub ecx, 0x2028
je case.0x555bc9.999
sub ecx, 1
jne case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x85
ja 0x556530
je case.0x556309.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x555bc9.999
jmp dword [ecx*4 + 0x5595ac]
sub ecx, 0x2028
je case.0x556309.13
lea esp, [esp]
sub ecx, 1
je case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
jmp 0x556560
cmp ecx, 0xff
ja case.0x556309.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0xff
ja case.0x555bc9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0xff
ja case.0x556309.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
lea esp, [esp]
cmp ecx, 0xff
ja case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0xff
ja case.0x556309.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0xff
ja case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x556309.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
lea esp, [esp]
test esi, esi
jne case.0x555472.35
mov eax, dword [edi + 0x38]
add eax, 0xfffffffe
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0x11
jne 0x5566a9
jmp 0x556680
cmp eax, dword [edi + 4]
jbe 0x5566a9
cmp word [eax], 0xa
jne 0x5566a9
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x5566a9
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d7d9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x22
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1b
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55675a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55675a
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 [edi + 0x38], eax
mov edx, dword ds:[edi + 8]
push ebx
call fcn.0057a1a0
test eax, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x64
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x555bc9.999
lea ebx, [ebx]
test ebx, ebx
je 0x54f642
mov ax, word ds:[edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x54f642
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55684a
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 [edi + 0x38], eax
cmp ecx, 0xff
jbe 0x556874
cmp byte ds:[edi + 0x31], 0x6e
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x55862a
mov edx, dword [edi + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x556866
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x54d803.162
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x54f3a9
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov edi, dword [edi + 0xc]
mov edx, dword [ebp - 8]
add edi, edi
mov ecx, dword [eax + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
mov ebx, dword [edx + 0x38]
cmp ebx, eax
ja 0x5569ad
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x556955
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55695e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x556940
cmp esi, 0xfffffffc
je 0x558266
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5569aa
cmp esi, 0xfffffffd
je 0x558266
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5569aa
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x558266
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5569aa
cmp esi, 0xffffffff
je 0x558266
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x558266
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x556a4a
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x556a4a
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x5569f5
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5569fe
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5569e0
cmp esi, 0xfffffffc
je 0x558266
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x556a4a
cmp esi, 0xfffffffd
je 0x558266
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x556a4a
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x558266
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x556a4a
cmp esi, 0xffffffff
je 0x558266
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x558266
mov esi, dword [ebp + 0x18]
cmp ebx, dword [esi + 0x64]
jb case.0x54d803.162
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d803.162
cmp ebx, dword [esi + 0x6c]
ja 0x556a7c
cmp dword [esi + 0x34], 0
je case.0x54d803.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54da5f
jmp case.0x54d803.162
test esi, esi
jne case.0x555472.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x556ac1
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d7d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcb
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556b4a
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 [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x555bc9.999
cmp dword [edi + 0x2c], ecx
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x55862a
test esi, esi
jne case.0x555472.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x556b9a
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d7d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcd
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556c2a
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 [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword ds:[eax]
mov byte [eax + 0x30], 0xce
jmp 0x55862a
test esi, esi
jne case.0x555472.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x556c75
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d7d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcf
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x5510eb
movzx eax, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x556cf1
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556cf1
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0xf
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556d7a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556d7a
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 [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d7b01]
cmp al, 9
je 0x556dc5
cmp al, 5
je 0x556dc5
cmp al, 8
je 0x556dc5
xor ecx, ecx
jmp 0x556dca
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556e5a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556e5a
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 [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556f2b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556f2b
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 [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556feb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556feb
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 [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b00]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5570ab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5570ab
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 [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x5570f9
cmp eax, 3
je 0x5570f9
xor ecx, ecx
jmp 0x5570fe
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55718b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55718b
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 [edi + 0x38], eax
cmp ecx, 0x20
ja 0x5571b0
je case.0x557270.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x557270.8203
jmp dword [eax*4 + 0x5595bc]
cmp ecx, 0x2000
ja 0x557250
lea esp, [esp]
je case.0x557270.8193
cmp ecx, 0x1680
ja 0x557248
je case.0x557270.8193
mov eax, ecx
sub eax, 0x85
je case.0x557270.8193
sub eax, 0x1b
je case.0x557270.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
cmp dword [eax*4 + 0x5f2db0], 6
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x55862a
cmp ecx, 0x180e
jmp 0x5571ee
cmp ecx, 0x3000
ja case.0x557270.8203
je case.0x557270.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x557270.8203
movzx eax, byte [eax + 0x5595d8]
jmp dword [eax*4 + 0x5595d0]
cmp dword [edi + 0x28], 0xf
jne 0x55723a
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x5510eb
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x5572fa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5572fa
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 [edi + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee910]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b01]
mov eax, dword [eax*4 + 0x5f2db0]
cmp eax, 1
je 0x557350
cmp eax, 3
je 0x557350
lea ecx, [ecx]
cmp edx, 0x5f
je 0x557350
xor ecx, ecx
jmp 0x557355
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5573eb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5573eb
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 [edi + 0x38], eax
mov eax, dword ds:[edi + 0x2c]
mov edx, dword [eax*4 + 0x5d70b0]
lea eax, [eax*4 + 0x5d70b0]
cmp ecx, edx
jb 0x557424
jmp 0x557410
lea eax, [eax + 4]
cmp ecx, edx
je 0x55743c
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x557410
cmp dword [edi + 0x28], 0xf
jne case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x55862a
cmp dword [edi + 0x28], 0xf
jne 0x55742e
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5574bd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5574bd
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 [edi + 0x38], eax
lea ecx, [ecx]
cmp ecx, 0x24
je 0x557513
cmp ecx, 0x40
je 0x557513
cmp ecx, 0x60
je 0x557513
jmp 0x5574e0
cmp ecx, 0xa0
jb 0x5574f8
cmp ecx, 0xd7ff
jbe 0x557513
jmp 0x557500
cmp ecx, 0xe000
jae 0x557513
xor ecx, ecx
jmp 0x557518
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x5510eb
movzx esi, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
mov edx, ecx
test ebx, ebx
je 0x5575ad
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5575ad
movzx eax, word [ecx]
lea edx, [ecx + 2]
and esi, 0x3ff
mov dword [edi + 0x38], edx
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
mov eax, dword ds:[ebp + 0x18]
mov ecx, esi
push 0
push ebx
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.0057ac40
mov esi, dword [ebp + 0x18]
mov dword [edi + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x55760c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x55760c
cmp eax, dword [esi + 0x6c]
ja 0x5575fc
cmp dword [esi + 0x34], 0
je 0x55760c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x54dbb7
cmp dword [edi + 0x28], 0xc
jne 0x5576cd
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x557687
push ebx
push eax
push ecx
mov ecx, esi
call fcn.00579ee0
test eax, eax
je 0x5576cd
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x555426
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x5576cd
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x5576cd
cmp edx, 1
je 0x556310
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x556312
mov eax, dword [edi + 0x38]
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55770a
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [edi + 0x38], edx
mov eax, dword [edi + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x556309.15
lea esp, [esp]
jmp dword [eax*4 + 0x559638]
cmp ecx, 0x85
ja 0x557750
je case.0x557749.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x555bc9.999
jmp dword [ecx*4 + 0x559678]
sub ecx, 0x2028
je case.0x557749.11
lea esp, [esp]
sub ecx, 1
jne case.0x555bc9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x557720.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x2000
ja 0x557805
je case.0x555bc9.999
jmp 0x5577a0
cmp ecx, 0xa0
ja 0x5577d6
je case.0x555bc9.999
cmp ecx, 9
je case.0x555bc9.999
jmp 0x5577c0
cmp ecx, 0x20
jne case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
jmp 0x5577e0
cmp ecx, 0x1680
je case.0x555bc9.999
cmp ecx, 0x180e
jne case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x3000
ja case.0x557720.13
je case.0x555bc9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x557720.13
movzx eax, byte [ecx + 0x559690]
jmp dword [eax*4 + 0x559688]
jmp 0x557840
cmp ecx, 0x2000
ja 0x5578aa
je case.0x557720.13
cmp ecx, 0xa0
ja 0x557885
mov edi, edi
je case.0x557720.13
cmp ecx, 9
je case.0x557720.13
cmp ecx, 0x20
je case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x1680
je case.0x557720.13
cmp ecx, 0x180e
je case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x3000
ja case.0x555bc9.999
je case.0x557720.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x555bc9.999
movzx eax, byte [ecx + 0x5596f8]
jmp dword [eax*4 + 0x5596f0]
lea esp, [esp]
cmp ecx, 0x85
ja 0x557907
je case.0x555bc9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x557720.13
mov edi, edi
jmp dword [ecx*4 + 0x559758]
sub ecx, 0x2028
je case.0x555bc9.999
sub ecx, 1
jne case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x85
ja 0x557950
je case.0x557720.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x555bc9.999
jmp dword [ecx*4 + 0x559768]
sub ecx, 0x2028
je case.0x557720.13
lea esp, [esp]
sub ecx, 1
je case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
jmp 0x557980
cmp ecx, 0x100
jae case.0x557720.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x100
jae case.0x555bc9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x100
jae case.0x557720.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
lea esp, [esp]
cmp ecx, 0x100
jae case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x100
jae case.0x557720.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
cmp ecx, 0x100
jae case.0x555bc9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x557720.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x555426
lea esp, [esp]
test esi, esi
jne case.0x555472.35
mov edx, dword [edi + 0x38]
add edx, 0xfffffffe
mov dword [edi + 0x38], edx
test ebx, ebx
jne 0x557ef9
movzx ecx, word ds:[edx]
jmp 0x557f4a
test esi, esi
jne case.0x555472.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x557ad5
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
cmp dword [edi + 0x28], 0x11
jne 0x557b09
nop
cmp ecx, dword [edi + 4]
jbe 0x557b09
cmp word [ecx], 0xa
jne 0x557b09
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x557b09
mov dword [edi + 0x38], ecx
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d7d9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xdd
jmp 0x55862a
test esi, esi
jne case.0x555472.35
mov ecx, dword [edi + 0x38]
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x557b5d
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x557b5d
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d7d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xde
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x5510eb
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x557beb
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557beb
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 [edi + 0x38], eax
mov ecx, dword [edi + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d7b0a]
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 + 0x5d7570]
and ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x55862a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x557ccb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557ccb
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 [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d7b08]
shr eax, 0xb
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x55862a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x555bc9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x555bc9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550a18
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x557d8b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557d8b
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 [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
mov ecx, dword [edi + 0x2c]
movzx eax, word [eax*2 + 0x5dbd10]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5d7b00]
cmp eax, ecx
je 0x557df4
movzx edx, word [edx*4 + 0x5d7b08]
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 + 0x5d7270], eax
jne 0x557df4
xor ecx, ecx
jmp 0x557df9
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x555bc9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe1
jmp 0x55862a
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00581150
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [edi + 0x40], eax
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x557e40
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x54d7d9
mov edi, dword [edi]
mov ecx, dword [ebp - 8]
mov edi, edi
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x557e60
lea eax, [edi + 4]
jmp 0x54d7d7
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov ecx, dword [ebp - 8]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x558515
lea eax, [edi + 4]
jmp 0x54d7d7
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00581150
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
jmp 0x555c1f
mov ecx, dword [edi + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [edi + 4], eax
cmp word [eax], 0x78
je 0x558153
xor eax, eax
cmp dword [edi + 0x20], eax
sete al
jmp 0x555c22
mov edi, dword [ebp - 8]
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2e30]
jmp 0x555102
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x557f19
lea esi, [edx - 2]
mov dword [edi + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557f4a
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, dword [edi + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5ee910]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x5d7b02]
cmp edx, edi
jbe 0x55803d
lea ecx, [ecx]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x557fe5
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x557fb2
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557fe5
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 + 0x5ee910]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x5dbd10]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5d7b02]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5f2d70], eax
je 0x55803d
mov eax, dword [ebp - 8]
mov ebx, esi
mov dword [eax + 0x38], edx
cmp edx, edi
ja 0x557f80
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x54d7d9
mov edi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x55862a
inc dword ds:[esi + 0x90]
mov ebx, dword [ebp - 8]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x94]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2e30]
movzx eax, word [edx + 2]
ja 0x558317
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x54d7dc
cmp dword [ebp - 0xc], 0
jne 0x556b5f
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55862a
test ebx, ebx
jne 0x556c36
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55862a
cmp dword ds:[ebp - 0xc], 0
jne 0x556869
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55862a
test edx, edx
js 0x5580f0
lea esp, [esp]
cmp edx, 0xd
ja case.0x556309.15
jmp dword [edx*4 + 0x559778]
cmp dword [eax + 0x28], 0x16
je 0x55760f
lea ebx, [ebx]
test edi, edi
jne 0x55830c
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55862a
mov eax, dword [ebp - 8]
mov dword [ebx + 0x24], edi
mov edi, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x16
jmp 0x55862a
cmp ecx, 0x7e
je 0x558145
mov eax, 0x80
cmp cx, ax
je 0x558145
xor eax, eax
jmp 0x55814a
mov eax, 1
mov dword [ebx + 0x20], eax
mov dword [ebx + 4], edi
mov edi, dword [ebp - 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
movzx edx, word [eax]
movzx eax, word [ecx]
or edx, 0x30000
mov dword [ebp - 0x20], edx
movzx eax, byte [eax + 0x5f2e30]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 5
jmp 0x55862a
mov eax, dword [ebp - 8]
cmp cl, 0x7b
jne 0x558195
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x55862d
mov byte [ebx + 0x30], 7
jmp 0x55862d
lea edi, [edi + eax*2]
mov byte [edx + 0x30], 1
jmp 0x55862a
mov eax, dword [edi + 8]
mov dword [edi], eax
jmp 0x5583c8
mov eax, dword [ebp - 0x50]
add eax, eax
add dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x14
jmp 0x55862a
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae case.0x556309.13
cmp word ds:[esi], 0xa
jne case.0x556309.13
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55862a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x556309.13
cmp esi, dword [ebx + 0x64]
jb case.0x556309.13
cmp dword ds:[ebx + 0x98], 0
jne case.0x556309.13
cmp dword [ebx + 0x9c], 2
jne case.0x556309.13
movzx eax, word ds:[ebx + 0xa0]
cmp ecx, eax
jne case.0x556309.13
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55862a
mov ecx, dword [ebp - 8]
lea eax, [ebx + edi]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x55862a
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae case.0x557720.13
cmp word [edx], 0xa
jne case.0x557720.13
lea eax, [edx + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55862a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov esi, eax
test ax, ax
je case.0x557720.13
lea esp, [esp]
cmp edx, dword [ebx + 0x64]
jb case.0x557720.13
cmp dword [ebx + 0x98], 0
jne case.0x557720.13
cmp dword ds:[ebx + 0x9c], 2
jne case.0x557720.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x557720.13
mov dword ds:[ebx + 0x2c], 1
cmp esi, 1
ja 0x54da5f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55862a
mov byte ds:[ebx + 0x30], 0x11
jmp 0x558625
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x55862a
mov ecx, dword [ebp - 8]
add edi, 2
mov dword [ecx + 4], edi
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
mov edi, eax
mov dword [ecx + 4], eax
cmp word [edi], 0x78
je 0x558340
lea edi, [eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x55862a
mov ecx, dword [ebp - 8]
add edi, 2
mov edx, 0x89
mov dword [ecx + 0x28], 1
mov dword [ecx], edi
movzx eax, word [edi]
cmp ax, dx
je 0x5583af
mov edx, 0x8e
cmp ax, dx
jne 0x55839b
jmp 0x5583af
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], 0
mov eax, 0x20000
jmp 0x5583b8
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], 0
movzx eax, word [edi + 4]
or eax, 0x10000
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], 0
mov dword [ecx + 8], edi
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x38]
mov dword [edi + 4], eax
mov ecx, dword [edi]
mov edx, dword [edi + 0x20]
mov dword [ebp - 0x20], edx
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2e30]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 8
jmp 0x55862a
movzx ecx, word [edi + 4]
or ecx, 0x10000
jmp 0x558404
or ecx, 0x20000
mov eax, dword [ebp - 8]
mov dword [eax + 0x20], ecx
mov ecx, eax
movzx eax, word [edi]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x20], edx
mov byte [ecx + 0x30], 2
movzx eax, byte [eax + 0x5f2e30]
lea edi, [edi + eax*2]
jmp 0x55862a
mov ecx, dword [esi + 0x58]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x558445
xor edi, edi
jmp 0x558449
movzx edi, word [ebx + 4]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x44], 0xffffffff
je 0x5584ac
mov eax, dword ds:[ecx + 0x4c]
cmp eax, 0xffffffff
je 0x5584ac
mov esi, dword [esi + 0x10]
mov edx, edi
or edx, 0x40000
add eax, esi
mov ecx, eax
sub ecx, dword [ebp + 0x14]
cmp dword [eax + 0x1c], edx
je 0x558496
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x558474
jmp 0x5584a9
mov eax, dword ds:[ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x55880e
mov ecx, dword [ebp - 8]
or edi, 0x40000
mov dword [ecx + 4], ebx
mov dword [ecx + 0x20], edi
mov edi, dword [ebp - 8]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x20]
mov dword [ebp - 0x20], edx
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2e30]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xb
jmp 0x55862a
mov eax, dword [ebp - 8]
or ecx, 0x20000
mov dword [eax + 0x20], ecx
mov ecx, eax
movzx eax, word [edi]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x20], edx
mov byte [ecx + 0x30], 3
movzx eax, byte [eax + 0x5f2e30]
lea edi, [edi + eax*2]
jmp 0x55862a
mov eax, dword [ebp - 8]
or ecx, 0x20000
mov dword [eax + 0x20], ecx
mov ecx, eax
movzx eax, word [edi]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x20], edx
mov byte [ecx + 0x30], 4
movzx eax, byte [eax + 0x5f2e30]
lea edi, [edi + eax*2]
jmp 0x55862a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2e30]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x558625
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f2e30]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xd
jmp 0x55862a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2e30]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x558625
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f2e30]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xe
jmp 0x55862a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2e30]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x558625
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f2e30]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x10
jmp 0x55862a
movzx eax, word ds:[edi]
movzx eax, byte [eax + 0x5f2e30]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x12
jmp 0x55862a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2e30]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x13
add ecx, eax
lea edi, [edx + ecx*2]
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov ecx, dword [ebp + 0x14]
add ecx, eax
lea eax, [esi + 0x14]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], eax
cmp ecx, dword [eax]
jb 0x55870e
mov ecx, dword ds:[esi + 0xc]
mov edx, dword [esi + 0x1c]
mov dword [ebp - 0x1c], eax
lea ebx, [ecx + ecx]
mov eax, ebx
shr eax, 0xa
cmp eax, edx
jbe 0x558684
mov ebx, edx
xor edx, edx
shl ebx, 0xa
mov eax, ebx
div dword [ebp + 0x14]
sub ebx, edx
cmp ecx, ebx
jae 0x55881c
lea eax, [esi + 0x14]
mov dword [ebp - 0x1c], eax
lfence
push dword [esi + 8]
mov esi, dword [esi]
mov ecx, esi
push ebx
call dword [0x5a28f0]
call esi
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
je 0x55882a
mov eax, dword [ebp + 0x18]
push dword [eax + 0xc]
push dword [eax + 0x10]
push esi
call fcn.00581150
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov edx, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
mov eax, esi
sub eax, ecx
add edx, eax
mov dword [ebp - 8], edx
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 0x18]
cmp ecx, dword [edx + 0x18]
je 0x5586fd
push dword [edx + 8]
mov esi, dword [edx + 4]
push ecx
mov ecx, esi
call dword [0x5a28f0]
call esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
jmp 0x558700
mov ecx, dword [ebp - 0x10]
mov dword [edx + 0x10], esi
lea eax, [esi + ebx]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x18]
mov dword [edx + 0xc], ebx
mov ebx, dword ds:[ebp - 8]
push dword [ebp - 0x3c]
lea eax, [ebx + 0x38]
push eax
lea eax, [ecx + 0x38]
push eax
call fcn.00581150
mov edx, dword ds:[ebp - 0x18]
add esp, 0xc
mov eax, dword [ebx + 0x18]
mov ebx, dword [ebp - 0x20]
inc eax
mov dword [ebp - 8], edx
mov dword [edx + 0x18], eax
mov eax, edx
mov edx, dword [ebp + 0x14]
jmp 0x54d773
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, ecx
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov dword [eax + 0x68], edx
mov eax, dword [ebx + 0x50]
mov dword [ecx + 0x48], eax
mov eax, dword [ebx + 0x40]
mov dword [ecx + 0x74], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x558776
mov dword [ecx + 0x70], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x5c]
mov edi, dword [ebp + 8]
movzx esi, word [ebp + 0xc]
sar eax, 1
mov dword [edi], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ecx + 0x5c]
sar eax, 1
mov dword [edi + 4], eax
movzx eax, word [ebp + 0x10]
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 + 8]
push eax
call fcn.00581150
mov eax, dword ds:[ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x5587e4
jmp 0x5587d0
mov dword ds:[edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x5587d0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd4
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffcc
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffc1
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd0
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd1
pop ebx
mov esp, ebp
pop ebp
ret 0x14