Function at 0x54ab00
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 0x54abc4
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 0x54abbf
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 0x555c58
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x24]
jb 0x54abfc
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.0x553729.15
movzx eax, byte [ecx + 0x555dc4]
jmp dword [eax*4 + 0x555c68]
mov eax, dword [ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
jne 0x54aca3
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
lea ebx, [ebx]
cmp eax, 0xffffffff
je case.0x553729.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 0x54ac6a
mov eax, dword [edx + 0x4c]
jmp 0x54ac40
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 0x54aca0
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f0c90]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 8]
jmp 0x54abf7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [esi + 0x70]
jbe 0x54acc8
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 8]
mov esi, 0xfffffc19
mov dword [ebp - 0x24], eax
jmp 0x552840
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
je 0x54ad2f
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x553729.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 0x54ad0f
mov eax, dword [ecx + 0x4c]
jmp 0x54ace5
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 0x54abfc
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x54ad68
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x88]
test al, 4
jne case.0x54ac23.162
test al, 8
je 0x54ad68
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.0x54ac23.162
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x555b72
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0x8c]
or eax, dword [ecx + 0x88]
test eax, 0x20000000
je 0x555b70
test bl, bl
jne 0x555b65
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, ecx
jmp 0x552843
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x54ae8d
mov esi, dword [eax + 0x64]
lea edi, [eax + 0x64]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, esi
jae 0x54ade3
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x18]
add eax, 0x9c
push eax
push esi
call fcn.00577340
test eax, eax
je 0x54ade3
mov eax, 1
jmp 0x54ade5
xor eax, eax
test eax, eax
jne case.0x54ac23.162
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x54ac23.13
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x98], 0
jne 0x54ae3c
cmp dword [eax + 0x9c], 2
jne 0x54ae3c
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54ac23.13
mov eax, esi
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov esi, eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x54aedb
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54ae6f
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp edx, 1
jbe case.0x54ac23.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 0x54aed1
mov ax, word [edx]
cmp ax, word [edi + 0xa0]
jne 0x54aed1
cmp esi, 1
je case.0x54ac23.162
mov ax, word [edx + 2]
mov esi, edi
cmp ax, word [esi + 0xa2]
jne 0x54aed3
jmp case.0x54ac23.162
mov esi, edi
lea edi, [esi + 0x64]
jmp 0x54adf3
mov edx, dword [ebp - 0xc]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x54af11
cmp ecx, dword [esi + 0x64]
jae 0x54af11
mov ax, word ds:[ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x54af0e
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
add dword [eax], 2
jmp 0x54ac00
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x54af5d
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54af48
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54af70
mov esi, dword [ebp + 0x18]
jmp 0x54ac00
mov ebx, dword ds:[ebp - 0xc]
test ebx, ebx
je 0x54b045
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 0x54afc0
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 0x54b013
cmp esi, ecx
jb case.0x552fe9.999
mov eax, dword [ebp + 0x18]
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x552fe9.999
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54aff3
cmp dword [eax + 0x34], 0
je case.0x552fe9.999
mov dword [eax + 0x2c], 1
cmp ecx, 1
lea ecx, [ecx]
ja 0x54ae7f
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x552846
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 0x54b03b
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x54b013
jmp 0x54abf9
xor esi, esi
jmp 0x552840
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 0x54b091
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54b07c
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.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.0x54ac23.162
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x54abf9
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [esi + 0x64]
jb 0x54b0fe
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x6c]
mov eax, dword [ebp + 0x18]
ja 0x54b0e9
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x54b22b
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 0x54b156
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 0x54b159
mov eax, dword [ebp - 8]
movzx edx, word ds:[ecx]
cmp esi, 0x80
jae 0x54b19f
cmp edx, 0xff
ja 0x54b17a
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.0x54ac23.162
mov edx, dword [ebp - 8]
lea eax, [ebx + 2]
mov dword [edx], eax
lea eax, [ecx + 2]
mov dword [edx + 0x38], eax
jmp 0x54abf9
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54b1d7
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 0x54b1da
mov ecx, dword [ebp - 8]
lea eax, ds:[ebx + edi*2]
mov dword [ecx], eax
cmp edx, esi
je 0x54abf9
mov eax, esi
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5ec770]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d5964]
add eax, esi
mov esi, dword [ebp + 0x18]
cmp edx, eax
mov edx, dword [ebp - 0xc]
je 0x54ac00
jmp case.0x54ac23.162
cmp dword [ebp - 0x30], 0
je 0x54b2ee
movzx esi, word ds:[edi + 2]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x54b279
cmp edx, 0xff
ja 0x54b25a
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 0x54b2d3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x552846
cmp edx, esi
je 0x54b2d3
lfence
mov eax, esi
test eax, eax
jns 0x54b289
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ec770]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x54b2ac
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d5964]
add eax, esi
cmp edx, eax
mov eax, dword [ebp - 8]
je 0x54b2d3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x552846
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 0x54ac00
movzx eax, word [edi + 2]
mov edx, eax
cmp ax, word [ebp - 0x38]
ja 0x54b301
mov eax, dword [esi + 0x38]
movzx edx, byte [eax + edx]
movzx eax, word [ecx]
mov ecx, eax
cmp ax, word [ebp - 0x38]
ja 0x54b313
mov eax, dword [esi + 0x38]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x54b325
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
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 0x54ac00
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x54b385
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54b36f
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
nop
jmp case.0x54ac23.162
lea eax, [edi + 2]
test edx, edx
je 0x54b465
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 0x54b3c9
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 0x54b406
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.0x54ac23.162
cmp bl, 0x20
jne 0x54abf9
cmp edx, 0x7f
jbe 0x54b44a
mov eax, edx
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5ec770]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d5964]
jmp 0x54b454
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [ebp - 0xc]
jne 0x54af70
nop
jmp case.0x54ac23.162
cmp dword [ebp - 0x30], 0
lea esi, [ecx + 2]
je 0x54b4f9
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.0x54ac23.162
cmp byte [ebp - 1], 0x20
mov esi, dword [ebp + 0x18]
jne 0x54abfc
cmp edx, 0x7f
jbe 0x54b4e2
lfence
mov eax, edx
test eax, eax
jns 0x54b4a9
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ec770]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x54b4cc
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d5964]
jmp 0x54b4e9
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
jne 0x54ac00
jmp case.0x54ac23.162
movzx edx, word [eax]
mov eax, dword [ebp - 8]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.0x54ac23.162
mov esi, dword [ebp + 0x18]
cmp bl, 0x20
jne 0x54b52c
cmp edx, 0xff
ja 0x54b52c
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.0x54ac23.162
mov ecx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x54abfc
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 0x54b669
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 0x54b666
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 0x54b666
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 0x54b666
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 0x54b666
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 0x54b666
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 0x54b666
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 + 0x5d464c]
mov dword [eax], edi
mov dword [eax + 0x20], ebx
mov eax, dword [ecx*4 + 0x5d4620]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d45f0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
je 0x54baaf
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 0x54baa5
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 0x54b744
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ec770]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5d5964]
add ecx, esi
cmp ecx, esi
je 0x54b744
lea esp, [esp]
cmp ecx, 0xffff
ja 0x54b716
mov eax, dword [ebp - 8]
mov word [eax + 0x32], cx
mov eax, 1
jmp 0x54b746
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 0x54b746
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 0x54b8f0
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 0x54b7fd
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x54b7a8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54b7b1
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54b797
cmp esi, 0xfffffffc
je 0x54b87f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54b7fa
jmp 0x54b7c0
cmp esi, 0xfffffffd
je 0x54b87f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54b7fa
cmp esi, 0xfffffffe
je 0x54b87f
mov al, byte ds:[ecx + 2]
cmp al, byte [edx + 2]
jne 0x54b7fa
cmp esi, 0xffffffff
je 0x54b87f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x54b87f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x54b8a6
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x54b8a6
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x54b845
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54b84a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54b830
cmp esi, 0xfffffffc
je 0x54b87f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54b8a6
cmp esi, 0xfffffffd
je 0x54b87f
mov al, byte ds:[ecx + 1]
cmp al, byte [edx + 1]
jne 0x54b8a6
cmp esi, 0xfffffffe
je 0x54b87f
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54b8a6
cmp esi, 0xffffffff
je 0x54b87f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54b8a6
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 0x54b760
mov edx, eax
mov dword [ebp - 0x10], edx
jmp 0x54b8f5
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb case.0x54ac23.162
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x54b8db
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
mov edx, eax
mov dword [ebp - 0x10], eax
mov ecx, dword ds:[ecx + 0x24]
cmp eax, ecx
je 0x54abf9
cmp dword [ebp - 0x14], 0
je 0x55568f
mov eax, dword ds:[ebp - 8]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x54ba8e
jmp 0x54b933
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 0x54b9be
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x54b971
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54b97a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54b960
cmp esi, 0xfffffffc
je 0x54ba3a
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x54b9bb
cmp esi, 0xfffffffd
je 0x54ba3a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54b9bb
cmp esi, 0xfffffffe
je 0x54ba3a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54b9bb
cmp esi, 0xffffffff
je 0x54ba3a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x54ba3a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x54ba59
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x54ba59
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x54ba05
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54ba0a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54b9f0
cmp esi, 0xfffffffc
je 0x54ba3a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54ba59
cmp esi, 0xfffffffd
je 0x54ba3a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54ba59
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x54ba3a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54ba59
cmp esi, 0xffffffff
je 0x54ba3a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54ba59
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 0x54b930
jmp 0x54ba8e
mov eax, dword ds:[ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb 0x54ba8e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ba8e
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x54ba7e
cmp dword [eax + 0x34], 0
je 0x54ba8e
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54af70
mov edi, dword ds:[ebp - 8]
jmp 0x553ee1
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x54babf
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 0x54bc68
cmp dword [ebp - 0xc], 0
jne 0x54bad5
cmp dword [ebp - 0x30], 0
je 0x54bb07
cmp edx, 0x7f
jbe 0x54bb07
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ec770]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d5964]
add eax, edx
jmp 0x54bb1a
cmp edx, 0xff
ja 0x54bb18
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
jmp 0x54bb1a
mov eax, edx
mov ecx, dword [ebp - 8]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp ebx, esi
jb 0x54bb6a
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 0x54bbcf
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
mov edx, dword [edi + 0x28]
cmp edx, eax
je 0x54bb5f
cmp dword [edi + 0x2c], eax
jne case.0x54ac23.162
inc esi
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp esi, ebx
jbe 0x54bb30
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [eax + 0x24]
cmp ebx, esi
je 0x54abf9
cmp dword ds:[ebp - 0x14], 0
je 0x5534c7
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, esi
jae 0x54bc3b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54bc0e
movzx eax, word [ecx]
cmp edx, eax
je 0x54bbbc
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x2c], eax
jne 0x54bc3b
mov eax, dword [ebp - 8]
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, esi
jb 0x54bb94
jmp 0x54bc3b
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54bbf0
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword ds:[eax + 0x2c], 1
nop
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x54bc3b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54bc2b
cmp dword [eax + 0x34], 0
je 0x54bc3b
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
cmp dword [ebp - 0x14], 2
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
je 0x54ac00
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54abf9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1a
jmp 0x555a4a
mov edi, 1
cmp ebx, edi
jb 0x54bcad
mov esi, dword ds:[eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae 0x54bd0d
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 0x54b03b
inc edi
cmp edi, ebx
jbe 0x54bc71
mov edx, dword [eax + 0x24]
mov esi, ebx
cmp ebx, edx
je 0x54abf9
mov ebx, dword ds:[ebp - 0x14]
test ebx, ebx
je 0x55352d
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x54bd6e
jmp 0x54bce0
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54bd45
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
jne 0x54bd71
mov eax, edi
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x54bce0
jmp 0x54bd6e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54bd2f
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
nop
jmp case.0x54ac23.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x54bd6e
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54bd5e
cmp dword [eax + 0x34], 0
je 0x54bd6e
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov edi, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp ebx, 2
je 0x54ac00
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54abf9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1c
jmp 0x555a4a
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 0x54bed5
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 0x54bed2
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 0x54bed2
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 0x54bed2
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 0x54bed2
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 0x54bed2
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 0x54bed2
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 + 0x5d464c]
mov dword [eax], edi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5d4620]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d45f0]
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 0x54bf1f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54bf1c
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 0x54c23e
test ebx, ebx
jne 0x54bf32
cmp dword [ebp - 0x30], ebx
je 0x54bf64
cmp edi, 0x7f
jbe 0x54bf64
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ec770]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x5d5964]
add ebx, edi
jmp 0x54bf7a
cmp edi, 0xff
ja 0x54bf78
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx ebx, byte [eax + edi]
jmp 0x54bf7a
mov ebx, edi
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov dword [eax + 0x2c], ebx
je 0x54c0f0
mov dword [ebp - 0x1c], 1
cmp edx, 1
jae 0x54c048
mov dword [ebp - 0x1c], edx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x54abf9
cmp dword [ebp - 0x14], 0
je 0x5554b2
cmp dword [ebp - 0xc], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x54c1be
cmp ebx, edi
jae 0x54c1a9
mov eax, dword ds:[ebp + 0x18]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x54c17c
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54c019
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 0x54c1a9
cmp dword [eax + 0x2c], ecx
je 0x54c1a9
inc ebx
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x54bfd0
lea ecx, [ecx]
jmp 0x54c1a9
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x64]
jae 0x54c0b8
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54c090
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.0x54ac23.162
jmp 0x54c0a0
cmp ebx, ecx
je case.0x54ac23.162
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, edx
jbe 0x54c045
jmp 0x54bf9a
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54c0db
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
mov esi, 1
mov dword [ebp - 0x1c], edx
cmp edx, esi
jb 0x54bf9d
jmp 0x54c110
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54c146
movzx eax, word [ecx]
cmp edi, eax
je case.0x54ac23.162
cmp ebx, eax
je case.0x54ac23.162
lea eax, [ecx + 2]
inc esi
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x54c110
mov ebx, edx
jmp 0x54bfa0
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54c167
cmp dword [eax + 0x34], 0
je case.0x54ac23.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54c1a9
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54c195
cmp dword [eax + 0x34], 0
je 0x54c1a9
mov dword ds:[eax + 0x2c], esi
cmp ecx, 1
ja 0x54ae7f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54af70
mov edi, dword [ebp - 8]
jmp 0x553fba
mov edi, edi
cmp ebx, edi
jae 0x54c229
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x54c1f8
mov ecx, dword [ebp - 8]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x54c229
nop
cmp dword [ecx + 0x2c], eax
je 0x54c229
mov eax, ecx
add edx, 2
inc ebx
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x54c1c8
jmp 0x54c229
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54c229
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54c213
cmp dword [eax + 0x34], 0
je 0x54c229
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54af70
mov edi, dword [ebp - 8]
jmp 0x5535b4
mov esi, 1
test ebx, ebx
je 0x54c38e
cmp edx, esi
jae 0x54c313
mov eax, dword [ebp - 8]
mov esi, dword ds:[eax + 0x24]
cmp edx, esi
je 0x54b2e4
cmp dword [ebp - 0x14], 0
je 0x5554c7
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 0x54c456
cmp ebx, esi
jae 0x54c44e
mov eax, dword ds:[ebp + 0x18]
mov edi, 1
cmp ecx, dword [eax + 0x64]
jae 0x54c416
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54c2d9
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 0x54c2f0
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x54c290
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x54ac00
mov edi, dword [ebp - 8]
jmp 0x554095
mov eax, dword [ebp - 8]
mov ecx, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x54c385
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54c369
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 0x54b26f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x54c310
lea esp, [esp]
jmp 0x54c253
movzx eax, word [ecx + 0x4c]
jmp 0x54c3d9
cmp edx, 1
jb 0x54c253
jmp 0x54c3a3
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x54c3d5
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 0x54b26f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x54c3a0
jmp 0x54c256
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54c409
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54c3f3
cmp dword [eax + 0x34], 0
je 0x54c409
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x552846
movzx eax, word ds:[eax + 0x4c]
mov esi, dword [ebp + 0x18]
mov edx, eax
test ax, ax
je 0x54c2f3
cmp ecx, dword [esi + 0x6c]
ja 0x54c438
cmp dword [esi + 0x34], 0
je 0x54c2f3
mov dword ds:[esi + 0x2c], edi
cmp edx, 1
ja 0x54ae7f
jmp 0x54c2f3
mov esi, dword [ebp + 0x18]
jmp 0x54c2f6
cmp ebx, esi
jae 0x54c484
lea ebx, [ebx]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54c499
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x54c487
mov eax, edi
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x54c460
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x54ac00
jmp 0x553635
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x54c4c9
cmp ecx, dword [esi + 0x6c]
ja 0x54c4b1
cmp dword [esi + 0x34], 0
je 0x54c4c9
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
jmp 0x54c48a
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.0x54c4f5
movzx eax, byte [eax + 0x555e74]
jmp dword [eax*4 + 0x555e6c]
mov ecx, dword [esi*4 + 0x5d44c4]
lea eax, [edi + 0x24]
mov dword [ebx], eax
mov eax, dword [esi*4 + 0x5d4498]
mov esi, dword [esi*4 + 0x5d4468]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], esi
jmp 0x54c572
movzx ecx, word [edi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x54c545
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d4468]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [ebp - 8]
jmp 0x54c572
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 0x54c665
cmp ecx, edi
jb 0x54c70e
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54c630
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 0x54c5d8
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 0x54c5e0
cmp esi, 0xff
jbe 0x54c5f7
mov eax, dword [ebp - 8]
cmp byte [eax + 0x31], 0x6e
je case.0x54ac23.162
jmp 0x54c615
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 0x54b03b
mov ecx, dword ds:[eax + 0x20]
inc edi
cmp edi, ecx
ja 0x54c70e
mov eax, dword [ebp - 8]
jmp 0x54c590
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
nop
cmp ecx, dword [esi + 0x6c]
ja 0x54c64f
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
nop
jmp case.0x54ac23.162
cmp ecx, 1
jb 0x54c70e
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54c6d7
mov ebx, dword [ebp - 8]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x54c6a2
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je case.0x54ac23.162
nop
jmp 0x54c6c6
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 0x54b03b
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x54c711
mov eax, dword [ebp - 8]
jmp 0x54c670
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
cmp ecx, dword [esi + 0x6c]
ja 0x54c6f8
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x24]
cmp ecx, ebx
je 0x54abf9
cmp dword [ebp - 0x14], 0
je 0x5554da
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 0x54c835
lea ecx, [ecx]
cmp eax, ebx
jae 0x54c830
jmp 0x54c750
mov esi, dword ds:[ebp + 0x18]
mov dword [ebp - 0x10], ebx
mov ebx, 1
cmp edi, dword [esi + 0x64]
jae 0x54c80b
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54c799
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 0x54c7d7
cmp byte [eax + 0x31], 0x6e
jne 0x54c7f1
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x54ac00
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x555a4a
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 0x54c7b6
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 0x54c750
jmp 0x54c7b6
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54c7b9
cmp edi, dword [esi + 0x6c]
ja 0x54c822
cmp dword ds:[esi + 0x34], 0
je 0x54c7b9
mov dword [esi + 0x2c], ebx
cmp ecx, 1
ja 0x54ae7f
jmp 0x54c7b9
mov esi, dword [ebp + 0x18]
jmp 0x54c7bc
cmp eax, ebx
jae 0x54c8f7
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp edi, dword [esi + 0x64]
jae 0x54c8cb
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x54c897
cmp byte ds:[ecx + 0x31], 0x6e
jne 0x54c8b7
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x54ac00
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x54ac23.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x18
jmp 0x555a4a
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 0x54c866
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 0x54c840
jmp 0x54c866
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54c869
cmp edi, dword [esi + 0x6c]
ja 0x54c8e2
cmp dword ds:[esi + 0x34], 0
je 0x54c869
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp 0x54c869
mov esi, dword [ebp + 0x18]
jmp 0x54c86c
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.0x54c930
movzx eax, byte [eax + 0x555e88]
jmp dword [eax*4 + 0x555e80]
mov ecx, dword [esi*4 + 0x5d44c4]
lea eax, ds:[edx + 2]
mov dword [ebx], eax
lea edi, [ebx + 0x20]
mov eax, dword [esi*4 + 0x5d4498]
mov dword [edi], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esi*4 + 0x5d4468]
mov dword [ebp - 0x14], eax
jmp 0x54c997
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 0x54c985
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d4468]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov esi, 1
cmp ecx, esi
jae 0x54ca89
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x24]
cmp ecx, eax
je 0x54abf9
cmp dword ds:[ebp - 0x14], 0
je 0x553b8d
mov edx, dword [edi + 0x38]
mov dword [edi + 4], edx
mov edi, dword [edi + 0x20]
cmp edi, eax
jae 0x54ca52
mov eax, dword [ebp - 8]
lea ebx, [ebx]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x54cb14
cmp dword [ebp - 0xc], 0
movzx ecx, word [edx]
je 0x54ca2f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ca2c
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.00577600
test eax, eax
je 0x54ca52
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 0x54c9e0
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x54abfc
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x555a4a
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 0x54cb4e
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x54caf0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54caed
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.00577600
jmp 0x54cb00
test eax, eax
je 0x54cb7b
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x54ca90
jmp 0x54c9ab
mov esi, dword ds:[ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ca55
cmp edx, dword [esi + 0x6c]
ja 0x54cb38
cmp dword [esi + 0x34], 0
je 0x54ca55
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp 0x54ca55
mov esi, ebx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54cb7b
nop
cmp edx, dword [esi + 0x6c]
ja 0x54cb6b
cmp dword [esi + 0x34], 0
je 0x54cb7b
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x552843
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54cbce
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
cmp edx, dword [esi + 0x6c]
ja 0x54cbb8
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54cc1e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54cc1e
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 0x54cc21
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x54d529
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.default.0x54d529
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54cc8e
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
cmp edx, dword [esi + 0x6c]
ja 0x54cc78
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54ccde
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ccde
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 0x54cce1
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x552fe9.999
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.0x552fe9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54ac00
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54cd51
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
cmp edx, dword [esi + 0x6c]
ja 0x54cd3c
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54cd9e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54cd9e
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 0x54cda1
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x54d529
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 1
je case.default.0x54d529
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54ce11
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
cmp edx, dword [esi + 0x6c]
ja 0x54cdfc
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54ce65
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ce65
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 0x54ce68
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x552fe9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 1
je case.0x552fe9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54ac00
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54ceee
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x54cec0
cmp edx, dword [esi + 0x6c]
ja 0x54ced3
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54cf45
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54cf45
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 0x54cf48
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x54d529
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x54d529
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54cfce
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x54cfa0
cmp edx, dword [esi + 0x6c]
ja 0x54cfb3
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54d025
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d025
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 0x54d028
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x552fe9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.0x552fe9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54ac00
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54d0ae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x54d080
cmp edx, dword [esi + 0x6c]
ja 0x54d093
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.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 0x54d0fc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d0fc
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 0x54d19e
je case.0x54d120.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x552fe9.999
mov edi, edi
jmp dword [ecx*4 + 0x555e94]
mov edx, dword [ebp + 0x18]
cmp esi, dword [edx + 0x64]
jb 0x54d17b
movzx eax, word ds:[edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x54d18f
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x54d15e
cmp dword [esi + 0x34], 0
je case.0x54d312.8203
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54ac00
cmp word ds:[esi], 0xa
jne 0x54d18f
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 0x54ac00
mov edi, edi
sub ecx, 0x2028
je case.0x54d120.11
sub ecx, 1
je case.0x54d120.11
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov esi, dword [ebp + 0x18]
cmp word [esi + 0x4e], 2
jne case.0x54d312.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov eax, dword [ebp - 8]
mov edx, ebx
mov esi, dword [ebp + 0x18]
add dword [eax], 2
jmp 0x54ac00
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54d232
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
cmp edx, dword [esi + 0x6c]
ja 0x54d21d
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54d27c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d27c
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 0x54d2ea
je case.0x552fe9.999
cmp ecx, 0xa0
ja 0x54d2c5
mov edi, edi
je case.0x552fe9.999
cmp ecx, 9
je case.0x552fe9.999
cmp ecx, 0x20
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54ac00
cmp ecx, 0x1680
je case.0x552fe9.999
cmp ecx, 0x180e
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54ac00
cmp ecx, 0x3000
ja case.0x54d312.8203
je case.0x552fe9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x54d312.8203
movzx eax, byte [ecx + 0x555eac]
jmp dword [eax*4 + 0x555ea4]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54d36e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x54d340
cmp edx, dword [esi + 0x6c]
ja 0x54d353
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54d3bc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d3bc
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 0x54d42a
je case.0x54d312.8203
cmp ecx, 0xa0
ja 0x54d405
mov edi, edi
je case.0x54d312.8203
cmp ecx, 9
je case.0x54d312.8203
cmp ecx, 0x20
je case.0x54d312.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x1680
je case.0x54d312.8203
cmp ecx, 0x180e
je case.0x54d312.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x3000
ja case.0x552fe9.999
je case.0x54d312.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x552fe9.999
movzx eax, byte [ecx + 0x555f14]
jmp dword [eax*4 + 0x555f0c]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54d4ae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x54d480
cmp edx, dword [esi + 0x6c]
ja 0x54d493
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54d505
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d505
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 0x54d508
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x54d530
je case.0x552fe9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x54d529
jmp dword [ecx*4 + 0x555f74]
sub ecx, 0x2028
je case.0x552fe9.999
lea esp, [esp]
sub ecx, 1
je case.0x552fe9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54ac00
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54d5ae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x54d580
cmp edx, dword [esi + 0x6c]
ja 0x54d593
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54d605
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d605
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 0x54d608
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x54d630
je case.default.0x54d529
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x552fe9.999
jmp dword [ecx*4 + 0x555f84]
sub ecx, 0x2028
je case.default.0x54d529
lea esp, [esp]
sub ecx, 1
je case.default.0x54d529
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x54d6ae
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x54d680
cmp ecx, dword [esi + 0x6c]
ja 0x54d693
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
movzx edx, word ds:[ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], ecx
je 0x54d6fa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d6fa
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 + 0x5ec770]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
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.0x553729.15
jmp dword [eax*4 + 0x555f94]
cmp cl, 0xf
mov edi, edi
je case.0x54ac23.162
mov eax, dword [ebp - 8]
add dword [eax], 6
jmp 0x54abf9
mov al, byte [esi*4 + 0x5d5961]
jmp 0x54d760
cmp al, 9
je 0x54d77f
cmp al, 5
je 0x54d77f
cmp al, 8
je 0x54d77f
xor eax, eax
jmp 0x54d784
mov eax, 1
cmp eax, ebx
jne 0x54d746
jmp case.0x54ac23.162
movzx ecx, byte [esi*4 + 0x5d5961]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x5f0c10]
sete dl
cmp edx, ebx
jne 0x54d746
jmp case.0x54ac23.162
movzx eax, byte [esi*4 + 0x5d5961]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x54d746
jmp case.0x54ac23.162
movzx eax, byte [esi*4 + 0x5d5960]
jmp 0x54d7b6
movzx ecx, word ds:[edi + 4]
movzx eax, byte [esi*4 + 0x5d5960]
cmp cx, ax
je 0x54d77f
movzx edx, word [esi*4 + 0x5d5968]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x54d811
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5d50d0], eax
jne 0x54d77f
xor eax, eax
jmp 0x54d784
movzx eax, byte [esi*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x54d77f
cmp eax, 3
je 0x54d77f
xor eax, eax
jmp 0x54d784
lea esp, [esp]
cmp edx, 0x20
ja 0x54d887
je case.0x54d734.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x54d90d.8203
jmp 0x54d880
jmp dword [edx*4 + 0x555fcc]
cmp edx, 0x2000
ja 0x54d8ed
je case.0x54d734.0
lea esp, [esp]
cmp edx, 0x1680
ja 0x54d8e5
je case.0x54d734.0
sub edx, 0x85
je case.0x54d734.0
sub edx, 0x1b
je case.0x54d734.0
movzx eax, byte [esi*4 + 0x5d5961]
xor ecx, ecx
cmp dword [eax*4 + 0x5f0c10], 6
sete cl
cmp ecx, ebx
jmp 0x54d73e
cmp edx, 0x180e
jmp 0x54d8c1
cmp edx, 0x3000
ja case.0x54d90d.8203
je case.0x54d734.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x54d90d.8203
movzx eax, byte [edx + 0x555fe8]
jmp dword [eax*4 + 0x555fe0]
movzx eax, byte [esi*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x54d947
cmp eax, 3
je 0x54d947
cmp edx, 0x5f
je 0x54d947
xor eax, eax
cmp eax, ebx
jmp 0x54d73e
mov eax, 1
cmp eax, ebx
jmp 0x54d73e
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x5d4f10]
lea eax, [eax*4 + 0x5d4f10]
cmp edx, ecx
jb 0x54d984
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x54d993
mov ecx, dword ds:[eax]
cmp edx, ecx
jae 0x54d970
cmp byte [ebp - 1], 0xf
je 0x54d746
jmp case.0x54ac23.162
cmp byte [ebp - 1], 0xf
jmp 0x54d73e
lea esp, [esp]
cmp edx, 0x24
je 0x54d947
cmp edx, 0x40
je 0x54d947
cmp edx, 0x60
je 0x54d947
cmp edx, 0xa0
jb 0x54d9cc
jmp 0x54d9c0
cmp edx, 0xd7ff
jbe 0x54d947
cmp edx, 0xe000
jae 0x54d947
xor eax, eax
cmp eax, ebx
jmp 0x54d73e
mov ax, word [esi*4 + 0x5d5968]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
sete cl
cmp ecx, ebx
jmp 0x54d73e
movzx ecx, word ds:[edi + 4]
movzx edx, word [esi*4 + 0x5d596a]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x54da31
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5d53d0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x54d73e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54da94
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
cmp edx, dword [esi + 0x6c]
ja 0x54da7f
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.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 0x54dade
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54dade
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.005780a0
mov ecx, dword ds:[ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb case.0x54d312.8203
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je case.0x54d312.8203
jmp 0x54db20
cmp eax, dword [esi + 0x6c]
ja 0x54db33
cmp dword [esi + 0x34], 0
je case.0x54d312.8203
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54ac00
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 0x54dc4a
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 0x54dc47
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 0x54dc47
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 0x54dc47
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 0x54dc47
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 0x54dc47
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 8]
mov eax, dword [ecx*4 + 0x5d44f8]
mov dword [edx], edi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5d44cc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d449c]
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 0x54dc71
mov edi, edi
cmp ebx, 0xf
je 0x54dc71
or edx, 0xffffffff
jmp 0x54dc89
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 0x54ec9c
test edx, edx
js 0x54e8d5
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [ebp - 0x10], eax
cmp edx, 0xd
ja case.0x553729.15
jmp dword [edx*4 + 0x556048]
lea ebx, [ebx]
cmp ebx, 0xf
je case.0x54ac23.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 0x54dd25
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], ecx
je 0x54dd15
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54dd15
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x54dcd1
mov eax, dword ds:[ebp - 8]
jmp 0x54ec9f
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
cmp ecx, dword [esi + 0x6c]
ja 0x54dd47
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.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 0x54de36
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54ddc5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ddc5
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 0x54ddc8
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d5961]
cmp al, 9
je 0x54de0f
cmp al, 5
je 0x54de0f
nop
cmp al, 8
je 0x54de0f
xor eax, eax
jmp 0x54de14
mov eax, 1
cmp eax, edi
je case.0x552fe9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x54dd67
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
mov esi, ecx
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x552fe9.999
cmp edx, dword [esi + 0x6c]
ja 0x54de5c
cmp dword [esi + 0x34], 0
je case.0x552fe9.999
mov dword [esi + 0x2c], 1
jmp 0x54affa
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 0x54de36
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54ded2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ded2
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 0x54ded5
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x552fe9.999
inc esi
cmp esi, edi
jbe 0x54de70
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
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 0x54de36
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54df93
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54df93
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 0x54df96
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x552fe9.999
inc esi
cmp esi, edi
jbe 0x54df33
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
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 0x54de36
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54e053
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e053
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 0x54e056
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5960]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x552fe9.999
inc esi
cmp esi, edi
jbe 0x54dff0
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
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 0x54de36
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54e10e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e10e
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 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d5960]
cmp eax, ecx
je 0x54e17b
movzx edx, word [edx*4 + 0x5d5968]
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 + 0x5d50d0], eax
jne 0x54e17b
xor eax, eax
jmp 0x54e180
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x54e19f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x54e0b0
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x54eca2
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x552846
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 0x54de36
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54e213
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e213
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 0x54e216
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x54e25e
cmp eax, 3
je 0x54e25e
xor eax, eax
jmp 0x54e263
mov eax, 1
cmp eax, edi
je case.0x552fe9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x54e1b4
mov eax, dword ds:[ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
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 0x54e3db
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x54e2ee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e2ee
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 0x54e310
je case.0x54e3cf.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x54e3cf.8203
jmp dword [eax*4 + 0x556080]
cmp ecx, 0x2000
ja 0x54e3af
lea esp, [esp]
je case.0x54e3cf.8193
cmp ecx, 0x1680
ja 0x54e3a7
je case.0x54e3cf.8193
mov eax, ecx
sub eax, 0x85
je case.0x54e3cf.8193
sub eax, 0x1b
je case.0x54e3cf.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
cmp dword [eax*4 + 0x5f0c10], 6
sete cl
cmp ecx, dword [ebp - 0x10]
je 0x54e40f
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x54e290
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
cmp ecx, 0x180e
jmp 0x54e34e
cmp ecx, 0x3000
ja case.0x54e3cf.8203
je case.0x54e3cf.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x54e3cf.8203
movzx eax, byte [eax + 0x55609c]
jmp dword [eax*4 + 0x556094]
cmp ebx, 0xf
jmp 0x54e38c
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54e40f
cmp edx, dword [esi + 0x6c]
ja 0x54e3ff
cmp dword [esi + 0x34], 0
je 0x54e40f
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x552846
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 0x54e509
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x54e48e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e48e
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 + 0x5ec770]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x54e4e5
cmp eax, 3
je 0x54e4e5
cmp edx, 0x5f
je 0x54e4e5
xor eax, eax
jmp 0x54e4ea
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x54e19f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x54e430
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x54eca2
mov esi, edx
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x552fe9.999
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x54e533
cmp dword [esi + 0x34], 0
je case.0x552fe9.999
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
jmp 0x54affd
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 0x54e610
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x54e5b1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e5ae
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 + 0x5d4f10]
lea eax, [eax*4 + 0x5d4f10]
cmp ecx, edx
jb 0x54e5e4
lea ebx, [ebx]
lea eax, [eax + 4]
cmp ecx, edx
je 0x54e605
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x54e5d0
cmp ebx, 0xf
jne 0x54e40f
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x54e550
mov esi, dword ds:[ebp + 0x18]
jmp 0x54eca2
cmp ebx, 0xf
je 0x54e40f
jmp 0x54e5ed
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54e40f
cmp edx, dword [esi + 0x6c]
ja 0x54e63c
cmp dword [esi + 0x34], 0
je 0x54e40f
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x552846
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 0x54de36
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54e6bd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e6bd
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 0x54e713
cmp ecx, 0x40
je 0x54e713
cmp ecx, 0x60
je 0x54e713
jmp 0x54e6e0
cmp ecx, 0xa0
jb 0x54e6f8
cmp ecx, 0xd7ff
jbe 0x54e713
jmp 0x54e700
cmp ecx, 0xe000
jae 0x54e713
xor eax, eax
jmp 0x54e718
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x54e19f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x54e666
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x54eca2
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 0x54de36
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54e7a5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e7a5
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 0x54e7a8
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d5968]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x552fe9.999
inc esi
cmp esi, edi
jbe 0x54e742
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
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 0x54e509
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x54e861
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e85e
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 + 0x5ec770]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d596a]
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 + 0x5d53d0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x10]
je case.0x552fe9.999
inc esi
cmp esi, edi
jbe 0x54e807
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x54eca2
cmp ebx, 0x16
jne 0x54e9c5
mov esi, dword [ebp + 0x18]
lea edi, [ebx - 0x15]
mov ebx, dword [ebp - 0xc]
jmp 0x54e8f0
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test ebx, ebx
je 0x54e94d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e94d
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.005780a0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x54e9ac
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x54e9ac
cmp eax, dword [esi + 0x6c]
ja 0x54e99c
cmp dword [esi + 0x34], 0
je 0x54e9ac
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x54e8f0
mov edi, ebx
jmp 0x54eca2
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x553729.15
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x54f594
lea esp, [esp]
jmp dword [eax*4 + 0x5560fc]
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 0x54abfc
cmp dword ds:[ebp - 0x14], 0
mov edx, dword [ebp - 0x1c]
je 0x5554f1
mov esi, dword [eax + 0x38]
mov dword [eax + 4], esi
mov edi, dword [eax + 0x28]
mov dword [ebp - 0x44], edi
test edx, edx
js 0x550b37
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x1c], eax
cmp edx, 0xd
ja case.0x553729.15
jmp dword [edx*4 + 0x55614c]
jmp dword [eax*4 + 0x556274]
cmp ecx, ebx
jae 0x54ff66
mov edx, dword [ebp - 0x10]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov ecx, 1
cmp esi, dword [eax + 0x64]
jae 0x54ff7e
cmp dword [ebp - 0xc], 0
je 0x54ff4f
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [ebp - 0x40]
mov eax, 2
cmove ecx, eax
cmp edi, 0xf
je 0x54ff66
mov eax, dword [ebp - 8]
lea esi, [esi + ecx*2]
inc edx
mov dword [eax + 0x38], esi
cmp edx, ebx
jb 0x54ff20
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54ac00
jmp 0x554f7d
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ff66
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x54ffa6
cmp dword ds:[esi + 0x34], 0
je 0x54ffb6
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
mov edi, dword [ebp - 8]
jmp 0x54ff6c
cmp ecx, ebx
jae 0x54ff66
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 0x18]
jmp 0x54ffd0
mov edx, 1
cmp esi, dword [edi + 0x64]
jae 0x550090
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55001c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55001c
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 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d5961]
cmp al, 9
je 0x550065
cmp al, 5
je 0x550065
cmp al, 8
je 0x550065
xor eax, eax
jmp 0x55006a
mov eax, 1
cmp eax, ebx
je 0x54ff66
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 0x54ffd0
jmp 0x54ff66
movzx eax, word [edi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ff66
cmp esi, dword [edi + 0x6c]
mov esi, edi
ja 0x5500b4
cmp dword [esi + 0x34], 0
je 0x54ffb6
mov dword [esi + 0x2c], edx
jmp 0x5500c0
cmp ecx, 1
ja 0x54ae7f
mov edi, dword [ebp - 8]
jmp 0x54ff6c
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x54ff69
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55018d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55012f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55012f
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x54ff66
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 0x5500e0
jmp 0x54ff66
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ff66
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
jmp 0x5500a4
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x54ff69
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55018d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55020a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55020a
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x54ff66
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 0x5501b4
mov edi, edi
jmp 0x54ff66
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x54ff69
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55018d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5502ca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5502ca
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5960]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x54ff66
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 0x550270
mov edi, edi
jmp 0x54ff66
cmp ecx, ebx
jae 0x54ff66
mov ebx, dword [ebp - 0x1c]
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55042e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55038a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55038a
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 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d5960]
cmp eax, ecx
je 0x5503fb
movzx edx, word [edx*4 + 0x5d5968]
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 + 0x5d50d0], eax
jne 0x5503fb
xor eax, eax
jmp 0x550400
mov eax, 1
cmp eax, ebx
je 0x54ff66
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 0x550330
jmp 0x54ff69
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x550b2d
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x550452
cmp dword [esi + 0x34], 0
je 0x54ffb6
mov dword [esi + 0x2c], edi
jmp 0x5500b7
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x54ff69
mov ebx, dword [ebp - 0x1c]
jmp 0x550470
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x550545
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5504ca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5504ca
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 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x550519
cmp eax, 3
je 0x550519
xor eax, eax
jmp 0x55051e
mov eax, 1
mov edi, edi
cmp eax, ebx
je 0x54ff69
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 0x550470
mov edi, edi
jmp 0x54ff69
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ff69
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x550570
cmp dword [esi + 0x34], 0
je 0x54ff6c
mov dword [esi + 0x2c], edx
cmp ecx, 1
ja 0x54ae7f
lea esp, [esp]
jmp 0x54ff6c
cmp ecx, ebx
jae 0x54ff66
mov ebx, dword [ebp - 0x1c]
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55018d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5505ea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5505ea
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 0x550610
je case.0x5506e4.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x5506e4.8203
jmp dword [eax*4 + 0x5563b4]
cmp ecx, 0x2000
ja 0x5506ba
lea esp, [esp]
je case.0x5506e4.8193
cmp ecx, 0x1680
ja 0x5506b2
je case.0x5506e4.8193
mov eax, ecx
sub eax, 0x85
je case.0x5506e4.8193
sub eax, 0x1b
je case.0x5506e4.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
cmp dword [eax*4 + 0x5f0c10], 6
sete cl
cmp ecx, ebx
je 0x54ff66
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 0x550590
jmp 0x54ff66
cmp ecx, 0x180e
jmp 0x55064e
lea ebx, [ebx]
cmp ecx, 0x3000
ja case.0x5506e4.8203
je case.0x5506e4.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x5506e4.8203
movzx eax, byte [eax + 0x5563d0]
jmp dword [eax*4 + 0x5563c8]
cmp edi, 0xf
jmp 0x55068b
cmp ecx, ebx
jae 0x54ff66
mov ebx, dword [ebp - 0x1c]
jmp 0x550700
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55042e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x55074f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55074f
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 + 0x5ec770]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x5507a5
cmp eax, 3
je 0x5507a5
cmp edx, 0x5f
je 0x5507a5
xor eax, eax
jmp 0x5507aa
mov eax, 1
cmp eax, ebx
je 0x54ff66
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 0x550700
jmp 0x54ff69
cmp ecx, ebx
jae 0x54ff66
mov ebx, dword [ebp - 0x44]
jmp 0x5507e0
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55042e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55082f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55082f
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 + 0x5d4f10]
lea eax, [eax*4 + 0x5d4f10]
cmp ecx, edx
jb 0x550864
jmp 0x550850
lea eax, [eax + 4]
cmp ecx, edx
je 0x55088e
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x550850
cmp ebx, 0xf
jne 0x54ff66
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 0x5507e0
jmp 0x54ff69
cmp ebx, 0xf
je 0x54ff66
jmp 0x55086d
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x54ff69
mov ebx, dword [ebp - 0x1c]
jmp 0x5508b0
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x550545
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55090a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55090a
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 0x55095f
cmp ecx, 0x40
je 0x55095f
lea esp, [esp]
cmp ecx, 0x60
je 0x55095f
cmp ecx, 0xa0
jb 0x55094c
jmp 0x550940
cmp ecx, 0xd7ff
jbe 0x55095f
cmp ecx, 0xe000
jae 0x55095f
xor eax, eax
jmp 0x550964
mov eax, 1
cmp eax, ebx
je 0x54ff69
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 0x5508b0
jmp 0x54ff69
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x54ff69
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x550545
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5509ef
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5509ef
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d5968]
shr eax, 0xb
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x54ff69
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 0x5509a0
jmp 0x54ff69
cmp ecx, ebx
jae 0x54ff66
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x55042e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x550aaa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550aaa
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 + 0x5ec770]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d596a]
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 + 0x5d53d0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x1c]
je 0x54ff66
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 0x550a55
jmp 0x54ff69
mov edi, dword [ebp - 8]
mov esi, edx
jmp 0x54ff6c
jmp 0x550b40
cmp edi, 0x16
jne 0x550c7c
cmp ecx, ebx
jb 0x550b73
mov esi, dword [ebp + 0x18]
cmp dword ds:[ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54ac00
jmp 0x55545d
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550c45
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550bd3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550bd3
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.005780a0
mov esi, dword [ebp - 8]
mov dword [esi + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x550c2c
movzx ecx, word ds:[ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x550c2c
cmp eax, dword [ebx + 0x6c]
ja 0x550c1c
cmp dword [ebx + 0x34], 0
je 0x550c2c
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x24]
jb 0x550b70
mov esi, ebx
jmp 0x550b54
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x550b54
cmp edx, dword [esi + 0x6c]
ja 0x550c67
cmp dword [esi + 0x34], 0
je 0x550b54
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp 0x550b54
lea eax, ds:[edi - 6]
cmp eax, 0xf
ja case.0x553729.15
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x551610
jmp dword [eax*4 + 0x556430]
jmp dword [eax*4 + 0x5564e8]
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 0x552008
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 0x551fd4
cmp dword [edi + eax*4 + 0x54], 0xffffffff
jne 0x552008
movzx eax, word [esi + 0x52]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x551fb0
nop
jmp 0x552008
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.0x552020
movzx eax, byte [eax + 0x556620]
jmp dword [eax*4 + 0x556618]
mov edx, dword [ecx*4 + 0x5d44c4]
lea eax, [esi + 2]
mov ebx, dword [ecx*4 + 0x5d4468]
mov dword [edi], eax
mov eax, dword [ecx*4 + 0x5d4498]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov dword [ebp - 0x14], ebx
jmp 0x55207e
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 + 0x5d4468]
mov dword [ebp - 0x14], eax
test ecx, ecx
jne 0x552079
mov dword [edi + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [edi], eax
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x50]
jae 0x5520af
mov ecx, dword [edi + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x5520af
mov esi, dword ds:[ebp + 0x18]
cmp ecx, dword [edi + eax*4 + 0x58]
je 0x54abfc
jmp 0x5520ca
mov esi, dword [ebp + 0x18]
test edx, edx
je 0x54abfc
test dword [esi + 0x8c], 0x200
jne 0x54abfc
mov esi, 1
cmp edx, esi
jb 0x552104
mov edx, dword [edi + 0x28]
lea eax, [ebp - 0x48]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.0054a800
test eax, eax
jne 0x55218a
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 0x5520d7
mov ebx, dword [edi + 0x24]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
je 0x54af70
cmp dword [ebp - 0x14], 0
je 0x5555dc
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 0x552231
mov ebx, dword [ebp - 8]
jmp 0x552150
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.0054a800
test eax, eax
jne 0x5521ee
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 0x552150
jmp 0x552229
mov esi, dword [ebp + 0x18]
jle 0x552199
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x54ac23.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
jmp 0x5521c0
cmp ecx, dword [esi + 0x6c]
ja 0x5521d3
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
jle 0x552229
mov edx, dword ds:[ebp + 0x18]
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x552229
mov eax, dword [edx + 0x64]
cmp eax, dword [edx + 0x6c]
jbe 0x552229
mov dword ds:[edx + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
test esi, esi
je 0x555533
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x54ac23.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x15
jmp 0x555a4a
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.0054a800
test eax, eax
je 0x5522ce
jle 0x55227f
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x54ac23.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x5522b3
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [edi + 0x38], eax
jmp 0x54abfc
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 0x5522e3
add eax, 4
mov dword [ecx], eax
jmp 0x54ac00
cmp dword [esi + 0x30], 0
jne 0x552315
mov edx, dword [ebp - 8]
cmp dword [edx + 0x18], 0
jne 0x552ee3
xor ecx, ecx
jmp 0x555824
mov ebx, dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
mov edx, esi
mov ecx, ebx
call fcn.0054a700
mov esi, eax
test esi, esi
jg case.0x54ac23.162
js 0x55283d
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x54abf9
movzx eax, word [edi + 2]
mov ebx, dword [ebp - 8]
mov dword [ebx + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x552363
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
add edi, 4
mov dword [ebx], edi
movzx eax, word [edi]
cmp eax, 0x76
je 0x55237d
cmp eax, 0x77
jne 0x5523a9
lea eax, [ebp - 0x28]
mov edx, esi
push eax
mov ecx, ebx
call fcn.0054a700
mov esi, eax
test esi, esi
jg case.0x54ac23.162
js 0x55283d
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.0x5523c2.150
movzx eax, byte [eax + 0x556644]
jmp dword [eax*4 + 0x556628]
mov ecx, dword [ebx + 0x44]
cmp ecx, 0xffffffff
je case.0x5523c2.148
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
cmp eax, 0xffff
je 0x555308
cmp eax, ecx
je 0x555308
jmp 0x55251d
mov ebx, dword ds:[ebx + 0x44]
cmp ebx, 0xffffffff
je case.0x5523c2.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.0x5523c2.148
lea esp, [esp]
movzx eax, word [ecx]
dec edx
cmp eax, ebx
je 0x552465
lea ecx, ds:[ecx + esi*2]
test edx, edx
jg 0x552430
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 0x55251d
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 + 0x5f0c90]
jmp 0x552522
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
lea eax, [eax*2 - 2]
cmp eax, dword [edi + 0x50]
jae 0x55251d
cmp dword [edi + eax*4 + 0x54], 0xffffffff
je 0x55251d
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f0c90]
jmp 0x552522
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.0x5523c2.148
mov edi, dword [ebx + 0x50]
jmp 0x5524f0
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x552513
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne case.0x5523c2.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x5524f0
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 0x54abf9
mov edx, 0x2008f
mov byte [eax + 0x30], 0x23
mov dword [ebp - 0x20], edx
jmp 0x555a4a
cmp dword [ebp - 0xc], 0
movzx edx, word [edi + 2]
mov ebx, dword [ebp - 8]
je 0x552599
test edx, edx
je 0x5525b3
mov edi, 0xfc00
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [esi + 0x60]
jbe case.0x54ac23.162
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [ebp - 0x2c]
jne 0x552590
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x552563
jmp 0x5525b3
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jg case.0x54ac23.162
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x6c]
jae 0x5525c2
mov dword [esi + 0x6c], eax
add dword [ebx], 4
jmp 0x54abfc
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.0x54ac23.120
jmp 0x54ac00
movzx eax, word ds:[edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x55267f
mov ecx, 0x8a
cmp ax, cx
je 0x55267f
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 0x552687
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.0057e5b0
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 0x55283d
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.0x5526a0.132
movzx eax, byte [eax + 0x556674]
lea ecx, [ecx]
jmp dword [eax*4 + 0x556658]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x5526b9
mov dword [ecx + 0x70], eax
mov eax, dword ds:[esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x5526a0.132
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x5526d7
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.0x5526a0.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 0x5526f7
jmp case.0x5526a0.132
mov ecx, dword [esi + 0x38]
push edx
mov edx, dword [ebx + 0x38]
call fcn.00577c40
jmp 0x552720
test eax, eax
jne case.0x5526a0.132
jmp case.0x54ac23.162
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x552774
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.0057e5b0
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 0x54abf9
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.0x5526a0.132
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x5527d5
push dword [ebp - 0x3c]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.0057e5b0
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x55283d
mov cl, byte ds:[ebx + 0x31]
cmp cl, 0x79
je 0x5527fd
test esi, esi
je 0x55559d
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x55559d
mov edi, dword [ebp - 8]
add dword [edi], 4
jmp 0x54abf9
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
jne case.0x54ac23.162
test byte ds:[esi + 0x88], 1
jne case.0x54ac23.162
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54ac00
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
je 0x552826
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 0x552855
mov dword [edx + 0x70], eax
mov edi, dword ds:[ebp - 8]
cmp dword [edi + 0x18], 0
je 0x555c23
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.0x553729.15
movzx eax, byte [eax + 0x556780]
jmp dword [eax*4 + 0x556688]
test byte [esi + 0x88], 2
jne case.0x54ac23.162
test byte [esi + 0x8c], 0x10
je case.0x54ac23.23
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x38]
cmp eax, dword [esi + 0x64]
jb case.0x54ac23.162
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x5528d9
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
add dword ds:[edx], 2
jmp 0x54abfc
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x5529e5
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
lea edi, [eax + 0x9c]
test edx, edx
je 0x55292d
push dword [ebp - 0xc]
push edi
push esi
call fcn.00577340
mov esi, dword ds:[ebp + 0x18]
test eax, eax
je 0x552994
jmp 0x552973
mov edx, dword [edi]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [ebp + 0x18]
ja 0x55298e
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x55298e
cmp edx, 1
je 0x552973
mov ax, word ds:[ecx + 2]
cmp ax, word [esi + 0xa2]
jne 0x55298e
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 0x5529e8
jmp 0x552994
lea edi, [esi + 0x9c]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x54ac23.162
cmp dword ds:[esi + 0x98], 0
jne case.0x54ac23.162
cmp dword [edi], 2
jne case.0x54ac23.162
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54ac23.162
nop
jmp 0x54c64f
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x552a09
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
add dword [ebx], 2
jmp 0x54abfc
test byte ds:[esi + 0x88], 1
mov ebx, dword [ebp - 8]
je 0x552a32
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x5c]
je case.0x54ac23.162
mov ecx, dword ds:[ebx + 0x38]
mov esi, dword [esi + 0x5c]
cmp ecx, esi
je 0x552aa8
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jne 0x552a66
test dword ds:[eax + 0x8c], 0x200000
je case.0x54ac23.162
mov edx, dword [eax + 0x98]
test edx, edx
je 0x552ab3
cmp ecx, esi
jbe 0x552a9d
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00577420
test eax, eax
je 0x552a9d
mov eax, 1
jmp 0x552a9f
xor eax, eax
nop
test eax, eax
je case.0x54ac23.162
mov esi, dword [ebp + 0x18]
add dword [ebx], 2
jmp 0x54abfc
mov edi, dword ds:[eax + 0x9c]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ecx, eax
jb case.0x54ac23.162
mov esi, dword [ebp + 0x18]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54ac23.162
lea ecx, [ecx]
cmp edi, 1
je 0x552aab
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x552aab
jmp case.0x54ac23.162
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x552bb2
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x552b72
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00577340
test eax, eax
jne 0x552aa8
mov esi, dword [ebp + 0x18]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54ac23.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x54ac23.162
cmp dword ds:[esi + 0x98], 0
jne case.0x54ac23.162
cmp dword [esi + 0x9c], 2
jmp 0x5529c9
mov edx, dword ds:[eax + 0x9c]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
ja 0x552b30
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x552b33
cmp edx, 1
je 0x552aab
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x552aab
jmp 0x552b33
mov esi, dword ds:[ebp + 0x18]
test byte [esi + 0x88], 2
jne case.0x54ac23.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x552aab
cmp ecx, dword [esi + 0x6c]
ja 0x552be8
cmp dword [esi + 0x34], 0
je 0x552aab
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
add dword ds:[ebx], 2
jmp 0x54abfc
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 0x552839
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54ac00
mov ebx, dword [ebp - 8]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x60]
je 0x552d36
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x552c94
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x552c65
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552c94
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 0x552ca0
mov dword [esi + 0x6c], edx
test dword [esi + 0x8c], 0x20000
je 0x552d13
cmp ecx, 0x5f
jne 0x552cc5
lea edi, ds:[ecx - 0x5e]
jmp 0x552d38
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x552d09
lea ecx, [ecx]
cmp eax, 3
jne 0x552d36
mov edi, 1
jmp 0x552d38
cmp ecx, 0xff
ja 0x552d36
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je 0x552d36
mov edi, 1
jmp 0x552d38
xor edi, edi
mov ecx, dword ds:[ebx + 0x38]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jb 0x552dbc
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x552d89
jmp 0x552d60
cmp ecx, dword [esi + 0x6c]
ja 0x552d73
cmp dword [esi + 0x34], 0
je 0x552d89
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
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 0x552dac
xor edx, 1
test edx, edx
mov edx, dword [ebp - 0xc]
je 0x54ac00
jmp case.0x54ac23.162
cmp dword [ebp - 0xc], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x552e29
cmp edx, eax
jae 0x552ded
mov ax, word ds:[edx]
and ax, word [ebp - 0x34]
cmp ax, word [ebp - 0x2c]
jne 0x552ded
add edx, 2
movzx ecx, word ds:[ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552e2c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x552e2c
movzx ecx, word [ecx]
mov esi, dword [ebp + 0x18]
cmp edx, dword [esi + 0x70]
jbe 0x552e3b
mov dword [esi + 0x70], edx
test dword [esi + 0x8c], 0x20000
je 0x552ea7
cmp ecx, 0x5f
jne 0x552e5c
lea edx, [ecx - 0x5e]
jmp 0x552d8b
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x552e9d
cmp eax, 3
jne 0x552d89
mov edx, 1
jmp 0x552d8b
cmp ecx, 0xff
ja 0x552d89
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je 0x552d89
mov edx, 1
jmp 0x552d8b
test esi, esi
jne case.0x552892.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 + 0x5f0c90]
movzx eax, al
je 0x5555be
lea eax, [edi + eax*2]
mov dword [edx], eax
jmp 0x54abfc
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x552f45
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x552fe9.998
cmp word [ecx], 0x78
je 0x552f4d
cmp word ds:[eax], 0x78
jmp 0x552f47
test esi, esi
jne case.0x552fe9.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 0x55582c
xor esi, esi
mov eax, ecx
jmp 0x552846
cmp esi, 0xfffffc19
je 0x555238
jmp 0x552f80
test esi, esi
je 0x552f97
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne case.0x552fe9.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 0x55590b
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, ecx
jmp 0x552846
jmp 0x552fc0
test esi, esi
jg 0x552ff0
je case.0x552fe9.993
mov edx, dword ds:[ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x552fe9.998
jmp dword [eax*4 + 0x556864]
mov edx, dword ds:[ebp + 0x18]
mov eax, esi
sub eax, 1
mov eax, dword [ebp - 8]
jne 0x552846
xor esi, esi
jmp 0x552846
test esi, esi
jg 0x553034
je case.0x55302d.993
mov edx, dword [ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x552fe9.998
jmp dword [eax*4 + 0x556880]
mov eax, esi
sub eax, 1
jne case.0x552892.35
mov eax, dword [edi + 0x20]
test eax, eax
je 0x55251d
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 0x553050
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f0c90]
jmp 0x552522
test esi, esi
jne case.0x552892.35
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [edi], ecx
jmp 0x54abf9
test esi, esi
je 0x552800
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x552846
lea ebx, [ebx]
cmp esi, 0xfffffc1a
jne 0x5530d5
mov dword [edi + 0x24], 1
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jne 0x5555ca
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x5530c1
jmp 0x55312e
mov edx, dword ds:[ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x553111
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x552fe9.998
cmp word [ecx], 0x78
je 0x553119
cmp word [eax], 0x78
jmp 0x553113
test esi, esi
jne case.0x552fe9.998
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x5557e8
cmp dword [edi + 0x24], 0
jne 0x553170
cmp dword ds:[edi + 0x28], 0
jne 0x553170
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
test esi, esi
jne case.0x552892.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 0x553160
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x54abf9
lea ebx, [ebx]
test esi, esi
jne case.0x552892.35
add dword [edi], 2
jmp 0x54abf9
mov edx, dword [edi + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x553209
mov ebx, dword ds:[ebp + 0x18]
mov eax, dword [edi + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x84], eax
jne 0x553209
cmp esi, 0xfffffc1f
jne 0x54cb7b
mov eax, ebx
cmp dword [eax + 0x7c], ecx
jae 0x54cb7b
cmp word [edx], 0x78
je 0x553217
cmp word [ecx], 0x78
je 0x553217
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x552843
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0xc]
test esi, esi
jne case.0x552fe9.998
mov dword ds:[edi + 4], ecx
cmp word [ecx], 0x78
je 0x5558db
jmp case.0x54ac23.162
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1e
jne case.0x552fe9.998
mov ecx, dword [edi]
mov eax, edx
add ecx, 4
mov edx, dword [eax + 0x80]
call fcn.00578280
mov edx, dword [ebp + 0x18]
test eax, eax
jne case.0x552fe9.998
mov eax, dword [edi + 0x38]
mov esi, 0xfffffc1d
mov dword [edx + 0x80], eax
mov eax, dword [ebp - 8]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1c
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.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 0x552846
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.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 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.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 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.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.0054a800
test eax, eax
je 0x5555d4
jle 0x553359
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x552fe9.999
jmp 0x54e50b
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov eax, dword ds:[edi + 0xc]
neg eax
add eax, eax
add dword [edi + 0x38], eax
jmp 0x552234
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov eax, dword [edi + 4]
cmp dword [edi + 0x38], eax
je case.0x54ac23.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 0x5533d3
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.0054a800
mov eax, dword [ebp - 0x54]
inc esi
add eax, eax
add dword [edi + 0x38], eax
cmp esi, dword [edi + 0x24]
jb 0x5533b1
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x16
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [edi + 0x38], eax
cmp ecx, 0xff
jbe 0x553445
cmp byte [edi + 0x31], 0x6e
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x555a4a
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 0x553437
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
add dword [edi + 0x38], 0xfffffffe
jmp 0x54c879
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54e50b
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x5534be
cmp dword [edi + 0x2c], eax
jne case.0x552fe9.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 0x555a4a
add dword [edi + 0x38], 0xfffffffe
test esi, esi
je 0x54bc4e
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x54afd7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
jne case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x555a4d
add dword ds:[edi + 0x38], 0xfffffffe
test esi, esi
je 0x54bd89
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54e50b
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je case.0x552fe9.999
cmp dword [edi + 0x2c], eax
je case.0x552fe9.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 0x555a4a
test esi, esi
jne case.0x552892.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54abf9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1e
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x54afd7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x555a4a
test esi, esi
jne case.0x552892.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54abf9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x20
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x54afd7
cmp dword [edi + 0x28], 0xc
jne 0x55370d
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x5536c7
push ebx
push eax
push ecx
mov ecx, esi
call fcn.00577340
test eax, eax
je 0x55370d
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x552846
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x55370d
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x55370d
cmp edx, 1
je 0x553730
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x553732
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.0x553729.15
jmp dword [eax*4 + 0x55689c]
mov edx, ecx
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x552846
lea esp, [esp]
cmp ecx, 0x85
ja 0x553767
je case.0x553760.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x552fe9.999
mov edi, edi
jmp dword [ecx*4 + 0x5568dc]
sub ecx, 0x2028
je case.0x553760.11
sub ecx, 1
jne case.0x552fe9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
jmp 0x5537a0
cmp ecx, 0x2000
ja 0x55380a
je case.0x552fe9.999
cmp ecx, 0xa0
ja 0x5537e5
mov edi, edi
je case.0x552fe9.999
cmp ecx, 9
je case.0x552fe9.999
cmp ecx, 0x20
jne case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x1680
je case.0x552fe9.999
cmp ecx, 0x180e
jne case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x3000
ja case.0x553729.13
je case.0x552fe9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x553729.13
movzx eax, byte [ecx + 0x5568f4]
jmp dword [eax*4 + 0x5568ec]
lea esp, [esp]
cmp ecx, 0x2000
ja 0x5538aa
je case.0x553729.13
cmp ecx, 0xa0
ja 0x553885
mov edi, edi
je case.0x553729.13
cmp ecx, 9
je case.0x553729.13
cmp ecx, 0x20
je case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x1680
je case.0x553729.13
cmp ecx, 0x180e
je case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x3000
ja case.0x552fe9.999
je case.0x553729.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x552fe9.999
movzx eax, byte [ecx + 0x55695c]
jmp dword [eax*4 + 0x556954]
lea esp, [esp]
cmp ecx, 0x85
ja 0x553907
je case.0x552fe9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x553729.13
mov edi, edi
jmp dword [ecx*4 + 0x5569bc]
sub ecx, 0x2028
je case.0x552fe9.999
sub ecx, 1
jne case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x85
ja 0x553950
je case.0x553729.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x552fe9.999
jmp dword [ecx*4 + 0x5569cc]
sub ecx, 0x2028
je case.0x553729.13
lea esp, [esp]
sub ecx, 1
je case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
jmp 0x553980
cmp ecx, 0xff
ja case.0x553729.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0xff
ja case.0x552fe9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0xff
ja case.0x553729.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
lea esp, [esp]
cmp ecx, 0xff
ja case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0xff
ja case.0x553729.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0xff
ja case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x553729.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
lea esp, [esp]
test esi, esi
jne case.0x552892.35
mov eax, dword [edi + 0x38]
add eax, 0xfffffffe
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0x11
jne 0x553ac9
jmp 0x553aa0
cmp eax, dword [edi + 4]
jbe 0x553ac9
cmp word [eax], 0xa
jne 0x553ac9
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x553ac9
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54abf9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x22
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1b
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x553b7a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553b7a
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.00577600
test eax, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x64
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x552fe9.999
lea ebx, [ebx]
test ebx, ebx
je 0x54ca62
mov ax, word ds:[edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x54ca62
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553c6a
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 0x553c94
cmp byte ds:[edi + 0x31], 0x6e
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x555a4a
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 0x553c86
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x54ac23.162
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x54c7c9
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.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 0x553dcd
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x553d75
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x553d7e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x553d60
cmp esi, 0xfffffffc
je 0x555686
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x553dca
cmp esi, 0xfffffffd
je 0x555686
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x553dca
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x555686
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x553dca
cmp esi, 0xffffffff
je 0x555686
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x555686
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x553e6a
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x553e6a
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x553e15
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x553e1e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x553e00
cmp esi, 0xfffffffc
je 0x555686
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x553e6a
cmp esi, 0xfffffffd
je 0x555686
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x553e6a
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x555686
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x553e6a
cmp esi, 0xffffffff
je 0x555686
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x555686
mov esi, dword [ebp + 0x18]
cmp ebx, dword [esi + 0x64]
jb case.0x54ac23.162
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54ac23.162
cmp ebx, dword [esi + 0x6c]
ja 0x553e9c
cmp dword [esi + 0x34], 0
je case.0x54ac23.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54ae7f
jmp case.0x54ac23.162
test esi, esi
jne case.0x552892.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 0x553ee1
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54abf9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcb
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553f6a
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.0x552fe9.999
cmp dword [edi + 0x2c], ecx
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x555a4a
test esi, esi
jne case.0x552892.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 0x553fba
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54abf9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcd
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55404a
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.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword ds:[eax]
mov byte [eax + 0x30], 0xce
jmp 0x555a4a
test esi, esi
jne case.0x552892.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 0x554095
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54abf9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcf
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54e50b
movzx eax, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x554111
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554111
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0xf
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55419a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55419a
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 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d5961]
cmp al, 9
je 0x5541e5
cmp al, 5
je 0x5541e5
cmp al, 8
je 0x5541e5
xor ecx, ecx
jmp 0x5541ea
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55427a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55427a
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55434b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55434b
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55440b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55440b
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5960]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5544cb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5544cb
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 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x554519
cmp eax, 3
je 0x554519
xor ecx, ecx
jmp 0x55451e
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5545ab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5545ab
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 0x5545d0
je case.0x554690.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x554690.8203
jmp dword [eax*4 + 0x5569dc]
cmp ecx, 0x2000
ja 0x554670
lea esp, [esp]
je case.0x554690.8193
cmp ecx, 0x1680
ja 0x554668
je case.0x554690.8193
mov eax, ecx
sub eax, 0x85
je case.0x554690.8193
sub eax, 0x1b
je case.0x554690.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
cmp dword [eax*4 + 0x5f0c10], 6
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x555a4a
cmp ecx, 0x180e
jmp 0x55460e
cmp ecx, 0x3000
ja case.0x554690.8203
je case.0x554690.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x554690.8203
movzx eax, byte [eax + 0x5569f8]
jmp dword [eax*4 + 0x5569f0]
cmp dword [edi + 0x28], 0xf
jne 0x55465a
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54e50b
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55471a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55471a
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 + 0x5ec770]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d5961]
mov eax, dword [eax*4 + 0x5f0c10]
cmp eax, 1
je 0x554770
cmp eax, 3
je 0x554770
lea ecx, [ecx]
cmp edx, 0x5f
je 0x554770
xor ecx, ecx
jmp 0x554775
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55480b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55480b
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 + 0x5d4f10]
lea eax, [eax*4 + 0x5d4f10]
cmp ecx, edx
jb 0x554844
jmp 0x554830
lea eax, [eax + 4]
cmp ecx, edx
je 0x55485c
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x554830
cmp dword [edi + 0x28], 0xf
jne case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x555a4a
cmp dword [edi + 0x28], 0xf
jne 0x55484e
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5548dd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5548dd
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 0x554933
cmp ecx, 0x40
je 0x554933
cmp ecx, 0x60
je 0x554933
jmp 0x554900
cmp ecx, 0xa0
jb 0x554918
cmp ecx, 0xd7ff
jbe 0x554933
jmp 0x554920
cmp ecx, 0xe000
jae 0x554933
xor ecx, ecx
jmp 0x554938
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54e50b
movzx esi, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
mov edx, ecx
test ebx, ebx
je 0x5549cd
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5549cd
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.005780a0
mov esi, dword [ebp + 0x18]
mov dword [edi + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x554a2c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x554a2c
cmp eax, dword [esi + 0x6c]
ja 0x554a1c
cmp dword [esi + 0x34], 0
je 0x554a2c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x54afd7
cmp dword [edi + 0x28], 0xc
jne 0x554aed
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x554aa7
push ebx
push eax
push ecx
mov ecx, esi
call fcn.00577340
test eax, eax
je 0x554aed
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x552846
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x554aed
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x554aed
cmp edx, 1
je 0x553730
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x553732
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 0x554b2a
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.0x553729.15
lea esp, [esp]
jmp dword [eax*4 + 0x556a58]
cmp ecx, 0x85
ja 0x554b70
je case.0x554b69.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x552fe9.999
jmp dword [ecx*4 + 0x556a98]
sub ecx, 0x2028
je case.0x554b69.11
lea esp, [esp]
sub ecx, 1
jne case.0x552fe9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x554b40.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x2000
ja 0x554c25
je case.0x552fe9.999
jmp 0x554bc0
cmp ecx, 0xa0
ja 0x554bf6
je case.0x552fe9.999
cmp ecx, 9
je case.0x552fe9.999
jmp 0x554be0
cmp ecx, 0x20
jne case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
jmp 0x554c00
cmp ecx, 0x1680
je case.0x552fe9.999
cmp ecx, 0x180e
jne case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x3000
ja case.0x554b40.13
je case.0x552fe9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x554b40.13
movzx eax, byte [ecx + 0x556ab0]
jmp dword [eax*4 + 0x556aa8]
jmp 0x554c60
cmp ecx, 0x2000
ja 0x554cca
je case.0x554b40.13
cmp ecx, 0xa0
ja 0x554ca5
mov edi, edi
je case.0x554b40.13
cmp ecx, 9
je case.0x554b40.13
cmp ecx, 0x20
je case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x1680
je case.0x554b40.13
cmp ecx, 0x180e
je case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x3000
ja case.0x552fe9.999
je case.0x554b40.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x552fe9.999
movzx eax, byte [ecx + 0x556b18]
jmp dword [eax*4 + 0x556b10]
lea esp, [esp]
cmp ecx, 0x85
ja 0x554d27
je case.0x552fe9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x554b40.13
mov edi, edi
jmp dword [ecx*4 + 0x556b78]
sub ecx, 0x2028
je case.0x552fe9.999
sub ecx, 1
jne case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x85
ja 0x554d70
je case.0x554b40.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x552fe9.999
jmp dword [ecx*4 + 0x556b88]
sub ecx, 0x2028
je case.0x554b40.13
lea esp, [esp]
sub ecx, 1
je case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
jmp 0x554da0
cmp ecx, 0x100
jae case.0x554b40.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x100
jae case.0x552fe9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x100
jae case.0x554b40.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
lea esp, [esp]
cmp ecx, 0x100
jae case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x100
jae case.0x554b40.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
cmp ecx, 0x100
jae case.0x552fe9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x554b40.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x552846
lea esp, [esp]
test esi, esi
jne case.0x552892.35
mov edx, dword [edi + 0x38]
add edx, 0xfffffffe
mov dword [edi + 0x38], edx
test ebx, ebx
jne 0x555319
movzx ecx, word ds:[edx]
jmp 0x55536a
test esi, esi
jne case.0x552892.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 0x554ef5
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
cmp dword [edi + 0x28], 0x11
jne 0x554f29
nop
cmp ecx, dword [edi + 4]
jbe 0x554f29
cmp word [ecx], 0xa
jne 0x554f29
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x554f29
mov dword [edi + 0x38], ecx
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54abf9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xdd
jmp 0x555a4a
test esi, esi
jne case.0x552892.35
mov ecx, dword [edi + 0x38]
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x554f7d
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x554f7d
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54abf9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xde
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54e50b
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55500b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55500b
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 + 0x5ec770]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d596a]
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 + 0x5d53d0]
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.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x555a4a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5550eb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5550eb
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 + 0x5ec770]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d5968]
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.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x555a4a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x552fe9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x552fe9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x54de38
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5551ab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5551ab
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 + 0x5ec770]
shl eax, 7
add eax, ecx
mov ecx, dword [edi + 0x2c]
movzx eax, word [eax*2 + 0x5d9b70]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5d5960]
cmp eax, ecx
je 0x555214
movzx edx, word [edx*4 + 0x5d5968]
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 + 0x5d50d0], eax
jne 0x555214
xor ecx, ecx
jmp 0x555219
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x552fe9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe1
jmp 0x555a4a
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.0057e5b0
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 0x555260
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x54abf9
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 0x555280
lea eax, [edi + 4]
jmp 0x54abf7
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 0x555935
lea eax, [edi + 4]
jmp 0x54abf7
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.0057e5b0
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
jmp 0x55303f
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 0x555573
xor eax, eax
cmp dword [edi + 0x20], eax
sete al
jmp 0x553042
mov edi, dword [ebp - 8]
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f0c90]
jmp 0x552522
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x555339
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 0x55536a
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 + 0x5ec770]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x5d5962]
cmp edx, edi
jbe 0x55545d
lea ecx, [ecx]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x555405
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x5553d2
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555405
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 + 0x5ec770]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x5d9b70]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5d5962]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5f0bd0], eax
je 0x55545d
mov eax, dword [ebp - 8]
mov ebx, esi
mov dword [eax + 0x38], edx
cmp edx, edi
ja 0x5553a0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x54abf9
mov edi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x555a4a
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 + 0x5f0c90]
movzx eax, word [edx + 2]
ja 0x555737
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x54abfc
cmp dword [ebp - 0xc], 0
jne 0x553f7f
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x555a4a
test ebx, ebx
jne 0x554056
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x555a4a
cmp dword ds:[ebp - 0xc], 0
jne 0x553c89
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x555a4a
test edx, edx
js 0x555510
lea esp, [esp]
cmp edx, 0xd
ja case.0x553729.15
jmp dword [edx*4 + 0x556b98]
cmp dword [eax + 0x28], 0x16
je 0x554a2f
lea ebx, [ebx]
test edi, edi
jne 0x55572c
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x555a4a
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 0x555a4a
cmp ecx, 0x7e
je 0x555565
mov eax, 0x80
cmp cx, ax
je 0x555565
xor eax, eax
jmp 0x55556a
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 + 0x5f0c90]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 5
jmp 0x555a4a
mov eax, dword [ebp - 8]
cmp cl, 0x7b
jne 0x5555b5
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x555a4d
mov byte [ebx + 0x30], 7
jmp 0x555a4d
lea edi, [edi + eax*2]
mov byte [edx + 0x30], 1
jmp 0x555a4a
mov eax, dword [edi + 8]
mov dword [edi], eax
jmp 0x5557e8
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 0x555a4a
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae case.0x553729.13
cmp word ds:[esi], 0xa
jne case.0x553729.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 0x555a4a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553729.13
cmp esi, dword [ebx + 0x64]
jb case.0x553729.13
cmp dword ds:[ebx + 0x98], 0
jne case.0x553729.13
cmp dword [ebx + 0x9c], 2
jne case.0x553729.13
movzx eax, word ds:[ebx + 0xa0]
cmp ecx, eax
jne case.0x553729.13
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x555a4a
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 0x555a4a
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae case.0x554b40.13
cmp word [edx], 0xa
jne case.0x554b40.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 0x555a4a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov esi, eax
test ax, ax
je case.0x554b40.13
lea esp, [esp]
cmp edx, dword [ebx + 0x64]
jb case.0x554b40.13
cmp dword [ebx + 0x98], 0
jne case.0x554b40.13
cmp dword ds:[ebx + 0x9c], 2
jne case.0x554b40.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x554b40.13
mov dword ds:[ebx + 0x2c], 1
cmp esi, 1
ja 0x54ae7f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x555a4a
mov byte ds:[ebx + 0x30], 0x11
jmp 0x555a45
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x555a4a
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 0x555760
lea edi, [eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x555a4a
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 0x5557cf
mov edx, 0x8e
cmp ax, dx
jne 0x5557bb
jmp 0x5557cf
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], 0
mov eax, 0x20000
jmp 0x5557d8
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 + 0x5f0c90]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 8
jmp 0x555a4a
movzx ecx, word [edi + 4]
or ecx, 0x10000
jmp 0x555824
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 + 0x5f0c90]
lea edi, [edi + eax*2]
jmp 0x555a4a
mov ecx, dword [esi + 0x58]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x555865
xor edi, edi
jmp 0x555869
movzx edi, word [ebx + 4]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x44], 0xffffffff
je 0x5558cc
mov eax, dword ds:[ecx + 0x4c]
cmp eax, 0xffffffff
je 0x5558cc
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 0x5558b6
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x555894
jmp 0x5558c9
mov eax, dword ds:[ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x555c2e
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 + 0x5f0c90]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xb
jmp 0x555a4a
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 + 0x5f0c90]
lea edi, [edi + eax*2]
jmp 0x555a4a
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 + 0x5f0c90]
lea edi, [edi + eax*2]
jmp 0x555a4a
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 + 0x5f0c90]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x555a45
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f0c90]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xd
jmp 0x555a4a
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 + 0x5f0c90]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x555a45
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f0c90]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xe
jmp 0x555a4a
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 + 0x5f0c90]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x555a45
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f0c90]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x10
jmp 0x555a4a
movzx eax, word ds:[edi]
movzx eax, byte [eax + 0x5f0c90]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x12
jmp 0x555a4a
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 + 0x5f0c90]
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 0x555b2e
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 0x555aa4
mov ebx, edx
xor edx, edx
shl ebx, 0xa
mov eax, ebx
div dword [ebp + 0x14]
sub ebx, edx
cmp ecx, ebx
jae 0x555c3c
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 [0x5a08ec]
call esi
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
je 0x555c4a
mov eax, dword [ebp + 0x18]
push dword [eax + 0xc]
push dword [eax + 0x10]
push esi
call fcn.0057e5b0
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 0x555b1d
push dword [edx + 8]
mov esi, dword [edx + 4]
push ecx
mov ecx, esi
call dword [0x5a08ec]
call esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
jmp 0x555b20
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.0057e5b0
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 0x54ab93
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 0x555b96
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.0057e5b0
mov eax, dword ds:[ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x555c04
jmp 0x555bf0
mov dword ds:[edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x555bf0
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