Function at 0x553f60
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 0x554024
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 0x55401f
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 0x55f0b8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x24]
jb 0x55405c
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.0x55cb89.15
movzx eax, byte [ecx + 0x55f224]
jmp dword [eax*4 + 0x55f0c8]
mov eax, dword [ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
jne 0x554103
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
lea ebx, [ebx]
cmp eax, 0xffffffff
je case.0x55cb89.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 0x5540ca
mov eax, dword [edx + 0x4c]
jmp 0x5540a0
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 0x554100
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f40e0]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 8]
jmp 0x554057
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [esi + 0x70]
jbe 0x554128
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 8]
mov esi, 0xfffffc19
mov dword [ebp - 0x24], eax
jmp 0x55bca0
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
je 0x55418f
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x55cb89.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 0x55416f
mov eax, dword [ecx + 0x4c]
jmp 0x554145
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 0x55405c
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x5541c8
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x88]
test al, 4
jne case.0x554083.162
test al, 8
je 0x5541c8
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.0x554083.162
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x55efd2
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0x8c]
or eax, dword [ecx + 0x88]
test eax, 0x20000000
je 0x55efd0
test bl, bl
jne 0x55efc5
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, ecx
jmp 0x55bca3
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x5542ed
mov esi, dword [eax + 0x64]
lea edi, [eax + 0x64]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, esi
jae 0x554243
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x18]
add eax, 0x9c
push eax
push esi
call fcn.0057b3c0
test eax, eax
je 0x554243
mov eax, 1
jmp 0x554245
xor eax, eax
test eax, eax
jne case.0x554083.162
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x554083.13
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x98], 0
jne 0x55429c
cmp dword [eax + 0x9c], 2
jne 0x55429c
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x554083.13
mov eax, esi
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov esi, eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x55433b
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x5542cf
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp edx, 1
jbe case.0x554083.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 0x554331
mov ax, word [edx]
cmp ax, word [edi + 0xa0]
jne 0x554331
cmp esi, 1
je case.0x554083.162
mov ax, word [edx + 2]
mov esi, edi
cmp ax, word [esi + 0xa2]
jne 0x554333
jmp case.0x554083.162
mov esi, edi
lea edi, [esi + 0x64]
jmp 0x554253
mov edx, dword [ebp - 0xc]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x554371
cmp ecx, dword [esi + 0x64]
jae 0x554371
mov ax, word ds:[ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x55436e
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
add dword [eax], 2
jmp 0x554060
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x5543bd
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x5543a8
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x5542df
jmp case.0x554083.162
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x5543d0
mov esi, dword [ebp + 0x18]
jmp 0x554060
mov ebx, dword ds:[ebp - 0xc]
test ebx, ebx
je 0x5544a5
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 0x554420
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 0x554473
cmp esi, ecx
jb case.0x55c449.999
mov eax, dword [ebp + 0x18]
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55c449.999
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x554453
cmp dword [eax + 0x34], 0
je case.0x55c449.999
mov dword [eax + 0x2c], 1
cmp ecx, 1
lea ecx, [ecx]
ja 0x5542df
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
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 0x55449b
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x554473
jmp 0x554059
xor esi, esi
jmp 0x55bca0
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 0x5544f1
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x5544dc
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.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.0x554083.162
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x554059
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [esi + 0x64]
jb 0x55455e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x6c]
mov eax, dword [ebp + 0x18]
ja 0x554549
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x55468b
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 0x5545b6
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 0x5545b9
mov eax, dword [ebp - 8]
movzx edx, word ds:[ecx]
cmp esi, 0x80
jae 0x5545ff
cmp edx, 0xff
ja 0x5545da
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.0x554083.162
mov edx, dword [ebp - 8]
lea eax, [ebx + 2]
mov dword [edx], eax
lea eax, [ecx + 2]
mov dword [edx + 0x38], eax
jmp 0x554059
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554637
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 0x55463a
mov ecx, dword [ebp - 8]
lea eax, ds:[ebx + edi*2]
mov dword [ecx], eax
cmp edx, esi
je 0x554059
mov eax, esi
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5efbc0]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d8db4]
add eax, esi
mov esi, dword [ebp + 0x18]
cmp edx, eax
mov edx, dword [ebp - 0xc]
je 0x554060
jmp case.0x554083.162
cmp dword [ebp - 0x30], 0
je 0x55474e
movzx esi, word ds:[edi + 2]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x5546d9
cmp edx, 0xff
ja 0x5546ba
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 0x554733
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x55bca6
cmp edx, esi
je 0x554733
lfence
mov eax, esi
test eax, eax
jns 0x5546e9
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5efbc0]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x55470c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d8db4]
add eax, esi
cmp edx, eax
mov eax, dword [ebp - 8]
je 0x554733
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x55bca6
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 0x554060
movzx eax, word [edi + 2]
mov edx, eax
cmp ax, word [ebp - 0x38]
ja 0x554761
mov eax, dword [esi + 0x38]
movzx edx, byte [eax + edx]
movzx eax, word [ecx]
mov ecx, eax
cmp ax, word [ebp - 0x38]
ja 0x554773
mov eax, dword [esi + 0x38]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x554785
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
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 0x554060
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x5547e5
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x5547cf
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x5542df
nop
jmp case.0x554083.162
lea eax, [edi + 2]
test edx, edx
je 0x5548c5
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 0x554829
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 0x554866
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.0x554083.162
cmp bl, 0x20
jne 0x554059
cmp edx, 0x7f
jbe 0x5548aa
mov eax, edx
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5efbc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d8db4]
jmp 0x5548b4
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [ebp - 0xc]
jne 0x5543d0
nop
jmp case.0x554083.162
cmp dword [ebp - 0x30], 0
lea esi, [ecx + 2]
je 0x554959
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.0x554083.162
cmp byte [ebp - 1], 0x20
mov esi, dword [ebp + 0x18]
jne 0x55405c
cmp edx, 0x7f
jbe 0x554942
lfence
mov eax, edx
test eax, eax
jns 0x554909
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5efbc0]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x55492c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d8db4]
jmp 0x554949
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
jne 0x554060
jmp case.0x554083.162
movzx edx, word [eax]
mov eax, dword [ebp - 8]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.0x554083.162
mov esi, dword [ebp + 0x18]
cmp bl, 0x20
jne 0x55498c
cmp edx, 0xff
ja 0x55498c
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.0x554083.162
mov ecx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x55405c
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 0x554ac9
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 0x554ac6
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 0x554ac6
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 0x554ac6
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 0x554ac6
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 0x554ac6
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 0x554ac6
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 + 0x5d7b54]
mov dword [eax], edi
mov dword [eax + 0x20], ebx
mov eax, dword [ecx*4 + 0x5d7b28]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d7af8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
je 0x554f0f
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 0x554f05
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 0x554ba4
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5efbc0]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5d8db4]
add ecx, esi
cmp ecx, esi
je 0x554ba4
lea esp, [esp]
cmp ecx, 0xffff
ja 0x554b76
mov eax, dword [ebp - 8]
mov word [eax + 0x32], cx
mov eax, 1
jmp 0x554ba6
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 0x554ba6
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 0x554d50
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 0x554c5d
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x554c08
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x554c11
add ecx, 4
add edx, 4
sub esi, 4
jae 0x554bf7
cmp esi, 0xfffffffc
je 0x554cdf
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x554c5a
jmp 0x554c20
cmp esi, 0xfffffffd
je 0x554cdf
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x554c5a
cmp esi, 0xfffffffe
je 0x554cdf
mov al, byte ds:[ecx + 2]
cmp al, byte [edx + 2]
jne 0x554c5a
cmp esi, 0xffffffff
je 0x554cdf
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x554cdf
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x554d06
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x554d06
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x554ca5
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x554caa
add ecx, 4
add edx, 4
sub esi, 4
jae 0x554c90
cmp esi, 0xfffffffc
je 0x554cdf
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x554d06
cmp esi, 0xfffffffd
je 0x554cdf
mov al, byte ds:[ecx + 1]
cmp al, byte [edx + 1]
jne 0x554d06
cmp esi, 0xfffffffe
je 0x554cdf
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x554d06
cmp esi, 0xffffffff
je 0x554cdf
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x554d06
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 0x554bc0
mov edx, eax
mov dword [ebp - 0x10], edx
jmp 0x554d55
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb case.0x554083.162
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x554d3b
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
mov edx, eax
mov dword [ebp - 0x10], eax
mov ecx, dword ds:[ecx + 0x24]
cmp eax, ecx
je 0x554059
cmp dword [ebp - 0x14], 0
je 0x55eaef
mov eax, dword ds:[ebp - 8]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x554eee
jmp 0x554d93
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 0x554e1e
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x554dd1
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x554dda
add ecx, 4
add edx, 4
sub esi, 4
jae 0x554dc0
cmp esi, 0xfffffffc
je 0x554e9a
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x554e1b
cmp esi, 0xfffffffd
je 0x554e9a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x554e1b
cmp esi, 0xfffffffe
je 0x554e9a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x554e1b
cmp esi, 0xffffffff
je 0x554e9a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x554e9a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x554eb9
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x554eb9
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x554e65
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x554e6a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x554e50
cmp esi, 0xfffffffc
je 0x554e9a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x554eb9
cmp esi, 0xfffffffd
je 0x554e9a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x554eb9
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x554e9a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x554eb9
cmp esi, 0xffffffff
je 0x554e9a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x554eb9
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 0x554d90
jmp 0x554eee
mov eax, dword ds:[ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb 0x554eee
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x554eee
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x554ede
cmp dword [eax + 0x34], 0
je 0x554eee
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x5543d0
mov edi, dword ds:[ebp - 8]
jmp 0x55d341
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x554f1f
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 0x5550c8
cmp dword [ebp - 0xc], 0
jne 0x554f35
cmp dword [ebp - 0x30], 0
je 0x554f67
cmp edx, 0x7f
jbe 0x554f67
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5efbc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d8db4]
add eax, edx
jmp 0x554f7a
cmp edx, 0xff
ja 0x554f78
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
jmp 0x554f7a
mov eax, edx
mov ecx, dword [ebp - 8]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp ebx, esi
jb 0x554fca
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 0x55502f
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
mov edx, dword [edi + 0x28]
cmp edx, eax
je 0x554fbf
cmp dword [edi + 0x2c], eax
jne case.0x554083.162
inc esi
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp esi, ebx
jbe 0x554f90
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [eax + 0x24]
cmp ebx, esi
je 0x554059
cmp dword ds:[ebp - 0x14], 0
je 0x55c927
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, esi
jae 0x55509b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x55506e
movzx eax, word [ecx]
cmp edx, eax
je 0x55501c
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x2c], eax
jne 0x55509b
mov eax, dword [ebp - 8]
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, esi
jb 0x554ff4
jmp 0x55509b
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x555050
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword ds:[eax + 0x2c], 1
nop
cmp edx, 1
ja 0x5542df
jmp case.0x554083.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x55509b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x55508b
cmp dword [eax + 0x34], 0
je 0x55509b
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x5542df
cmp dword [ebp - 0x14], 2
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
je 0x554060
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x554059
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1a
jmp 0x55eeaa
mov edi, 1
cmp ebx, edi
jb 0x55510d
mov esi, dword ds:[eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae 0x55516d
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 0x55449b
inc edi
cmp edi, ebx
jbe 0x5550d1
mov edx, dword [eax + 0x24]
mov esi, ebx
cmp ebx, edx
je 0x554059
mov ebx, dword ds:[ebp - 0x14]
test ebx, ebx
je 0x55c98d
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x5551ce
jmp 0x555140
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x5551a5
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
jne 0x5551d1
mov eax, edi
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x555140
jmp 0x5551ce
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x55518f
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
nop
jmp case.0x554083.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x5551ce
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x5551be
cmp dword [eax + 0x34], 0
je 0x5551ce
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov edi, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp ebx, 2
je 0x554060
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x554059
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1c
jmp 0x55eeaa
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 0x555335
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 0x555332
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 0x555332
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 0x555332
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 0x555332
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 0x555332
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 0x555332
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 + 0x5d7b54]
mov dword [eax], edi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5d7b28]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d7af8]
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 0x55537f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55537c
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 0x55569e
test ebx, ebx
jne 0x555392
cmp dword [ebp - 0x30], ebx
je 0x5553c4
cmp edi, 0x7f
jbe 0x5553c4
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5efbc0]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x5d8db4]
add ebx, edi
jmp 0x5553da
cmp edi, 0xff
ja 0x5553d8
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx ebx, byte [eax + edi]
jmp 0x5553da
mov ebx, edi
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov dword [eax + 0x2c], ebx
je 0x555550
mov dword [ebp - 0x1c], 1
cmp edx, 1
jae 0x5554a8
mov dword [ebp - 0x1c], edx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x554059
cmp dword [ebp - 0x14], 0
je 0x55e912
cmp dword [ebp - 0xc], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x55561e
cmp ebx, edi
jae 0x555609
mov eax, dword ds:[ebp + 0x18]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x5555dc
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555479
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 0x555609
cmp dword [eax + 0x2c], ecx
je 0x555609
inc ebx
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x555430
lea ecx, [ecx]
jmp 0x555609
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x64]
jae 0x555518
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5554f0
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.0x554083.162
jmp 0x555500
cmp ebx, ecx
je case.0x554083.162
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, edx
jbe 0x5554a5
jmp 0x5553fa
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x55553b
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
mov esi, 1
mov dword [ebp - 0x1c], edx
cmp edx, esi
jb 0x5553fd
jmp 0x555570
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x5555a6
movzx eax, word [ecx]
cmp edi, eax
je case.0x554083.162
cmp ebx, eax
je case.0x554083.162
lea eax, [ecx + 2]
inc esi
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x555570
mov ebx, edx
jmp 0x555400
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x5555c7
cmp dword [eax + 0x34], 0
je case.0x554083.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x5542df
jmp case.0x554083.162
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x555609
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x5555f5
cmp dword [eax + 0x34], 0
je 0x555609
mov dword ds:[eax + 0x2c], esi
cmp ecx, 1
ja 0x5542df
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x5543d0
mov edi, dword [ebp - 8]
jmp 0x55d41a
mov edi, edi
cmp ebx, edi
jae 0x555689
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x555658
mov ecx, dword [ebp - 8]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x555689
nop
cmp dword [ecx + 0x2c], eax
je 0x555689
mov eax, ecx
add edx, 2
inc ebx
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x555628
jmp 0x555689
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x555689
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x555673
cmp dword [eax + 0x34], 0
je 0x555689
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x5543d0
mov edi, dword [ebp - 8]
jmp 0x55ca14
mov esi, 1
test ebx, ebx
je 0x5557ee
cmp edx, esi
jae 0x555773
mov eax, dword [ebp - 8]
mov esi, dword ds:[eax + 0x24]
cmp edx, esi
je 0x554744
cmp dword [ebp - 0x14], 0
je 0x55e927
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 0x5558b6
cmp ebx, esi
jae 0x5558ae
mov eax, dword ds:[ebp + 0x18]
mov edi, 1
cmp ecx, dword [eax + 0x64]
jae 0x555876
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555739
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 0x555750
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x5556f0
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x554060
mov edi, dword [ebp - 8]
jmp 0x55d4f5
mov eax, dword [ebp - 8]
mov ecx, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x5557e5
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5557c9
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 0x5546cf
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x555770
lea esp, [esp]
jmp 0x5556b3
movzx eax, word [ecx + 0x4c]
jmp 0x555839
cmp edx, 1
jb 0x5556b3
jmp 0x555803
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x555835
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 0x5546cf
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x555800
jmp 0x5556b6
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x555869
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x555853
cmp dword [eax + 0x34], 0
je 0x555869
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x5542df
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x55bca6
movzx eax, word ds:[eax + 0x4c]
mov esi, dword [ebp + 0x18]
mov edx, eax
test ax, ax
je 0x555753
cmp ecx, dword [esi + 0x6c]
ja 0x555898
cmp dword [esi + 0x34], 0
je 0x555753
mov dword ds:[esi + 0x2c], edi
cmp edx, 1
ja 0x5542df
jmp 0x555753
mov esi, dword [ebp + 0x18]
jmp 0x555756
cmp ebx, esi
jae 0x5558e4
lea ebx, [ebx]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x5558f9
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x5558e7
mov eax, edi
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x5558c0
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x554060
jmp 0x55ca95
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x555929
cmp ecx, dword [esi + 0x6c]
ja 0x555911
cmp dword [esi + 0x34], 0
je 0x555929
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
jmp 0x5558ea
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.0x555955
movzx eax, byte [eax + 0x55f2d4]
jmp dword [eax*4 + 0x55f2cc]
mov ecx, dword [esi*4 + 0x5d79cc]
lea eax, [edi + 0x24]
mov dword [ebx], eax
mov eax, dword [esi*4 + 0x5d79a0]
mov esi, dword [esi*4 + 0x5d7970]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], esi
jmp 0x5559d2
movzx ecx, word [edi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x5559a5
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d7970]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [ebp - 8]
jmp 0x5559d2
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 0x555ac5
cmp ecx, edi
jb 0x555b6e
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x555a90
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 0x555a38
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 0x555a40
cmp esi, 0xff
jbe 0x555a57
mov eax, dword [ebp - 8]
cmp byte [eax + 0x31], 0x6e
je case.0x554083.162
jmp 0x555a75
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 0x55449b
mov ecx, dword ds:[eax + 0x20]
inc edi
cmp edi, ecx
ja 0x555b6e
mov eax, dword [ebp - 8]
jmp 0x5559f0
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
nop
cmp ecx, dword [esi + 0x6c]
ja 0x555aaf
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
nop
jmp case.0x554083.162
cmp ecx, 1
jb 0x555b6e
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x555b37
mov ebx, dword [ebp - 8]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x555b02
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je case.0x554083.162
nop
jmp 0x555b26
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 0x55449b
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x555b71
mov eax, dword [ebp - 8]
jmp 0x555ad0
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
cmp ecx, dword [esi + 0x6c]
ja 0x555b58
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
jmp case.0x554083.162
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x24]
cmp ecx, ebx
je 0x554059
cmp dword [ebp - 0x14], 0
je 0x55e93a
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 0x555c95
lea ecx, [ecx]
cmp eax, ebx
jae 0x555c90
jmp 0x555bb0
mov esi, dword ds:[ebp + 0x18]
mov dword [ebp - 0x10], ebx
mov ebx, 1
cmp edi, dword [esi + 0x64]
jae 0x555c6b
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555bf9
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 0x555c37
cmp byte [eax + 0x31], 0x6e
jne 0x555c51
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x554060
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55eeaa
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 0x555c16
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 0x555bb0
jmp 0x555c16
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x555c19
cmp edi, dword [esi + 0x6c]
ja 0x555c82
cmp dword ds:[esi + 0x34], 0
je 0x555c19
mov dword [esi + 0x2c], ebx
cmp ecx, 1
ja 0x5542df
jmp 0x555c19
mov esi, dword [ebp + 0x18]
jmp 0x555c1c
cmp eax, ebx
jae 0x555d57
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp edi, dword [esi + 0x64]
jae 0x555d2b
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x555cf7
cmp byte ds:[ecx + 0x31], 0x6e
jne 0x555d17
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x554060
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x554083.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x18
jmp 0x55eeaa
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 0x555cc6
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 0x555ca0
jmp 0x555cc6
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x555cc9
cmp edi, dword [esi + 0x6c]
ja 0x555d42
cmp dword ds:[esi + 0x34], 0
je 0x555cc9
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp 0x555cc9
mov esi, dword [ebp + 0x18]
jmp 0x555ccc
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.0x555d90
movzx eax, byte [eax + 0x55f2e8]
jmp dword [eax*4 + 0x55f2e0]
mov ecx, dword [esi*4 + 0x5d79cc]
lea eax, ds:[edx + 2]
mov dword [ebx], eax
lea edi, [ebx + 0x20]
mov eax, dword [esi*4 + 0x5d79a0]
mov dword [edi], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esi*4 + 0x5d7970]
mov dword [ebp - 0x14], eax
jmp 0x555df7
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 0x555de5
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d7970]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov esi, 1
cmp ecx, esi
jae 0x555ee9
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x24]
cmp ecx, eax
je 0x554059
cmp dword ds:[ebp - 0x14], 0
je 0x55cfed
mov edx, dword [edi + 0x38]
mov dword [edi + 4], edx
mov edi, dword [edi + 0x20]
cmp edi, eax
jae 0x555eb2
mov eax, dword [ebp - 8]
lea ebx, [ebx]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x555f74
cmp dword [ebp - 0xc], 0
movzx ecx, word [edx]
je 0x555e8f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555e8c
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.0057b680
test eax, eax
je 0x555eb2
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 0x555e40
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x55405c
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55eeaa
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 0x555fae
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x555f50
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555f4d
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.0057b680
jmp 0x555f60
test eax, eax
je 0x555fdb
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x555ef0
jmp 0x555e0b
mov esi, dword ds:[ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x555eb5
cmp edx, dword [esi + 0x6c]
ja 0x555f98
cmp dword [esi + 0x34], 0
je 0x555eb5
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp 0x555eb5
mov esi, ebx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x555fdb
nop
cmp edx, dword [esi + 0x6c]
ja 0x555fcb
cmp dword [esi + 0x34], 0
je 0x555fdb
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x55bca3
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55602e
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
cmp edx, dword [esi + 0x6c]
ja 0x556018
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55607e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55607e
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 0x556081
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x556989
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.default.0x556989
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x5560ee
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
cmp edx, dword [esi + 0x6c]
ja 0x5560d8
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55613e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55613e
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 0x556141
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x55c449.999
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.0x55c449.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x554060
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x5561b1
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
cmp edx, dword [esi + 0x6c]
ja 0x55619c
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5561fe
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5561fe
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 0x556201
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x556989
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 1
je case.default.0x556989
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556271
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
cmp edx, dword [esi + 0x6c]
ja 0x55625c
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5562c5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5562c5
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 0x5562c8
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x55c449.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 1
je case.0x55c449.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x554060
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55634e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
jmp 0x556320
cmp edx, dword [esi + 0x6c]
ja 0x556333
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5563a5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5563a5
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 0x5563a8
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x556989
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x556989
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55642e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
jmp 0x556400
cmp edx, dword [esi + 0x6c]
ja 0x556413
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556485
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556485
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 0x556488
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x55c449.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.0x55c449.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x554060
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55650e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
jmp 0x5564e0
cmp edx, dword [esi + 0x6c]
ja 0x5564f3
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.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 0x55655c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55655c
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 0x5565fe
je case.0x556580.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c449.999
mov edi, edi
jmp dword [ecx*4 + 0x55f2f4]
mov edx, dword [ebp + 0x18]
cmp esi, dword [edx + 0x64]
jb 0x5565db
movzx eax, word ds:[edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x5565ef
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x5565be
cmp dword [esi + 0x34], 0
je case.0x556772.8203
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x554060
cmp word ds:[esi], 0xa
jne 0x5565ef
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 0x554060
mov edi, edi
sub ecx, 0x2028
je case.0x556580.11
sub ecx, 1
je case.0x556580.11
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov esi, dword [ebp + 0x18]
cmp word [esi + 0x4e], 2
jne case.0x556772.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov eax, dword [ebp - 8]
mov edx, ebx
mov esi, dword [ebp + 0x18]
add dword [eax], 2
jmp 0x554060
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556692
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
cmp edx, dword [esi + 0x6c]
ja 0x55667d
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5566dc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5566dc
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 0x55674a
je case.0x55c449.999
cmp ecx, 0xa0
ja 0x556725
mov edi, edi
je case.0x55c449.999
cmp ecx, 9
je case.0x55c449.999
cmp ecx, 0x20
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x554060
cmp ecx, 0x1680
je case.0x55c449.999
cmp ecx, 0x180e
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x554060
cmp ecx, 0x3000
ja case.0x556772.8203
je case.0x55c449.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x556772.8203
movzx eax, byte [ecx + 0x55f30c]
jmp dword [eax*4 + 0x55f304]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x5567ce
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
jmp 0x5567a0
cmp edx, dword [esi + 0x6c]
ja 0x5567b3
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55681c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55681c
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 0x55688a
je case.0x556772.8203
cmp ecx, 0xa0
ja 0x556865
mov edi, edi
je case.0x556772.8203
cmp ecx, 9
je case.0x556772.8203
cmp ecx, 0x20
je case.0x556772.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x1680
je case.0x556772.8203
cmp ecx, 0x180e
je case.0x556772.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x3000
ja case.0x55c449.999
je case.0x556772.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55c449.999
movzx eax, byte [ecx + 0x55f374]
jmp dword [eax*4 + 0x55f36c]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55690e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
jmp 0x5568e0
cmp edx, dword [esi + 0x6c]
ja 0x5568f3
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556965
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556965
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 0x556968
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x556990
je case.0x55c449.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x556989
jmp dword [ecx*4 + 0x55f3d4]
sub ecx, 0x2028
je case.0x55c449.999
lea esp, [esp]
sub ecx, 1
je case.0x55c449.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x554060
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556a0e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
jmp 0x5569e0
cmp edx, dword [esi + 0x6c]
ja 0x5569f3
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556a65
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556a65
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 0x556a68
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x556a90
je case.default.0x556989
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c449.999
jmp dword [ecx*4 + 0x55f3e4]
sub ecx, 0x2028
je case.default.0x556989
lea esp, [esp]
sub ecx, 1
je case.default.0x556989
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x556b0e
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
jmp 0x556ae0
cmp ecx, dword [esi + 0x6c]
ja 0x556af3
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
jmp case.0x554083.162
movzx edx, word ds:[ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], ecx
je 0x556b5a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556b5a
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 + 0x5efbc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
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.0x55cb89.15
jmp dword [eax*4 + 0x55f3f4]
cmp cl, 0xf
mov edi, edi
je case.0x554083.162
mov eax, dword [ebp - 8]
add dword [eax], 6
jmp 0x554059
mov al, byte [esi*4 + 0x5d8db1]
jmp 0x556bc0
cmp al, 9
je 0x556bdf
cmp al, 5
je 0x556bdf
cmp al, 8
je 0x556bdf
xor eax, eax
jmp 0x556be4
mov eax, 1
cmp eax, ebx
jne 0x556ba6
jmp case.0x554083.162
movzx ecx, byte [esi*4 + 0x5d8db1]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x5f4060]
sete dl
cmp edx, ebx
jne 0x556ba6
jmp case.0x554083.162
movzx eax, byte [esi*4 + 0x5d8db1]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x556ba6
jmp case.0x554083.162
movzx eax, byte [esi*4 + 0x5d8db0]
jmp 0x556c16
movzx ecx, word ds:[edi + 4]
movzx eax, byte [esi*4 + 0x5d8db0]
cmp cx, ax
je 0x556bdf
movzx edx, word [esi*4 + 0x5d8db8]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x556c71
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5d8520], eax
jne 0x556bdf
xor eax, eax
jmp 0x556be4
movzx eax, byte [esi*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x556bdf
cmp eax, 3
je 0x556bdf
xor eax, eax
jmp 0x556be4
lea esp, [esp]
cmp edx, 0x20
ja 0x556ce7
je case.0x556b94.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x556d6d.8203
jmp 0x556ce0
jmp dword [edx*4 + 0x55f42c]
cmp edx, 0x2000
ja 0x556d4d
je case.0x556b94.0
lea esp, [esp]
cmp edx, 0x1680
ja 0x556d45
je case.0x556b94.0
sub edx, 0x85
je case.0x556b94.0
sub edx, 0x1b
je case.0x556b94.0
movzx eax, byte [esi*4 + 0x5d8db1]
xor ecx, ecx
cmp dword [eax*4 + 0x5f4060], 6
sete cl
cmp ecx, ebx
jmp 0x556b9e
cmp edx, 0x180e
jmp 0x556d21
cmp edx, 0x3000
ja case.0x556d6d.8203
je case.0x556b94.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x556d6d.8203
movzx eax, byte [edx + 0x55f448]
jmp dword [eax*4 + 0x55f440]
movzx eax, byte [esi*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x556da7
cmp eax, 3
je 0x556da7
cmp edx, 0x5f
je 0x556da7
xor eax, eax
cmp eax, ebx
jmp 0x556b9e
mov eax, 1
cmp eax, ebx
jmp 0x556b9e
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x5d8360]
lea eax, [eax*4 + 0x5d8360]
cmp edx, ecx
jb 0x556de4
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x556df3
mov ecx, dword ds:[eax]
cmp edx, ecx
jae 0x556dd0
cmp byte [ebp - 1], 0xf
je 0x556ba6
jmp case.0x554083.162
cmp byte [ebp - 1], 0xf
jmp 0x556b9e
lea esp, [esp]
cmp edx, 0x24
je 0x556da7
cmp edx, 0x40
je 0x556da7
cmp edx, 0x60
je 0x556da7
cmp edx, 0xa0
jb 0x556e2c
jmp 0x556e20
cmp edx, 0xd7ff
jbe 0x556da7
cmp edx, 0xe000
jae 0x556da7
xor eax, eax
cmp eax, ebx
jmp 0x556b9e
mov ax, word [esi*4 + 0x5d8db8]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
sete cl
cmp ecx, ebx
jmp 0x556b9e
movzx ecx, word ds:[edi + 4]
movzx edx, word [esi*4 + 0x5d8dba]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x556e91
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5d8820]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x556b9e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556ef4
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
cmp edx, dword [esi + 0x6c]
ja 0x556edf
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.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 0x556f3e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556f3e
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.0057c120
mov ecx, dword ds:[ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb case.0x556772.8203
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je case.0x556772.8203
jmp 0x556f80
cmp eax, dword [esi + 0x6c]
ja 0x556f93
cmp dword [esi + 0x34], 0
je case.0x556772.8203
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x554060
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 0x5570aa
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 0x5570a7
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 0x5570a7
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 0x5570a7
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 0x5570a7
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 0x5570a7
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 8]
mov eax, dword [ecx*4 + 0x5d7a00]
mov dword [edx], edi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5d79d4]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d79a4]
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 0x5570d1
mov edi, edi
cmp ebx, 0xf
je 0x5570d1
or edx, 0xffffffff
jmp 0x5570e9
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 0x5580fc
test edx, edx
js 0x557d35
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [ebp - 0x10], eax
cmp edx, 0xd
ja case.0x55cb89.15
jmp dword [edx*4 + 0x55f4a8]
lea ebx, [ebx]
cmp ebx, 0xf
je case.0x554083.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 0x557185
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], ecx
je 0x557175
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557175
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x557131
mov eax, dword ds:[ebp - 8]
jmp 0x5580ff
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
cmp ecx, dword [esi + 0x6c]
ja 0x5571a7
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
jmp case.0x554083.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 0x557296
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557225
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557225
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 0x557228
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d8db1]
cmp al, 9
je 0x55726f
cmp al, 5
je 0x55726f
nop
cmp al, 8
je 0x55726f
xor eax, eax
jmp 0x557274
mov eax, 1
cmp eax, edi
je case.0x55c449.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x5571c7
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558102
mov esi, ecx
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55c449.999
cmp edx, dword [esi + 0x6c]
ja 0x5572bc
cmp dword [esi + 0x34], 0
je case.0x55c449.999
mov dword [esi + 0x2c], 1
jmp 0x55445a
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 0x557296
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557332
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557332
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 0x557335
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c449.999
inc esi
cmp esi, edi
jbe 0x5572d0
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558102
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 0x557296
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5573f3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5573f3
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 0x5573f6
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c449.999
inc esi
cmp esi, edi
jbe 0x557393
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558102
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 0x557296
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5574b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5574b3
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 0x5574b6
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db0]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c449.999
inc esi
cmp esi, edi
jbe 0x557450
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558102
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 0x557296
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55756e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55756e
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d8db0]
cmp eax, ecx
je 0x5575db
movzx edx, word [edx*4 + 0x5d8db8]
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 + 0x5d8520], eax
jne 0x5575db
xor eax, eax
jmp 0x5575e0
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x5575ff
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557510
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x558102
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x55bca6
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 0x557296
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557673
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557673
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 0x557676
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x5576be
cmp eax, 3
je 0x5576be
xor eax, eax
jmp 0x5576c3
mov eax, 1
cmp eax, edi
je case.0x55c449.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x557614
mov eax, dword ds:[ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558102
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 0x55783b
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x55774e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55774e
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 0x557770
je case.0x55782f.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x55782f.8203
jmp dword [eax*4 + 0x55f4e0]
cmp ecx, 0x2000
ja 0x55780f
lea esp, [esp]
je case.0x55782f.8193
cmp ecx, 0x1680
ja 0x557807
je case.0x55782f.8193
mov eax, ecx
sub eax, 0x85
je case.0x55782f.8193
sub eax, 0x1b
je case.0x55782f.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
cmp dword [eax*4 + 0x5f4060], 6
sete cl
cmp ecx, dword [ebp - 0x10]
je 0x55786f
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x5576f0
mov esi, dword [ebp + 0x18]
jmp 0x558102
cmp ecx, 0x180e
jmp 0x5577ae
cmp ecx, 0x3000
ja case.0x55782f.8203
je case.0x55782f.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x55782f.8203
movzx eax, byte [eax + 0x55f4fc]
jmp dword [eax*4 + 0x55f4f4]
cmp ebx, 0xf
jmp 0x5577ec
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55786f
cmp edx, dword [esi + 0x6c]
ja 0x55785f
cmp dword [esi + 0x34], 0
je 0x55786f
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x55bca6
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 0x557969
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x5578ee
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5578ee
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 + 0x5efbc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x557945
cmp eax, 3
je 0x557945
cmp edx, 0x5f
je 0x557945
xor eax, eax
jmp 0x55794a
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x5575ff
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557890
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x558102
mov esi, edx
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x55c449.999
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x557993
cmp dword [esi + 0x34], 0
je case.0x55c449.999
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
jmp 0x55445d
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 0x557a70
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x557a11
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557a0e
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 + 0x5d8360]
lea eax, [eax*4 + 0x5d8360]
cmp ecx, edx
jb 0x557a44
lea ebx, [ebx]
lea eax, [eax + 4]
cmp ecx, edx
je 0x557a65
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x557a30
cmp ebx, 0xf
jne 0x55786f
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x5579b0
mov esi, dword ds:[ebp + 0x18]
jmp 0x558102
cmp ebx, 0xf
je 0x55786f
jmp 0x557a4d
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55786f
cmp edx, dword [esi + 0x6c]
ja 0x557a9c
cmp dword [esi + 0x34], 0
je 0x55786f
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x55bca6
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 0x557296
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557b1d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557b1d
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 0x557b73
cmp ecx, 0x40
je 0x557b73
cmp ecx, 0x60
je 0x557b73
jmp 0x557b40
cmp ecx, 0xa0
jb 0x557b58
cmp ecx, 0xd7ff
jbe 0x557b73
jmp 0x557b60
cmp ecx, 0xe000
jae 0x557b73
xor eax, eax
jmp 0x557b78
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x5575ff
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557ac6
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x558102
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 0x557296
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557c05
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557c05
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 0x557c08
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d8db8]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c449.999
inc esi
cmp esi, edi
jbe 0x557ba2
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558102
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 0x557969
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x557cc1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557cbe
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 + 0x5efbc0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d8dba]
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 + 0x5d8820]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x10]
je case.0x55c449.999
inc esi
cmp esi, edi
jbe 0x557c67
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558102
cmp ebx, 0x16
jne 0x557e25
mov esi, dword [ebp + 0x18]
lea edi, [ebx - 0x15]
mov ebx, dword [ebp - 0xc]
jmp 0x557d50
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test ebx, ebx
je 0x557dad
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557dad
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.0057c120
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x557e0c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x557e0c
cmp eax, dword [esi + 0x6c]
ja 0x557dfc
cmp dword [esi + 0x34], 0
je 0x557e0c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x557d50
mov edi, ebx
jmp 0x558102
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x55cb89.15
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x5589f4
lea esp, [esp]
jmp dword [eax*4 + 0x55f55c]
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 0x55405c
cmp dword ds:[ebp - 0x14], 0
mov edx, dword [ebp - 0x1c]
je 0x55e951
mov esi, dword [eax + 0x38]
mov dword [eax + 4], esi
mov edi, dword [eax + 0x28]
mov dword [ebp - 0x44], edi
test edx, edx
js 0x559f97
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x1c], eax
cmp edx, 0xd
ja case.0x55cb89.15
jmp dword [edx*4 + 0x55f5ac]
jmp dword [eax*4 + 0x55f6d4]
cmp ecx, ebx
jae 0x5593c6
mov edx, dword [ebp - 0x10]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov ecx, 1
cmp esi, dword [eax + 0x64]
jae 0x5593de
cmp dword [ebp - 0xc], 0
je 0x5593af
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [ebp - 0x40]
mov eax, 2
cmove ecx, eax
cmp edi, 0xf
je 0x5593c6
mov eax, dword [ebp - 8]
lea esi, [esi + ecx*2]
inc edx
mov dword [eax + 0x38], esi
cmp edx, ebx
jb 0x559380
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x554060
jmp 0x55e3dd
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x5593c6
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x559406
cmp dword ds:[esi + 0x34], 0
je 0x559416
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
mov edi, dword [ebp - 8]
jmp 0x5593cc
cmp ecx, ebx
jae 0x5593c6
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 0x18]
jmp 0x559430
mov edx, 1
cmp esi, dword [edi + 0x64]
jae 0x5594f0
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55947c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55947c
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d8db1]
cmp al, 9
je 0x5594c5
cmp al, 5
je 0x5594c5
cmp al, 8
je 0x5594c5
xor eax, eax
jmp 0x5594ca
mov eax, 1
cmp eax, ebx
je 0x5593c6
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 0x559430
jmp 0x5593c6
movzx eax, word [edi + 0x4c]
mov ecx, eax
test ax, ax
je 0x5593c6
cmp esi, dword [edi + 0x6c]
mov esi, edi
ja 0x559514
cmp dword [esi + 0x34], 0
je 0x559416
mov dword [esi + 0x2c], edx
jmp 0x559520
cmp ecx, 1
ja 0x5542df
mov edi, dword [ebp - 8]
jmp 0x5593cc
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x5593c9
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5595ed
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55958f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55958f
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x5593c6
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 0x559540
jmp 0x5593c6
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x5593c6
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
jmp 0x559504
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x5593c9
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5595ed
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55966a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55966a
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x5593c6
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 0x559614
mov edi, edi
jmp 0x5593c6
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x5593c9
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5595ed
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55972a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55972a
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db0]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x5593c6
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 0x5596d0
mov edi, edi
jmp 0x5593c6
cmp ecx, ebx
jae 0x5593c6
mov ebx, dword [ebp - 0x1c]
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55988e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5597ea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5597ea
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d8db0]
cmp eax, ecx
je 0x55985b
movzx edx, word [edx*4 + 0x5d8db8]
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 + 0x5d8520], eax
jne 0x55985b
xor eax, eax
jmp 0x559860
mov eax, 1
cmp eax, ebx
je 0x5593c6
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 0x559790
jmp 0x5593c9
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x559f8d
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x5598b2
cmp dword [esi + 0x34], 0
je 0x559416
mov dword [esi + 0x2c], edi
jmp 0x559517
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x5593c9
mov ebx, dword [ebp - 0x1c]
jmp 0x5598d0
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5599a5
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55992a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55992a
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x559979
cmp eax, 3
je 0x559979
xor eax, eax
jmp 0x55997e
mov eax, 1
mov edi, edi
cmp eax, ebx
je 0x5593c9
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 0x5598d0
mov edi, edi
jmp 0x5593c9
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x5593c9
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x5599d0
cmp dword [esi + 0x34], 0
je 0x5593cc
mov dword [esi + 0x2c], edx
cmp ecx, 1
ja 0x5542df
lea esp, [esp]
jmp 0x5593cc
cmp ecx, ebx
jae 0x5593c6
mov ebx, dword [ebp - 0x1c]
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5595ed
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559a4a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559a4a
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 0x559a70
je case.0x559b44.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x559b44.8203
jmp dword [eax*4 + 0x55f814]
cmp ecx, 0x2000
ja 0x559b1a
lea esp, [esp]
je case.0x559b44.8193
cmp ecx, 0x1680
ja 0x559b12
je case.0x559b44.8193
mov eax, ecx
sub eax, 0x85
je case.0x559b44.8193
sub eax, 0x1b
je case.0x559b44.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
cmp dword [eax*4 + 0x5f4060], 6
sete cl
cmp ecx, ebx
je 0x5593c6
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 0x5599f0
jmp 0x5593c6
cmp ecx, 0x180e
jmp 0x559aae
lea ebx, [ebx]
cmp ecx, 0x3000
ja case.0x559b44.8203
je case.0x559b44.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x559b44.8203
movzx eax, byte [eax + 0x55f830]
jmp dword [eax*4 + 0x55f828]
cmp edi, 0xf
jmp 0x559aeb
cmp ecx, ebx
jae 0x5593c6
mov ebx, dword [ebp - 0x1c]
jmp 0x559b60
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55988e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x559baf
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559baf
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 + 0x5efbc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x559c05
cmp eax, 3
je 0x559c05
cmp edx, 0x5f
je 0x559c05
xor eax, eax
jmp 0x559c0a
mov eax, 1
cmp eax, ebx
je 0x5593c6
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 0x559b60
jmp 0x5593c9
cmp ecx, ebx
jae 0x5593c6
mov ebx, dword [ebp - 0x44]
jmp 0x559c40
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55988e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559c8f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559c8f
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 + 0x5d8360]
lea eax, [eax*4 + 0x5d8360]
cmp ecx, edx
jb 0x559cc4
jmp 0x559cb0
lea eax, [eax + 4]
cmp ecx, edx
je 0x559cee
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x559cb0
cmp ebx, 0xf
jne 0x5593c6
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 0x559c40
jmp 0x5593c9
cmp ebx, 0xf
je 0x5593c6
jmp 0x559ccd
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x5593c9
mov ebx, dword [ebp - 0x1c]
jmp 0x559d10
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5599a5
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559d6a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559d6a
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 0x559dbf
cmp ecx, 0x40
je 0x559dbf
lea esp, [esp]
cmp ecx, 0x60
je 0x559dbf
cmp ecx, 0xa0
jb 0x559dac
jmp 0x559da0
cmp ecx, 0xd7ff
jbe 0x559dbf
cmp ecx, 0xe000
jae 0x559dbf
xor eax, eax
jmp 0x559dc4
mov eax, 1
cmp eax, ebx
je 0x5593c9
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 0x559d10
jmp 0x5593c9
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x5593c9
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5599a5
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559e4f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559e4f
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d8db8]
shr eax, 0xb
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x5593c9
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 0x559e00
jmp 0x5593c9
cmp ecx, ebx
jae 0x5593c6
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55988e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x559f0a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559f0a
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 + 0x5efbc0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d8dba]
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 + 0x5d8820]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x1c]
je 0x5593c6
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 0x559eb5
jmp 0x5593c9
mov edi, dword [ebp - 8]
mov esi, edx
jmp 0x5593cc
jmp 0x559fa0
cmp edi, 0x16
jne 0x55a0dc
cmp ecx, ebx
jb 0x559fd3
mov esi, dword [ebp + 0x18]
cmp dword ds:[ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x554060
jmp 0x55e8bd
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x55a0a5
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55a033
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a033
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.0057c120
mov esi, dword [ebp - 8]
mov dword [esi + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x55a08c
movzx ecx, word ds:[ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x55a08c
cmp eax, dword [ebx + 0x6c]
ja 0x55a07c
cmp dword [ebx + 0x34], 0
je 0x55a08c
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x24]
jb 0x559fd0
mov esi, ebx
jmp 0x559fb4
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x559fb4
cmp edx, dword [esi + 0x6c]
ja 0x55a0c7
cmp dword [esi + 0x34], 0
je 0x559fb4
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp 0x559fb4
lea eax, ds:[edi - 6]
cmp eax, 0xf
ja case.0x55cb89.15
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x55aa70
jmp dword [eax*4 + 0x55f890]
jmp dword [eax*4 + 0x55f948]
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 0x55b468
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 0x55b434
cmp dword [edi + eax*4 + 0x54], 0xffffffff
jne 0x55b468
movzx eax, word [esi + 0x52]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x55b410
nop
jmp 0x55b468
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.0x55b480
movzx eax, byte [eax + 0x55fa80]
jmp dword [eax*4 + 0x55fa78]
mov edx, dword [ecx*4 + 0x5d79cc]
lea eax, [esi + 2]
mov ebx, dword [ecx*4 + 0x5d7970]
mov dword [edi], eax
mov eax, dword [ecx*4 + 0x5d79a0]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov dword [ebp - 0x14], ebx
jmp 0x55b4de
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 + 0x5d7970]
mov dword [ebp - 0x14], eax
test ecx, ecx
jne 0x55b4d9
mov dword [edi + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [edi], eax
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x50]
jae 0x55b50f
mov ecx, dword [edi + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x55b50f
mov esi, dword ds:[ebp + 0x18]
cmp ecx, dword [edi + eax*4 + 0x58]
je 0x55405c
jmp 0x55b52a
mov esi, dword [ebp + 0x18]
test edx, edx
je 0x55405c
test dword [esi + 0x8c], 0x200
jne 0x55405c
mov esi, 1
cmp edx, esi
jb 0x55b564
mov edx, dword [edi + 0x28]
lea eax, [ebp - 0x48]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.00553c60
test eax, eax
jne 0x55b5ea
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 0x55b537
mov ebx, dword [edi + 0x24]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
je 0x5543d0
cmp dword [ebp - 0x14], 0
je 0x55ea3c
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 0x55b691
mov ebx, dword [ebp - 8]
jmp 0x55b5b0
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.00553c60
test eax, eax
jne 0x55b64e
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 0x55b5b0
jmp 0x55b689
mov esi, dword [ebp + 0x18]
jle 0x55b5f9
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x554083.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
jmp 0x55b620
cmp ecx, dword [esi + 0x6c]
ja 0x55b633
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
jmp case.0x554083.162
jle 0x55b689
mov edx, dword ds:[ebp + 0x18]
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x55b689
mov eax, dword [edx + 0x64]
cmp eax, dword [edx + 0x6c]
jbe 0x55b689
mov dword ds:[edx + 0x2c], 1
cmp ecx, 1
ja 0x5542df
test esi, esi
je 0x55e993
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x554083.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x15
jmp 0x55eeaa
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.00553c60
test eax, eax
je 0x55b72e
jle 0x55b6df
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x554083.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x55b713
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
jmp case.0x554083.162
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [edi + 0x38], eax
jmp 0x55405c
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 0x55b743
add eax, 4
mov dword [ecx], eax
jmp 0x554060
cmp dword [esi + 0x30], 0
jne 0x55b775
mov edx, dword [ebp - 8]
cmp dword [edx + 0x18], 0
jne 0x55c343
xor ecx, ecx
jmp 0x55ec84
mov ebx, dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
mov edx, esi
mov ecx, ebx
call fcn.00553b60
mov esi, eax
test esi, esi
jg case.0x554083.162
js 0x55bc9d
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x554059
movzx eax, word [edi + 2]
mov ebx, dword [ebp - 8]
mov dword [ebx + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x55b7c3
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
add edi, 4
mov dword [ebx], edi
movzx eax, word [edi]
cmp eax, 0x76
je 0x55b7dd
cmp eax, 0x77
jne 0x55b809
lea eax, [ebp - 0x28]
mov edx, esi
push eax
mov ecx, ebx
call fcn.00553b60
mov esi, eax
test esi, esi
jg case.0x554083.162
js 0x55bc9d
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.0x55b822.150
movzx eax, byte [eax + 0x55faa4]
jmp dword [eax*4 + 0x55fa88]
mov ecx, dword [ebx + 0x44]
cmp ecx, 0xffffffff
je case.0x55b822.148
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
cmp eax, 0xffff
je 0x55e768
cmp eax, ecx
je 0x55e768
jmp 0x55b97d
mov ebx, dword ds:[ebx + 0x44]
cmp ebx, 0xffffffff
je case.0x55b822.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.0x55b822.148
lea esp, [esp]
movzx eax, word [ecx]
dec edx
cmp eax, ebx
je 0x55b8c5
lea ecx, ds:[ecx + esi*2]
test edx, edx
jg 0x55b890
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 0x55b97d
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 + 0x5f40e0]
jmp 0x55b982
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
lea eax, [eax*2 - 2]
cmp eax, dword [edi + 0x50]
jae 0x55b97d
cmp dword [edi + eax*4 + 0x54], 0xffffffff
je 0x55b97d
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f40e0]
jmp 0x55b982
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.0x55b822.148
mov edi, dword [ebx + 0x50]
jmp 0x55b950
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x55b973
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne case.0x55b822.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x55b950
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 0x554059
mov edx, 0x2008f
mov byte [eax + 0x30], 0x23
mov dword [ebp - 0x20], edx
jmp 0x55eeaa
cmp dword [ebp - 0xc], 0
movzx edx, word [edi + 2]
mov ebx, dword [ebp - 8]
je 0x55b9f9
test edx, edx
je 0x55ba13
mov edi, 0xfc00
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [esi + 0x60]
jbe case.0x554083.162
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [ebp - 0x2c]
jne 0x55b9f0
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x55b9c3
jmp 0x55ba13
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jg case.0x554083.162
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x6c]
jae 0x55ba22
mov dword [esi + 0x6c], eax
add dword [ebx], 4
jmp 0x55405c
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.0x554083.120
jmp 0x554060
movzx eax, word ds:[edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x55badf
mov ecx, 0x8a
cmp ax, cx
je 0x55badf
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 0x55bae7
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.005823b0
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 0x55bc9d
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.0x55bb00.132
movzx eax, byte [eax + 0x55fad4]
lea ecx, [ecx]
jmp dword [eax*4 + 0x55fab8]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x55bb19
mov dword [ecx + 0x70], eax
mov eax, dword ds:[esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x55bb00.132
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x55bb37
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.0x55bb00.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 0x55bb57
jmp case.0x55bb00.132
mov ecx, dword [esi + 0x38]
push edx
mov edx, dword [ebx + 0x38]
call fcn.0057bcc0
jmp 0x55bb80
test eax, eax
jne case.0x55bb00.132
jmp case.0x554083.162
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x55bbd4
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.005823b0
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 0x554059
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.0x55bb00.132
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x55bc35
push dword [ebp - 0x3c]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.005823b0
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x55bc9d
mov cl, byte ds:[ebx + 0x31]
cmp cl, 0x79
je 0x55bc5d
test esi, esi
je 0x55e9fd
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x55e9fd
mov edi, dword [ebp - 8]
add dword [edi], 4
jmp 0x554059
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
jne case.0x554083.162
test byte ds:[esi + 0x88], 1
jne case.0x554083.162
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x554060
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
je 0x55bc86
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 0x55bcb5
mov dword [edx + 0x70], eax
mov edi, dword ds:[ebp - 8]
cmp dword [edi + 0x18], 0
je 0x55f083
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.0x55cb89.15
movzx eax, byte [eax + 0x55fbe0]
jmp dword [eax*4 + 0x55fae8]
test byte [esi + 0x88], 2
jne case.0x554083.162
test byte [esi + 0x8c], 0x10
je case.0x554083.23
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x38]
cmp eax, dword [esi + 0x64]
jb case.0x554083.162
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55bd39
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
add dword ds:[edx], 2
jmp 0x55405c
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x55be45
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
lea edi, [eax + 0x9c]
test edx, edx
je 0x55bd8d
push dword [ebp - 0xc]
push edi
push esi
call fcn.0057b3c0
mov esi, dword ds:[ebp + 0x18]
test eax, eax
je 0x55bdf4
jmp 0x55bdd3
mov edx, dword [edi]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [ebp + 0x18]
ja 0x55bdee
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x55bdee
cmp edx, 1
je 0x55bdd3
mov ax, word ds:[ecx + 2]
cmp ax, word [esi + 0xa2]
jne 0x55bdee
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 0x55be48
jmp 0x55bdf4
lea edi, [esi + 0x9c]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x554083.162
cmp dword ds:[esi + 0x98], 0
jne case.0x554083.162
cmp dword [edi], 2
jne case.0x554083.162
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x554083.162
nop
jmp 0x555aaf
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55be69
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
add dword [ebx], 2
jmp 0x55405c
test byte ds:[esi + 0x88], 1
mov ebx, dword [ebp - 8]
je 0x55be92
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x5c]
je case.0x554083.162
mov ecx, dword ds:[ebx + 0x38]
mov esi, dword [esi + 0x5c]
cmp ecx, esi
je 0x55bf08
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jne 0x55bec6
test dword ds:[eax + 0x8c], 0x200000
je case.0x554083.162
mov edx, dword [eax + 0x98]
test edx, edx
je 0x55bf13
cmp ecx, esi
jbe 0x55befd
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.0057b4a0
test eax, eax
je 0x55befd
mov eax, 1
jmp 0x55beff
xor eax, eax
nop
test eax, eax
je case.0x554083.162
mov esi, dword [ebp + 0x18]
add dword [ebx], 2
jmp 0x55405c
mov edi, dword ds:[eax + 0x9c]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ecx, eax
jb case.0x554083.162
mov esi, dword [ebp + 0x18]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x554083.162
lea ecx, [ecx]
cmp edi, 1
je 0x55bf0b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x55bf0b
jmp case.0x554083.162
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x55c012
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x55bfd2
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.0057b3c0
test eax, eax
jne 0x55bf08
mov esi, dword [ebp + 0x18]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554083.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x554083.162
cmp dword ds:[esi + 0x98], 0
jne case.0x554083.162
cmp dword [esi + 0x9c], 2
jmp 0x55be29
mov edx, dword ds:[eax + 0x9c]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
ja 0x55bf90
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x55bf93
cmp edx, 1
je 0x55bf0b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x55bf0b
jmp 0x55bf93
mov esi, dword ds:[ebp + 0x18]
test byte [esi + 0x88], 2
jne case.0x554083.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x55bf0b
cmp ecx, dword [esi + 0x6c]
ja 0x55c048
cmp dword [esi + 0x34], 0
je 0x55bf0b
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
add dword ds:[ebx], 2
jmp 0x55405c
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 0x55bc99
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x554060
mov ebx, dword [ebp - 8]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x60]
je 0x55c196
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x55c0f4
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55c0c5
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c0f4
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 0x55c100
mov dword [esi + 0x6c], edx
test dword [esi + 0x8c], 0x20000
je 0x55c173
cmp ecx, 0x5f
jne 0x55c125
lea edi, ds:[ecx - 0x5e]
jmp 0x55c198
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x55c169
lea ecx, [ecx]
cmp eax, 3
jne 0x55c196
mov edi, 1
jmp 0x55c198
cmp ecx, 0xff
ja 0x55c196
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je 0x55c196
mov edi, 1
jmp 0x55c198
xor edi, edi
mov ecx, dword ds:[ebx + 0x38]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jb 0x55c21c
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x55c1e9
jmp 0x55c1c0
cmp ecx, dword [esi + 0x6c]
ja 0x55c1d3
cmp dword [esi + 0x34], 0
je 0x55c1e9
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
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 0x55c20c
xor edx, 1
test edx, edx
mov edx, dword [ebp - 0xc]
je 0x554060
jmp case.0x554083.162
cmp dword [ebp - 0xc], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x55c289
cmp edx, eax
jae 0x55c24d
mov ax, word ds:[edx]
and ax, word [ebp - 0x34]
cmp ax, word [ebp - 0x2c]
jne 0x55c24d
add edx, 2
movzx ecx, word ds:[ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c28c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x55c28c
movzx ecx, word [ecx]
mov esi, dword [ebp + 0x18]
cmp edx, dword [esi + 0x70]
jbe 0x55c29b
mov dword [esi + 0x70], edx
test dword [esi + 0x8c], 0x20000
je 0x55c307
cmp ecx, 0x5f
jne 0x55c2bc
lea edx, [ecx - 0x5e]
jmp 0x55c1eb
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x55c2fd
cmp eax, 3
jne 0x55c1e9
mov edx, 1
jmp 0x55c1eb
cmp ecx, 0xff
ja 0x55c1e9
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je 0x55c1e9
mov edx, 1
jmp 0x55c1eb
test esi, esi
jne case.0x55bcf2.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 + 0x5f40e0]
movzx eax, al
je 0x55ea1e
lea eax, [edi + eax*2]
mov dword [edx], eax
jmp 0x55405c
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x55c3a5
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x55c449.998
cmp word [ecx], 0x78
je 0x55c3ad
cmp word ds:[eax], 0x78
jmp 0x55c3a7
test esi, esi
jne case.0x55c449.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 0x55ec8c
xor esi, esi
mov eax, ecx
jmp 0x55bca6
cmp esi, 0xfffffc19
je 0x55e698
jmp 0x55c3e0
test esi, esi
je 0x55c3f7
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne case.0x55c449.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 0x55ed6b
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, ecx
jmp 0x55bca6
jmp 0x55c420
test esi, esi
jg 0x55c450
je case.0x55c449.993
mov edx, dword ds:[ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x55c449.998
jmp dword [eax*4 + 0x55fcc4]
mov edx, dword ds:[ebp + 0x18]
mov eax, esi
sub eax, 1
mov eax, dword [ebp - 8]
jne 0x55bca6
xor esi, esi
jmp 0x55bca6
test esi, esi
jg 0x55c494
je case.0x55c48d.993
mov edx, dword [ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x55c449.998
jmp dword [eax*4 + 0x55fce0]
mov eax, esi
sub eax, 1
jne case.0x55bcf2.35
mov eax, dword [edi + 0x20]
test eax, eax
je 0x55b97d
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 0x55c4b0
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f40e0]
jmp 0x55b982
test esi, esi
jne case.0x55bcf2.35
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [edi], ecx
jmp 0x554059
test esi, esi
je 0x55bc60
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
lea ebx, [ebx]
cmp esi, 0xfffffc1a
jne 0x55c535
mov dword [edi + 0x24], 1
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jne 0x55ea2a
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x55c521
jmp 0x55c58e
mov edx, dword ds:[ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x55c571
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x55c449.998
cmp word [ecx], 0x78
je 0x55c579
cmp word [eax], 0x78
jmp 0x55c573
test esi, esi
jne case.0x55c449.998
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x55ec48
cmp dword [edi + 0x24], 0
jne 0x55c5d0
cmp dword ds:[edi + 0x28], 0
jne 0x55c5d0
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
test esi, esi
jne case.0x55bcf2.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 0x55c5c0
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x554059
lea ebx, [ebx]
test esi, esi
jne case.0x55bcf2.35
add dword [edi], 2
jmp 0x554059
mov edx, dword [edi + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x55c669
mov ebx, dword ds:[ebp + 0x18]
mov eax, dword [edi + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x84], eax
jne 0x55c669
cmp esi, 0xfffffc1f
jne 0x555fdb
mov eax, ebx
cmp dword [eax + 0x7c], ecx
jae 0x555fdb
cmp word [edx], 0x78
je 0x55c677
cmp word [ecx], 0x78
je 0x55c677
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x55bca3
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0xc]
test esi, esi
jne case.0x55c449.998
mov dword ds:[edi + 4], ecx
cmp word [ecx], 0x78
je 0x55ed3b
jmp case.0x554083.162
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1e
jne case.0x55c449.998
mov ecx, dword [edi]
mov eax, edx
add ecx, 4
mov edx, dword [eax + 0x80]
call fcn.0057c300
mov edx, dword [ebp + 0x18]
test eax, eax
jne case.0x55c449.998
mov eax, dword [edi + 0x38]
mov esi, 0xfffffc1d
mov dword [edx + 0x80], eax
mov eax, dword [ebp - 8]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1c
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.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 0x55bca6
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.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 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.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 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.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.00553c60
test eax, eax
je 0x55ea34
jle 0x55c7b9
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x55c449.999
jmp 0x55796b
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov eax, dword ds:[edi + 0xc]
neg eax
add eax, eax
add dword [edi + 0x38], eax
jmp 0x55b694
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov eax, dword [edi + 4]
cmp dword [edi + 0x38], eax
je case.0x554083.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 0x55c833
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.00553c60
mov eax, dword [ebp - 0x54]
inc esi
add eax, eax
add dword [edi + 0x38], eax
cmp esi, dword [edi + 0x24]
jb 0x55c811
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x16
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [edi + 0x38], eax
cmp ecx, 0xff
jbe 0x55c8a5
cmp byte [edi + 0x31], 0x6e
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55eeaa
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 0x55c897
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
add dword [edi + 0x38], 0xfffffffe
jmp 0x555cd9
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x55796b
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x55c91e
cmp dword [edi + 0x2c], eax
jne case.0x55c449.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 0x55eeaa
add dword [edi + 0x38], 0xfffffffe
test esi, esi
je 0x5550ae
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x554437
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
jne case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x55eead
add dword ds:[edi + 0x38], 0xfffffffe
test esi, esi
je 0x5551e9
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x55796b
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je case.0x55c449.999
cmp dword [edi + 0x2c], eax
je case.0x55c449.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 0x55eeaa
test esi, esi
jne case.0x55bcf2.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x554059
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1e
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x554437
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55eeaa
test esi, esi
jne case.0x55bcf2.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x554059
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x20
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x554437
cmp dword [edi + 0x28], 0xc
jne 0x55cb6d
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x55cb27
push ebx
push eax
push ecx
mov ecx, esi
call fcn.0057b3c0
test eax, eax
je 0x55cb6d
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x55bca6
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x55cb6d
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x55cb6d
cmp edx, 1
je 0x55cb90
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x55cb92
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.0x55cb89.15
jmp dword [eax*4 + 0x55fcfc]
mov edx, ecx
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x55bca6
lea esp, [esp]
cmp ecx, 0x85
ja 0x55cbc7
je case.0x55cbc0.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c449.999
mov edi, edi
jmp dword [ecx*4 + 0x55fd3c]
sub ecx, 0x2028
je case.0x55cbc0.11
sub ecx, 1
jne case.0x55c449.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
jmp 0x55cc00
cmp ecx, 0x2000
ja 0x55cc6a
je case.0x55c449.999
cmp ecx, 0xa0
ja 0x55cc45
mov edi, edi
je case.0x55c449.999
cmp ecx, 9
je case.0x55c449.999
cmp ecx, 0x20
jne case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x1680
je case.0x55c449.999
cmp ecx, 0x180e
jne case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x3000
ja case.0x55cb89.13
je case.0x55c449.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55cb89.13
movzx eax, byte [ecx + 0x55fd54]
jmp dword [eax*4 + 0x55fd4c]
lea esp, [esp]
cmp ecx, 0x2000
ja 0x55cd0a
je case.0x55cb89.13
cmp ecx, 0xa0
ja 0x55cce5
mov edi, edi
je case.0x55cb89.13
cmp ecx, 9
je case.0x55cb89.13
cmp ecx, 0x20
je case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x1680
je case.0x55cb89.13
cmp ecx, 0x180e
je case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x3000
ja case.0x55c449.999
je case.0x55cb89.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55c449.999
movzx eax, byte [ecx + 0x55fdbc]
jmp dword [eax*4 + 0x55fdb4]
lea esp, [esp]
cmp ecx, 0x85
ja 0x55cd67
je case.0x55c449.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55cb89.13
mov edi, edi
jmp dword [ecx*4 + 0x55fe1c]
sub ecx, 0x2028
je case.0x55c449.999
sub ecx, 1
jne case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x85
ja 0x55cdb0
je case.0x55cb89.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c449.999
jmp dword [ecx*4 + 0x55fe2c]
sub ecx, 0x2028
je case.0x55cb89.13
lea esp, [esp]
sub ecx, 1
je case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
jmp 0x55cde0
cmp ecx, 0xff
ja case.0x55cb89.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0xff
ja case.0x55c449.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0xff
ja case.0x55cb89.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
lea esp, [esp]
cmp ecx, 0xff
ja case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0xff
ja case.0x55cb89.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0xff
ja case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x55cb89.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
lea esp, [esp]
test esi, esi
jne case.0x55bcf2.35
mov eax, dword [edi + 0x38]
add eax, 0xfffffffe
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0x11
jne 0x55cf29
jmp 0x55cf00
cmp eax, dword [edi + 4]
jbe 0x55cf29
cmp word [eax], 0xa
jne 0x55cf29
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x55cf29
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x554059
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x22
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1b
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55cfda
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55cfda
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.0057b680
test eax, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x64
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x55c449.999
lea ebx, [ebx]
test ebx, ebx
je 0x555ec2
mov ax, word ds:[edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x555ec2
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d0ca
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 0x55d0f4
cmp byte ds:[edi + 0x31], 0x6e
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x55eeaa
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 0x55d0e6
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x554083.162
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x555c29
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.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 0x55d22d
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x55d1d5
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55d1de
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55d1c0
cmp esi, 0xfffffffc
je 0x55eae6
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55d22a
cmp esi, 0xfffffffd
je 0x55eae6
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55d22a
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x55eae6
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55d22a
cmp esi, 0xffffffff
je 0x55eae6
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55eae6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x55d2ca
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x55d2ca
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x55d275
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55d27e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55d260
cmp esi, 0xfffffffc
je 0x55eae6
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55d2ca
cmp esi, 0xfffffffd
je 0x55eae6
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55d2ca
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x55eae6
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55d2ca
cmp esi, 0xffffffff
je 0x55eae6
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55eae6
mov esi, dword [ebp + 0x18]
cmp ebx, dword [esi + 0x64]
jb case.0x554083.162
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554083.162
cmp ebx, dword [esi + 0x6c]
ja 0x55d2fc
cmp dword [esi + 0x34], 0
je case.0x554083.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x5542df
jmp case.0x554083.162
test esi, esi
jne case.0x55bcf2.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 0x55d341
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x554059
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcb
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d3ca
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.0x55c449.999
cmp dword [edi + 0x2c], ecx
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x55eeaa
test esi, esi
jne case.0x55bcf2.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 0x55d41a
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x554059
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcd
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d4aa
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.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword ds:[eax]
mov byte [eax + 0x30], 0xce
jmp 0x55eeaa
test esi, esi
jne case.0x55bcf2.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 0x55d4f5
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x554059
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcf
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x55796b
movzx eax, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55d571
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d571
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0xf
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55d5fa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d5fa
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d8db1]
cmp al, 9
je 0x55d645
cmp al, 5
je 0x55d645
cmp al, 8
je 0x55d645
xor ecx, ecx
jmp 0x55d64a
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55d6da
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d6da
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55d7ab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d7ab
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55d86b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d86b
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db0]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55d92b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d92b
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x55d979
cmp eax, 3
je 0x55d979
xor ecx, ecx
jmp 0x55d97e
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55da0b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55da0b
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 0x55da30
je case.0x55daf0.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x55daf0.8203
jmp dword [eax*4 + 0x55fe3c]
cmp ecx, 0x2000
ja 0x55dad0
lea esp, [esp]
je case.0x55daf0.8193
cmp ecx, 0x1680
ja 0x55dac8
je case.0x55daf0.8193
mov eax, ecx
sub eax, 0x85
je case.0x55daf0.8193
sub eax, 0x1b
je case.0x55daf0.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
cmp dword [eax*4 + 0x5f4060], 6
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x55eeaa
cmp ecx, 0x180e
jmp 0x55da6e
cmp ecx, 0x3000
ja case.0x55daf0.8203
je case.0x55daf0.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x55daf0.8203
movzx eax, byte [eax + 0x55fe58]
jmp dword [eax*4 + 0x55fe50]
cmp dword [edi + 0x28], 0xf
jne 0x55daba
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x55796b
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55db7a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55db7a
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 + 0x5efbc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d8db1]
mov eax, dword [eax*4 + 0x5f4060]
cmp eax, 1
je 0x55dbd0
cmp eax, 3
je 0x55dbd0
lea ecx, [ecx]
cmp edx, 0x5f
je 0x55dbd0
xor ecx, ecx
jmp 0x55dbd5
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55dc6b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dc6b
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 + 0x5d8360]
lea eax, [eax*4 + 0x5d8360]
cmp ecx, edx
jb 0x55dca4
jmp 0x55dc90
lea eax, [eax + 4]
cmp ecx, edx
je 0x55dcbc
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x55dc90
cmp dword [edi + 0x28], 0xf
jne case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x55eeaa
cmp dword [edi + 0x28], 0xf
jne 0x55dcae
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55dd3d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dd3d
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 0x55dd93
cmp ecx, 0x40
je 0x55dd93
cmp ecx, 0x60
je 0x55dd93
jmp 0x55dd60
cmp ecx, 0xa0
jb 0x55dd78
cmp ecx, 0xd7ff
jbe 0x55dd93
jmp 0x55dd80
cmp ecx, 0xe000
jae 0x55dd93
xor ecx, ecx
jmp 0x55dd98
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x55796b
movzx esi, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
mov edx, ecx
test ebx, ebx
je 0x55de2d
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55de2d
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.0057c120
mov esi, dword [ebp + 0x18]
mov dword [edi + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x55de8c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x55de8c
cmp eax, dword [esi + 0x6c]
ja 0x55de7c
cmp dword [esi + 0x34], 0
je 0x55de8c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x554437
cmp dword [edi + 0x28], 0xc
jne 0x55df4d
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x55df07
push ebx
push eax
push ecx
mov ecx, esi
call fcn.0057b3c0
test eax, eax
je 0x55df4d
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x55bca6
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x55df4d
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x55df4d
cmp edx, 1
je 0x55cb90
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x55cb92
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 0x55df8a
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.0x55cb89.15
lea esp, [esp]
jmp dword [eax*4 + 0x55feb8]
cmp ecx, 0x85
ja 0x55dfd0
je case.0x55dfc9.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c449.999
jmp dword [ecx*4 + 0x55fef8]
sub ecx, 0x2028
je case.0x55dfc9.11
lea esp, [esp]
sub ecx, 1
jne case.0x55c449.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x55dfa0.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x2000
ja 0x55e085
je case.0x55c449.999
jmp 0x55e020
cmp ecx, 0xa0
ja 0x55e056
je case.0x55c449.999
cmp ecx, 9
je case.0x55c449.999
jmp 0x55e040
cmp ecx, 0x20
jne case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
jmp 0x55e060
cmp ecx, 0x1680
je case.0x55c449.999
cmp ecx, 0x180e
jne case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x3000
ja case.0x55dfa0.13
je case.0x55c449.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55dfa0.13
movzx eax, byte [ecx + 0x55ff10]
jmp dword [eax*4 + 0x55ff08]
jmp 0x55e0c0
cmp ecx, 0x2000
ja 0x55e12a
je case.0x55dfa0.13
cmp ecx, 0xa0
ja 0x55e105
mov edi, edi
je case.0x55dfa0.13
cmp ecx, 9
je case.0x55dfa0.13
cmp ecx, 0x20
je case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x1680
je case.0x55dfa0.13
cmp ecx, 0x180e
je case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x3000
ja case.0x55c449.999
je case.0x55dfa0.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55c449.999
movzx eax, byte [ecx + 0x55ff78]
jmp dword [eax*4 + 0x55ff70]
lea esp, [esp]
cmp ecx, 0x85
ja 0x55e187
je case.0x55c449.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55dfa0.13
mov edi, edi
jmp dword [ecx*4 + 0x55ffd8]
sub ecx, 0x2028
je case.0x55c449.999
sub ecx, 1
jne case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x85
ja 0x55e1d0
je case.0x55dfa0.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c449.999
jmp dword [ecx*4 + 0x55ffe8]
sub ecx, 0x2028
je case.0x55dfa0.13
lea esp, [esp]
sub ecx, 1
je case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
jmp 0x55e200
cmp ecx, 0x100
jae case.0x55dfa0.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x100
jae case.0x55c449.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x100
jae case.0x55dfa0.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
lea esp, [esp]
cmp ecx, 0x100
jae case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x100
jae case.0x55dfa0.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
cmp ecx, 0x100
jae case.0x55c449.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x55dfa0.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55bca6
lea esp, [esp]
test esi, esi
jne case.0x55bcf2.35
mov edx, dword [edi + 0x38]
add edx, 0xfffffffe
mov dword [edi + 0x38], edx
test ebx, ebx
jne 0x55e779
movzx ecx, word ds:[edx]
jmp 0x55e7ca
test esi, esi
jne case.0x55bcf2.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 0x55e355
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
cmp dword [edi + 0x28], 0x11
jne 0x55e389
nop
cmp ecx, dword [edi + 4]
jbe 0x55e389
cmp word [ecx], 0xa
jne 0x55e389
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x55e389
mov dword [edi + 0x38], ecx
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x554059
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xdd
jmp 0x55eeaa
test esi, esi
jne case.0x55bcf2.35
mov ecx, dword [edi + 0x38]
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55e3dd
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55e3dd
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x554059
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xde
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x55796b
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55e46b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e46b
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 + 0x5efbc0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d8dba]
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 + 0x5d8820]
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.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x55eeaa
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55e54b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e54b
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d8db8]
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.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x55eeaa
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c449.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c449.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557298
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55e60b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e60b
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
mov ecx, dword [edi + 0x2c]
movzx eax, word [eax*2 + 0x5dcfc0]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5d8db0]
cmp eax, ecx
je 0x55e674
movzx edx, word [edx*4 + 0x5d8db8]
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 + 0x5d8520], eax
jne 0x55e674
xor ecx, ecx
jmp 0x55e679
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c449.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe1
jmp 0x55eeaa
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.005823b0
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 0x55e6c0
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x554059
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 0x55e6e0
lea eax, [edi + 4]
jmp 0x554057
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 0x55ed95
lea eax, [edi + 4]
jmp 0x554057
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.005823b0
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
jmp 0x55c49f
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 0x55e9d3
xor eax, eax
cmp dword [edi + 0x20], eax
sete al
jmp 0x55c4a2
mov edi, dword [ebp - 8]
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f40e0]
jmp 0x55b982
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55e799
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 0x55e7ca
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x5d8db2]
cmp edx, edi
jbe 0x55e8bd
lea ecx, [ecx]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x55e865
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55e832
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e865
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 + 0x5efbc0]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x5dcfc0]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5d8db2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5f4020], eax
je 0x55e8bd
mov eax, dword [ebp - 8]
mov ebx, esi
mov dword [eax + 0x38], edx
cmp edx, edi
ja 0x55e800
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x554059
mov edi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x55eeaa
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 + 0x5f40e0]
movzx eax, word [edx + 2]
ja 0x55eb97
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x55405c
cmp dword [ebp - 0xc], 0
jne 0x55d3df
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55eeaa
test ebx, ebx
jne 0x55d4b6
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55eeaa
cmp dword ds:[ebp - 0xc], 0
jne 0x55d0e9
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55eeaa
test edx, edx
js 0x55e970
lea esp, [esp]
cmp edx, 0xd
ja case.0x55cb89.15
jmp dword [edx*4 + 0x55fff8]
cmp dword [eax + 0x28], 0x16
je 0x55de8f
lea ebx, [ebx]
test edi, edi
jne 0x55eb8c
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55eeaa
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 0x55eeaa
cmp ecx, 0x7e
je 0x55e9c5
mov eax, 0x80
cmp cx, ax
je 0x55e9c5
xor eax, eax
jmp 0x55e9ca
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 + 0x5f40e0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 5
jmp 0x55eeaa
mov eax, dword [ebp - 8]
cmp cl, 0x7b
jne 0x55ea15
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x55eead
mov byte [ebx + 0x30], 7
jmp 0x55eead
lea edi, [edi + eax*2]
mov byte [edx + 0x30], 1
jmp 0x55eeaa
mov eax, dword [edi + 8]
mov dword [edi], eax
jmp 0x55ec48
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 0x55eeaa
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae case.0x55cb89.13
cmp word ds:[esi], 0xa
jne case.0x55cb89.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 0x55eeaa
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55cb89.13
cmp esi, dword [ebx + 0x64]
jb case.0x55cb89.13
cmp dword ds:[ebx + 0x98], 0
jne case.0x55cb89.13
cmp dword [ebx + 0x9c], 2
jne case.0x55cb89.13
movzx eax, word ds:[ebx + 0xa0]
cmp ecx, eax
jne case.0x55cb89.13
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x5542df
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55eeaa
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 0x55eeaa
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae case.0x55dfa0.13
cmp word [edx], 0xa
jne case.0x55dfa0.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 0x55eeaa
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov esi, eax
test ax, ax
je case.0x55dfa0.13
lea esp, [esp]
cmp edx, dword [ebx + 0x64]
jb case.0x55dfa0.13
cmp dword [ebx + 0x98], 0
jne case.0x55dfa0.13
cmp dword ds:[ebx + 0x9c], 2
jne case.0x55dfa0.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x55dfa0.13
mov dword ds:[ebx + 0x2c], 1
cmp esi, 1
ja 0x5542df
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55eeaa
mov byte ds:[ebx + 0x30], 0x11
jmp 0x55eea5
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x55eeaa
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 0x55ebc0
lea edi, [eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x55eeaa
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 0x55ec2f
mov edx, 0x8e
cmp ax, dx
jne 0x55ec1b
jmp 0x55ec2f
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], 0
mov eax, 0x20000
jmp 0x55ec38
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 + 0x5f40e0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 8
jmp 0x55eeaa
movzx ecx, word [edi + 4]
or ecx, 0x10000
jmp 0x55ec84
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 + 0x5f40e0]
lea edi, [edi + eax*2]
jmp 0x55eeaa
mov ecx, dword [esi + 0x58]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x55ecc5
xor edi, edi
jmp 0x55ecc9
movzx edi, word [ebx + 4]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x44], 0xffffffff
je 0x55ed2c
mov eax, dword ds:[ecx + 0x4c]
cmp eax, 0xffffffff
je 0x55ed2c
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 0x55ed16
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x55ecf4
jmp 0x55ed29
mov eax, dword ds:[ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x55f08e
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 + 0x5f40e0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xb
jmp 0x55eeaa
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 + 0x5f40e0]
lea edi, [edi + eax*2]
jmp 0x55eeaa
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 + 0x5f40e0]
lea edi, [edi + eax*2]
jmp 0x55eeaa
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 + 0x5f40e0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x55eea5
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f40e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xd
jmp 0x55eeaa
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 + 0x5f40e0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x55eea5
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f40e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xe
jmp 0x55eeaa
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 + 0x5f40e0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x55eea5
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f40e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x10
jmp 0x55eeaa
movzx eax, word ds:[edi]
movzx eax, byte [eax + 0x5f40e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x12
jmp 0x55eeaa
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 + 0x5f40e0]
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 0x55ef8e
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 0x55ef04
mov ebx, edx
xor edx, edx
shl ebx, 0xa
mov eax, ebx
div dword [ebp + 0x14]
sub ebx, edx
cmp ecx, ebx
jae 0x55f09c
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 [0x5a38f4]
call esi
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
je 0x55f0aa
mov eax, dword [ebp + 0x18]
push dword [eax + 0xc]
push dword [eax + 0x10]
push esi
call fcn.005823b0
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 0x55ef7d
push dword [edx + 8]
mov esi, dword [edx + 4]
push ecx
mov ecx, esi
call dword [0x5a38f4]
call esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
jmp 0x55ef80
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.005823b0
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 0x553ff3
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 0x55eff6
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.005823b0
mov eax, dword ds:[ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x55f064
jmp 0x55f050
mov dword ds:[edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x55f050
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