Function at 0x5543e0
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 0x5544a4
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 0x55449f
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 0x55f538
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x24]
jb 0x5544dc
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.0x55d009.15
movzx eax, byte [ecx + 0x55f6a4]
jmp dword [eax*4 + 0x55f548]
mov eax, dword [ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
jne 0x554583
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
lea ebx, [ebx]
cmp eax, 0xffffffff
je case.0x55d009.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 0x55454a
mov eax, dword [edx + 0x4c]
jmp 0x554520
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 0x554580
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f50e0]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 8]
jmp 0x5544d7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [esi + 0x70]
jbe 0x5545a8
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 8]
mov esi, 0xfffffc19
mov dword [ebp - 0x24], eax
jmp 0x55c120
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
je 0x55460f
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x55d009.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 0x5545ef
mov eax, dword [ecx + 0x4c]
jmp 0x5545c5
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 0x5544dc
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x554648
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x88]
test al, 4
jne case.0x554503.162
test al, 8
je 0x554648
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.0x554503.162
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x55f452
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0x8c]
or eax, dword [ecx + 0x88]
test eax, 0x20000000
je 0x55f450
test bl, bl
jne 0x55f445
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, ecx
jmp 0x55c123
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x55476d
mov esi, dword [eax + 0x64]
lea edi, [eax + 0x64]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, esi
jae 0x5546c3
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x18]
add eax, 0x9c
push eax
push esi
call fcn.0057b860
test eax, eax
je 0x5546c3
mov eax, 1
jmp 0x5546c5
xor eax, eax
test eax, eax
jne case.0x554503.162
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x554503.13
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x98], 0
jne 0x55471c
cmp dword [eax + 0x9c], 2
jne 0x55471c
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x554503.13
mov eax, esi
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov esi, eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x5547bb
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x55474f
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp edx, 1
jbe case.0x554503.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 0x5547b1
mov ax, word [edx]
cmp ax, word [edi + 0xa0]
jne 0x5547b1
cmp esi, 1
je case.0x554503.162
mov ax, word [edx + 2]
mov esi, edi
cmp ax, word [esi + 0xa2]
jne 0x5547b3
jmp case.0x554503.162
mov esi, edi
lea edi, [esi + 0x64]
jmp 0x5546d3
mov edx, dword [ebp - 0xc]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x5547f1
cmp ecx, dword [esi + 0x64]
jae 0x5547f1
mov ax, word ds:[ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x5547ee
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
add dword [eax], 2
jmp 0x5544e0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x55483d
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x554828
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55475f
jmp case.0x554503.162
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x554850
mov esi, dword [ebp + 0x18]
jmp 0x5544e0
mov ebx, dword ds:[ebp - 0xc]
test ebx, ebx
je 0x554925
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 0x5548a0
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 0x5548f3
cmp esi, ecx
jb case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x5548d3
cmp dword [eax + 0x34], 0
je case.0x55c8c9.999
mov dword [eax + 0x2c], 1
cmp ecx, 1
lea ecx, [ecx]
ja 0x55475f
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55c126
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 0x55491b
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x5548f3
jmp 0x5544d9
xor esi, esi
jmp 0x55c120
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 0x554971
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x55495c
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.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.0x554503.162
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x5544d9
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [esi + 0x64]
jb 0x5549de
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x6c]
mov eax, dword [ebp + 0x18]
ja 0x5549c9
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x554b0b
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 0x554a36
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 0x554a39
mov eax, dword [ebp - 8]
movzx edx, word ds:[ecx]
cmp esi, 0x80
jae 0x554a7f
cmp edx, 0xff
ja 0x554a5a
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.0x554503.162
mov edx, dword [ebp - 8]
lea eax, [ebx + 2]
mov dword [edx], eax
lea eax, [ecx + 2]
mov dword [edx + 0x38], eax
jmp 0x5544d9
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554ab7
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 0x554aba
mov ecx, dword [ebp - 8]
lea eax, ds:[ebx + edi*2]
mov dword [ecx], eax
cmp edx, esi
je 0x5544d9
mov eax, esi
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5f0bc0]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d9db4]
add eax, esi
mov esi, dword [ebp + 0x18]
cmp edx, eax
mov edx, dword [ebp - 0xc]
je 0x5544e0
jmp case.0x554503.162
cmp dword [ebp - 0x30], 0
je 0x554bce
movzx esi, word ds:[edi + 2]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x554b59
cmp edx, 0xff
ja 0x554b3a
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 0x554bb3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x55c126
cmp edx, esi
je 0x554bb3
lfence
mov eax, esi
test eax, eax
jns 0x554b69
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5f0bc0]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x554b8c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d9db4]
add eax, esi
cmp edx, eax
mov eax, dword [ebp - 8]
je 0x554bb3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x55c126
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 0x5544e0
movzx eax, word [edi + 2]
mov edx, eax
cmp ax, word [ebp - 0x38]
ja 0x554be1
mov eax, dword [esi + 0x38]
movzx edx, byte [eax + edx]
movzx eax, word [ecx]
mov ecx, eax
cmp ax, word [ebp - 0x38]
ja 0x554bf3
mov eax, dword [esi + 0x38]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x554c05
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
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 0x5544e0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x554c65
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x554c4f
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55475f
nop
jmp case.0x554503.162
lea eax, [edi + 2]
test edx, edx
je 0x554d45
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 0x554ca9
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 0x554ce6
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.0x554503.162
cmp bl, 0x20
jne 0x5544d9
cmp edx, 0x7f
jbe 0x554d2a
mov eax, edx
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5f0bc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d9db4]
jmp 0x554d34
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [ebp - 0xc]
jne 0x554850
nop
jmp case.0x554503.162
cmp dword [ebp - 0x30], 0
lea esi, [ecx + 2]
je 0x554dd9
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.0x554503.162
cmp byte [ebp - 1], 0x20
mov esi, dword [ebp + 0x18]
jne 0x5544dc
cmp edx, 0x7f
jbe 0x554dc2
lfence
mov eax, edx
test eax, eax
jns 0x554d89
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5f0bc0]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x554dac
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d9db4]
jmp 0x554dc9
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
jne 0x5544e0
jmp case.0x554503.162
movzx edx, word [eax]
mov eax, dword [ebp - 8]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.0x554503.162
mov esi, dword [ebp + 0x18]
cmp bl, 0x20
jne 0x554e0c
cmp edx, 0xff
ja 0x554e0c
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.0x554503.162
mov ecx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x5544dc
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 0x554f49
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 0x554f46
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 0x554f46
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 0x554f46
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 0x554f46
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 0x554f46
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 0x554f46
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 + 0x5d8b54]
mov dword [eax], edi
mov dword [eax + 0x20], ebx
mov eax, dword [ecx*4 + 0x5d8b28]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d8af8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
je 0x55538f
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 0x555385
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 0x555024
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5f0bc0]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5d9db4]
add ecx, esi
cmp ecx, esi
je 0x555024
lea esp, [esp]
cmp ecx, 0xffff
ja 0x554ff6
mov eax, dword [ebp - 8]
mov word [eax + 0x32], cx
mov eax, 1
jmp 0x555026
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 0x555026
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 0x5551d0
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 0x5550dd
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x555088
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x555091
add ecx, 4
add edx, 4
sub esi, 4
jae 0x555077
cmp esi, 0xfffffffc
je 0x55515f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5550da
jmp 0x5550a0
cmp esi, 0xfffffffd
je 0x55515f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5550da
cmp esi, 0xfffffffe
je 0x55515f
mov al, byte ds:[ecx + 2]
cmp al, byte [edx + 2]
jne 0x5550da
cmp esi, 0xffffffff
je 0x55515f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55515f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x555186
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x555186
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x555125
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55512a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x555110
cmp esi, 0xfffffffc
je 0x55515f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x555186
cmp esi, 0xfffffffd
je 0x55515f
mov al, byte ds:[ecx + 1]
cmp al, byte [edx + 1]
jne 0x555186
cmp esi, 0xfffffffe
je 0x55515f
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x555186
cmp esi, 0xffffffff
je 0x55515f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x555186
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 0x555040
mov edx, eax
mov dword [ebp - 0x10], edx
jmp 0x5551d5
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb case.0x554503.162
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x5551bb
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
mov edx, eax
mov dword [ebp - 0x10], eax
mov ecx, dword ds:[ecx + 0x24]
cmp eax, ecx
je 0x5544d9
cmp dword [ebp - 0x14], 0
je 0x55ef6f
mov eax, dword ds:[ebp - 8]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x55536e
jmp 0x555213
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 0x55529e
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x555251
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55525a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x555240
cmp esi, 0xfffffffc
je 0x55531a
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x55529b
cmp esi, 0xfffffffd
je 0x55531a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55529b
cmp esi, 0xfffffffe
je 0x55531a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55529b
cmp esi, 0xffffffff
je 0x55531a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55531a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x555339
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x555339
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x5552e5
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5552ea
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5552d0
cmp esi, 0xfffffffc
je 0x55531a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x555339
cmp esi, 0xfffffffd
je 0x55531a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x555339
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x55531a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x555339
cmp esi, 0xffffffff
je 0x55531a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x555339
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 0x555210
jmp 0x55536e
mov eax, dword ds:[ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb 0x55536e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x55536e
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x55535e
cmp dword [eax + 0x34], 0
je 0x55536e
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x554850
mov edi, dword ds:[ebp - 8]
jmp 0x55d7c1
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x55539f
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 0x555548
cmp dword [ebp - 0xc], 0
jne 0x5553b5
cmp dword [ebp - 0x30], 0
je 0x5553e7
cmp edx, 0x7f
jbe 0x5553e7
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5f0bc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d9db4]
add eax, edx
jmp 0x5553fa
cmp edx, 0xff
ja 0x5553f8
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
jmp 0x5553fa
mov eax, edx
mov ecx, dword [ebp - 8]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp ebx, esi
jb 0x55544a
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 0x5554af
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
mov edx, dword [edi + 0x28]
cmp edx, eax
je 0x55543f
cmp dword [edi + 0x2c], eax
jne case.0x554503.162
inc esi
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp esi, ebx
jbe 0x555410
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [eax + 0x24]
cmp ebx, esi
je 0x5544d9
cmp dword ds:[ebp - 0x14], 0
je 0x55cda7
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, esi
jae 0x55551b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x5554ee
movzx eax, word [ecx]
cmp edx, eax
je 0x55549c
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x2c], eax
jne 0x55551b
mov eax, dword [ebp - 8]
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, esi
jb 0x555474
jmp 0x55551b
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x5554d0
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword ds:[eax + 0x2c], 1
nop
cmp edx, 1
ja 0x55475f
jmp case.0x554503.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x55551b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x55550b
cmp dword [eax + 0x34], 0
je 0x55551b
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55475f
cmp dword [ebp - 0x14], 2
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
je 0x5544e0
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x5544d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1a
jmp 0x55f32a
mov edi, 1
cmp ebx, edi
jb 0x55558d
mov esi, dword ds:[eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae 0x5555ed
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 0x55491b
inc edi
cmp edi, ebx
jbe 0x555551
mov edx, dword [eax + 0x24]
mov esi, ebx
cmp ebx, edx
je 0x5544d9
mov ebx, dword ds:[ebp - 0x14]
test ebx, ebx
je 0x55ce0d
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x55564e
jmp 0x5555c0
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x555625
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
jne 0x555651
mov eax, edi
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x5555c0
jmp 0x55564e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x55560f
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
nop
jmp case.0x554503.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x55564e
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x55563e
cmp dword [eax + 0x34], 0
je 0x55564e
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov edi, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp ebx, 2
je 0x5544e0
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x5544d9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1c
jmp 0x55f32a
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 0x5557b5
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 0x5557b2
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 0x5557b2
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 0x5557b2
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 0x5557b2
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 0x5557b2
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 0x5557b2
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 + 0x5d8b54]
mov dword [eax], edi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5d8b28]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d8af8]
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 0x5557ff
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5557fc
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 0x555b1e
test ebx, ebx
jne 0x555812
cmp dword [ebp - 0x30], ebx
je 0x555844
cmp edi, 0x7f
jbe 0x555844
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5f0bc0]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x5d9db4]
add ebx, edi
jmp 0x55585a
cmp edi, 0xff
ja 0x555858
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx ebx, byte [eax + edi]
jmp 0x55585a
mov ebx, edi
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov dword [eax + 0x2c], ebx
je 0x5559d0
mov dword [ebp - 0x1c], 1
cmp edx, 1
jae 0x555928
mov dword [ebp - 0x1c], edx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x5544d9
cmp dword [ebp - 0x14], 0
je 0x55ed92
cmp dword [ebp - 0xc], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x555a9e
cmp ebx, edi
jae 0x555a89
mov eax, dword ds:[ebp + 0x18]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x555a5c
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5558f9
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 0x555a89
cmp dword [eax + 0x2c], ecx
je 0x555a89
inc ebx
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x5558b0
lea ecx, [ecx]
jmp 0x555a89
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x64]
jae 0x555998
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555970
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.0x554503.162
jmp 0x555980
cmp ebx, ecx
je case.0x554503.162
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, edx
jbe 0x555925
jmp 0x55587a
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x5559bb
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
mov esi, 1
mov dword [ebp - 0x1c], edx
cmp edx, esi
jb 0x55587d
jmp 0x5559f0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x555a26
movzx eax, word [ecx]
cmp edi, eax
je case.0x554503.162
cmp ebx, eax
je case.0x554503.162
lea eax, [ecx + 2]
inc esi
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x5559f0
mov ebx, edx
jmp 0x555880
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x555a47
cmp dword [eax + 0x34], 0
je case.0x554503.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55475f
jmp case.0x554503.162
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x555a89
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x555a75
cmp dword [eax + 0x34], 0
je 0x555a89
mov dword ds:[eax + 0x2c], esi
cmp ecx, 1
ja 0x55475f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x554850
mov edi, dword [ebp - 8]
jmp 0x55d89a
mov edi, edi
cmp ebx, edi
jae 0x555b09
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x555ad8
mov ecx, dword [ebp - 8]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x555b09
nop
cmp dword [ecx + 0x2c], eax
je 0x555b09
mov eax, ecx
add edx, 2
inc ebx
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x555aa8
jmp 0x555b09
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x555b09
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x555af3
cmp dword [eax + 0x34], 0
je 0x555b09
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x554850
mov edi, dword [ebp - 8]
jmp 0x55ce94
mov esi, 1
test ebx, ebx
je 0x555c6e
cmp edx, esi
jae 0x555bf3
mov eax, dword [ebp - 8]
mov esi, dword ds:[eax + 0x24]
cmp edx, esi
je 0x554bc4
cmp dword [ebp - 0x14], 0
je 0x55eda7
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 0x555d36
cmp ebx, esi
jae 0x555d2e
mov eax, dword ds:[ebp + 0x18]
mov edi, 1
cmp ecx, dword [eax + 0x64]
jae 0x555cf6
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555bb9
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 0x555bd0
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x555b70
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x5544e0
mov edi, dword [ebp - 8]
jmp 0x55d975
mov eax, dword [ebp - 8]
mov ecx, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x555c65
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555c49
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 0x554b4f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x555bf0
lea esp, [esp]
jmp 0x555b33
movzx eax, word [ecx + 0x4c]
jmp 0x555cb9
cmp edx, 1
jb 0x555b33
jmp 0x555c83
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x555cb5
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 0x554b4f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x555c80
jmp 0x555b36
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x555ce9
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x555cd3
cmp dword [eax + 0x34], 0
je 0x555ce9
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x55475f
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x55c126
movzx eax, word ds:[eax + 0x4c]
mov esi, dword [ebp + 0x18]
mov edx, eax
test ax, ax
je 0x555bd3
cmp ecx, dword [esi + 0x6c]
ja 0x555d18
cmp dword [esi + 0x34], 0
je 0x555bd3
mov dword ds:[esi + 0x2c], edi
cmp edx, 1
ja 0x55475f
jmp 0x555bd3
mov esi, dword [ebp + 0x18]
jmp 0x555bd6
cmp ebx, esi
jae 0x555d64
lea ebx, [ebx]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x555d79
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x555d67
mov eax, edi
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x555d40
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x5544e0
jmp 0x55cf15
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x555da9
cmp ecx, dword [esi + 0x6c]
ja 0x555d91
cmp dword [esi + 0x34], 0
je 0x555da9
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
jmp 0x555d6a
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.0x555dd5
movzx eax, byte [eax + 0x55f754]
jmp dword [eax*4 + 0x55f74c]
mov ecx, dword [esi*4 + 0x5d89cc]
lea eax, [edi + 0x24]
mov dword [ebx], eax
mov eax, dword [esi*4 + 0x5d89a0]
mov esi, dword [esi*4 + 0x5d8970]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], esi
jmp 0x555e52
movzx ecx, word [edi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x555e25
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d8970]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [ebp - 8]
jmp 0x555e52
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 0x555f45
cmp ecx, edi
jb 0x555fee
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x555f10
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 0x555eb8
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 0x555ec0
cmp esi, 0xff
jbe 0x555ed7
mov eax, dword [ebp - 8]
cmp byte [eax + 0x31], 0x6e
je case.0x554503.162
jmp 0x555ef5
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 0x55491b
mov ecx, dword ds:[eax + 0x20]
inc edi
cmp edi, ecx
ja 0x555fee
mov eax, dword [ebp - 8]
jmp 0x555e70
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
nop
cmp ecx, dword [esi + 0x6c]
ja 0x555f2f
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
nop
jmp case.0x554503.162
cmp ecx, 1
jb 0x555fee
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x555fb7
mov ebx, dword [ebp - 8]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x555f82
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je case.0x554503.162
nop
jmp 0x555fa6
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 0x55491b
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x555ff1
mov eax, dword [ebp - 8]
jmp 0x555f50
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
cmp ecx, dword [esi + 0x6c]
ja 0x555fd8
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
jmp case.0x554503.162
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x24]
cmp ecx, ebx
je 0x5544d9
cmp dword [ebp - 0x14], 0
je 0x55edba
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 0x556115
lea ecx, [ecx]
cmp eax, ebx
jae 0x556110
jmp 0x556030
mov esi, dword ds:[ebp + 0x18]
mov dword [ebp - 0x10], ebx
mov ebx, 1
cmp edi, dword [esi + 0x64]
jae 0x5560eb
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556079
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 0x5560b7
cmp byte [eax + 0x31], 0x6e
jne 0x5560d1
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x5544e0
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55f32a
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 0x556096
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 0x556030
jmp 0x556096
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x556099
cmp edi, dword [esi + 0x6c]
ja 0x556102
cmp dword ds:[esi + 0x34], 0
je 0x556099
mov dword [esi + 0x2c], ebx
cmp ecx, 1
ja 0x55475f
jmp 0x556099
mov esi, dword [ebp + 0x18]
jmp 0x55609c
cmp eax, ebx
jae 0x5561d7
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp edi, dword [esi + 0x64]
jae 0x5561ab
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x556177
cmp byte ds:[ecx + 0x31], 0x6e
jne 0x556197
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x5544e0
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x554503.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x18
jmp 0x55f32a
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 0x556146
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 0x556120
jmp 0x556146
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x556149
cmp edi, dword [esi + 0x6c]
ja 0x5561c2
cmp dword ds:[esi + 0x34], 0
je 0x556149
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp 0x556149
mov esi, dword [ebp + 0x18]
jmp 0x55614c
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.0x556210
movzx eax, byte [eax + 0x55f768]
jmp dword [eax*4 + 0x55f760]
mov ecx, dword [esi*4 + 0x5d89cc]
lea eax, ds:[edx + 2]
mov dword [ebx], eax
lea edi, [ebx + 0x20]
mov eax, dword [esi*4 + 0x5d89a0]
mov dword [edi], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esi*4 + 0x5d8970]
mov dword [ebp - 0x14], eax
jmp 0x556277
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 0x556265
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d8970]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov esi, 1
cmp ecx, esi
jae 0x556369
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x24]
cmp ecx, eax
je 0x5544d9
cmp dword ds:[ebp - 0x14], 0
je 0x55d46d
mov edx, dword [edi + 0x38]
mov dword [edi + 4], edx
mov edi, dword [edi + 0x20]
cmp edi, eax
jae 0x556332
mov eax, dword [ebp - 8]
lea ebx, [ebx]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x5563f4
cmp dword [ebp - 0xc], 0
movzx ecx, word [edx]
je 0x55630f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55630c
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.0057bb20
test eax, eax
je 0x556332
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 0x5562c0
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x5544dc
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55f32a
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 0x55642e
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x5563d0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5563cd
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.0057bb20
jmp 0x5563e0
test eax, eax
je 0x55645b
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x556370
jmp 0x55628b
mov esi, dword ds:[ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x556335
cmp edx, dword [esi + 0x6c]
ja 0x556418
cmp dword [esi + 0x34], 0
je 0x556335
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp 0x556335
mov esi, ebx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55645b
nop
cmp edx, dword [esi + 0x6c]
ja 0x55644b
cmp dword [esi + 0x34], 0
je 0x55645b
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x55c123
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x5564ae
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
cmp edx, dword [esi + 0x6c]
ja 0x556498
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5564fe
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5564fe
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 0x556501
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x556e09
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.default.0x556e09
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55656e
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
cmp edx, dword [esi + 0x6c]
ja 0x556558
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5565be
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5565be
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 0x5565c1
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x55c8c9.999
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.0x55c8c9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x5544e0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556631
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
cmp edx, dword [esi + 0x6c]
ja 0x55661c
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55667e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55667e
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 0x556681
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x556e09
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 1
je case.default.0x556e09
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x5566f1
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
cmp edx, dword [esi + 0x6c]
ja 0x5566dc
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556745
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556745
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 0x556748
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x55c8c9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 1
je case.0x55c8c9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x5544e0
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x5567ce
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
jmp 0x5567a0
cmp edx, dword [esi + 0x6c]
ja 0x5567b3
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556825
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556825
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 0x556828
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x556e09
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x556e09
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x5568ae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
jmp 0x556880
cmp edx, dword [esi + 0x6c]
ja 0x556893
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556905
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556905
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 0x556908
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x55c8c9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.0x55c8c9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x5544e0
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x55698e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
jmp 0x556960
cmp edx, dword [esi + 0x6c]
ja 0x556973
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.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 0x5569dc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5569dc
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 0x556a7e
je case.0x556a00.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c8c9.999
mov edi, edi
jmp dword [ecx*4 + 0x55f774]
mov edx, dword [ebp + 0x18]
cmp esi, dword [edx + 0x64]
jb 0x556a5b
movzx eax, word ds:[edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x556a6f
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x556a3e
cmp dword [esi + 0x34], 0
je case.0x556bf2.8203
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x5544e0
cmp word ds:[esi], 0xa
jne 0x556a6f
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 0x5544e0
mov edi, edi
sub ecx, 0x2028
je case.0x556a00.11
sub ecx, 1
je case.0x556a00.11
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov esi, dword [ebp + 0x18]
cmp word [esi + 0x4e], 2
jne case.0x556bf2.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov eax, dword [ebp - 8]
mov edx, ebx
mov esi, dword [ebp + 0x18]
add dword [eax], 2
jmp 0x5544e0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556b12
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
cmp edx, dword [esi + 0x6c]
ja 0x556afd
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556b5c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556b5c
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 0x556bca
je case.0x55c8c9.999
cmp ecx, 0xa0
ja 0x556ba5
mov edi, edi
je case.0x55c8c9.999
cmp ecx, 9
je case.0x55c8c9.999
cmp ecx, 0x20
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x5544e0
cmp ecx, 0x1680
je case.0x55c8c9.999
cmp ecx, 0x180e
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x5544e0
cmp ecx, 0x3000
ja case.0x556bf2.8203
je case.0x55c8c9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x556bf2.8203
movzx eax, byte [ecx + 0x55f78c]
jmp dword [eax*4 + 0x55f784]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556c4e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
jmp 0x556c20
cmp edx, dword [esi + 0x6c]
ja 0x556c33
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556c9c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556c9c
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 0x556d0a
je case.0x556bf2.8203
cmp ecx, 0xa0
ja 0x556ce5
mov edi, edi
je case.0x556bf2.8203
cmp ecx, 9
je case.0x556bf2.8203
cmp ecx, 0x20
je case.0x556bf2.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x1680
je case.0x556bf2.8203
cmp ecx, 0x180e
je case.0x556bf2.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x3000
ja case.0x55c8c9.999
je case.0x556bf2.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55c8c9.999
movzx eax, byte [ecx + 0x55f7f4]
jmp dword [eax*4 + 0x55f7ec]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556d8e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
jmp 0x556d60
cmp edx, dword [esi + 0x6c]
ja 0x556d73
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556de5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556de5
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 0x556de8
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x556e10
je case.0x55c8c9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x556e09
jmp dword [ecx*4 + 0x55f854]
sub ecx, 0x2028
je case.0x55c8c9.999
lea esp, [esp]
sub ecx, 1
je case.0x55c8c9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x5544e0
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x556e8e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
jmp 0x556e60
cmp edx, dword [esi + 0x6c]
ja 0x556e73
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x556ee5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556ee5
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 0x556ee8
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x556f10
je case.default.0x556e09
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c8c9.999
jmp dword [ecx*4 + 0x55f864]
sub ecx, 0x2028
je case.default.0x556e09
lea esp, [esp]
sub ecx, 1
je case.default.0x556e09
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x556f8e
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
jmp 0x556f60
cmp ecx, dword [esi + 0x6c]
ja 0x556f73
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
jmp case.0x554503.162
movzx edx, word ds:[ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], ecx
je 0x556fda
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556fda
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 + 0x5f0bc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
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.0x55d009.15
jmp dword [eax*4 + 0x55f874]
cmp cl, 0xf
mov edi, edi
je case.0x554503.162
mov eax, dword [ebp - 8]
add dword [eax], 6
jmp 0x5544d9
mov al, byte [esi*4 + 0x5d9db1]
jmp 0x557040
cmp al, 9
je 0x55705f
cmp al, 5
je 0x55705f
cmp al, 8
je 0x55705f
xor eax, eax
jmp 0x557064
mov eax, 1
cmp eax, ebx
jne 0x557026
jmp case.0x554503.162
movzx ecx, byte [esi*4 + 0x5d9db1]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x5f5060]
sete dl
cmp edx, ebx
jne 0x557026
jmp case.0x554503.162
movzx eax, byte [esi*4 + 0x5d9db1]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x557026
jmp case.0x554503.162
movzx eax, byte [esi*4 + 0x5d9db0]
jmp 0x557096
movzx ecx, word ds:[edi + 4]
movzx eax, byte [esi*4 + 0x5d9db0]
cmp cx, ax
je 0x55705f
movzx edx, word [esi*4 + 0x5d9db8]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x5570f1
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5d9520], eax
jne 0x55705f
xor eax, eax
jmp 0x557064
movzx eax, byte [esi*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x55705f
cmp eax, 3
je 0x55705f
xor eax, eax
jmp 0x557064
lea esp, [esp]
cmp edx, 0x20
ja 0x557167
je case.0x557014.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x5571ed.8203
jmp 0x557160
jmp dword [edx*4 + 0x55f8ac]
cmp edx, 0x2000
ja 0x5571cd
je case.0x557014.0
lea esp, [esp]
cmp edx, 0x1680
ja 0x5571c5
je case.0x557014.0
sub edx, 0x85
je case.0x557014.0
sub edx, 0x1b
je case.0x557014.0
movzx eax, byte [esi*4 + 0x5d9db1]
xor ecx, ecx
cmp dword [eax*4 + 0x5f5060], 6
sete cl
cmp ecx, ebx
jmp 0x55701e
cmp edx, 0x180e
jmp 0x5571a1
cmp edx, 0x3000
ja case.0x5571ed.8203
je case.0x557014.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x5571ed.8203
movzx eax, byte [edx + 0x55f8c8]
jmp dword [eax*4 + 0x55f8c0]
movzx eax, byte [esi*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x557227
cmp eax, 3
je 0x557227
cmp edx, 0x5f
je 0x557227
xor eax, eax
cmp eax, ebx
jmp 0x55701e
mov eax, 1
cmp eax, ebx
jmp 0x55701e
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x5d9360]
lea eax, [eax*4 + 0x5d9360]
cmp edx, ecx
jb 0x557264
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x557273
mov ecx, dword ds:[eax]
cmp edx, ecx
jae 0x557250
cmp byte [ebp - 1], 0xf
je 0x557026
jmp case.0x554503.162
cmp byte [ebp - 1], 0xf
jmp 0x55701e
lea esp, [esp]
cmp edx, 0x24
je 0x557227
cmp edx, 0x40
je 0x557227
cmp edx, 0x60
je 0x557227
cmp edx, 0xa0
jb 0x5572ac
jmp 0x5572a0
cmp edx, 0xd7ff
jbe 0x557227
cmp edx, 0xe000
jae 0x557227
xor eax, eax
cmp eax, ebx
jmp 0x55701e
mov ax, word [esi*4 + 0x5d9db8]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
sete cl
cmp ecx, ebx
jmp 0x55701e
movzx ecx, word ds:[edi + 4]
movzx edx, word [esi*4 + 0x5d9dba]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x557311
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5d9820]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x55701e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x557374
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
cmp edx, dword [esi + 0x6c]
ja 0x55735f
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.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 0x5573be
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5573be
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.0057c5c0
mov ecx, dword ds:[ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb case.0x556bf2.8203
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je case.0x556bf2.8203
jmp 0x557400
cmp eax, dword [esi + 0x6c]
ja 0x557413
cmp dword [esi + 0x34], 0
je case.0x556bf2.8203
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x5544e0
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 0x55752a
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 0x557527
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 0x557527
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 0x557527
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 0x557527
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 0x557527
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 8]
mov eax, dword [ecx*4 + 0x5d8a00]
mov dword [edx], edi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5d89d4]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d89a4]
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 0x557551
mov edi, edi
cmp ebx, 0xf
je 0x557551
or edx, 0xffffffff
jmp 0x557569
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 0x55857c
test edx, edx
js 0x5581b5
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [ebp - 0x10], eax
cmp edx, 0xd
ja case.0x55d009.15
jmp dword [edx*4 + 0x55f928]
lea ebx, [ebx]
cmp ebx, 0xf
je case.0x554503.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 0x557605
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], ecx
je 0x5575f5
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5575f5
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x5575b1
mov eax, dword ds:[ebp - 8]
jmp 0x55857f
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
cmp ecx, dword [esi + 0x6c]
ja 0x557627
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
jmp case.0x554503.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 0x557716
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5576a5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5576a5
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 0x5576a8
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d9db1]
cmp al, 9
je 0x5576ef
cmp al, 5
je 0x5576ef
nop
cmp al, 8
je 0x5576ef
xor eax, eax
jmp 0x5576f4
mov eax, 1
cmp eax, edi
je case.0x55c8c9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x557647
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558582
mov esi, ecx
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55c8c9.999
cmp edx, dword [esi + 0x6c]
ja 0x55773c
cmp dword [esi + 0x34], 0
je case.0x55c8c9.999
mov dword [esi + 0x2c], 1
jmp 0x5548da
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 0x557716
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5577b2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5577b2
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 0x5577b5
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c8c9.999
inc esi
cmp esi, edi
jbe 0x557750
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558582
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 0x557716
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557873
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557873
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 0x557876
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c8c9.999
inc esi
cmp esi, edi
jbe 0x557813
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558582
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 0x557716
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557933
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557933
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 0x557936
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db0]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c8c9.999
inc esi
cmp esi, edi
jbe 0x5578d0
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558582
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 0x557716
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5579ee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5579ee
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d9db0]
cmp eax, ecx
je 0x557a5b
movzx edx, word [edx*4 + 0x5d9db8]
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 + 0x5d9520], eax
jne 0x557a5b
xor eax, eax
jmp 0x557a60
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x557a7f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557990
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x558582
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x55c126
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 0x557716
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557af3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557af3
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 0x557af6
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x557b3e
cmp eax, 3
je 0x557b3e
xor eax, eax
jmp 0x557b43
mov eax, 1
cmp eax, edi
je case.0x55c8c9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x557a94
mov eax, dword ds:[ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558582
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 0x557cbb
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x557bce
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557bce
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 0x557bf0
je case.0x557caf.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x557caf.8203
jmp dword [eax*4 + 0x55f960]
cmp ecx, 0x2000
ja 0x557c8f
lea esp, [esp]
je case.0x557caf.8193
cmp ecx, 0x1680
ja 0x557c87
je case.0x557caf.8193
mov eax, ecx
sub eax, 0x85
je case.0x557caf.8193
sub eax, 0x1b
je case.0x557caf.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
cmp dword [eax*4 + 0x5f5060], 6
sete cl
cmp ecx, dword [ebp - 0x10]
je 0x557cef
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557b70
mov esi, dword [ebp + 0x18]
jmp 0x558582
cmp ecx, 0x180e
jmp 0x557c2e
cmp ecx, 0x3000
ja case.0x557caf.8203
je case.0x557caf.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x557caf.8203
movzx eax, byte [eax + 0x55f97c]
jmp dword [eax*4 + 0x55f974]
cmp ebx, 0xf
jmp 0x557c6c
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x557cef
cmp edx, dword [esi + 0x6c]
ja 0x557cdf
cmp dword [esi + 0x34], 0
je 0x557cef
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x55c126
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 0x557de9
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x557d6e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557d6e
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 + 0x5f0bc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x557dc5
cmp eax, 3
je 0x557dc5
cmp edx, 0x5f
je 0x557dc5
xor eax, eax
jmp 0x557dca
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x557a7f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557d10
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x558582
mov esi, edx
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x55c8c9.999
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x557e13
cmp dword [esi + 0x34], 0
je case.0x55c8c9.999
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
jmp 0x5548dd
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 0x557ef0
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x557e91
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557e8e
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 + 0x5d9360]
lea eax, [eax*4 + 0x5d9360]
cmp ecx, edx
jb 0x557ec4
lea ebx, [ebx]
lea eax, [eax + 4]
cmp ecx, edx
je 0x557ee5
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x557eb0
cmp ebx, 0xf
jne 0x557cef
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557e30
mov esi, dword ds:[ebp + 0x18]
jmp 0x558582
cmp ebx, 0xf
je 0x557cef
jmp 0x557ecd
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x557cef
cmp edx, dword [esi + 0x6c]
ja 0x557f1c
cmp dword [esi + 0x34], 0
je 0x557cef
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x55c126
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 0x557716
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x557f9d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557f9d
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 0x557ff3
cmp ecx, 0x40
je 0x557ff3
cmp ecx, 0x60
je 0x557ff3
jmp 0x557fc0
cmp ecx, 0xa0
jb 0x557fd8
cmp ecx, 0xd7ff
jbe 0x557ff3
jmp 0x557fe0
cmp ecx, 0xe000
jae 0x557ff3
xor eax, eax
jmp 0x557ff8
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x557a7f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x557f46
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x558582
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 0x557716
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x558085
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x558085
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 0x558088
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d9db8]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x55c8c9.999
inc esi
cmp esi, edi
jbe 0x558022
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558582
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 0x557de9
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x558141
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55813e
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 + 0x5f0bc0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d9dba]
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 + 0x5d9820]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x10]
je case.0x55c8c9.999
inc esi
cmp esi, edi
jbe 0x5580e7
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x558582
cmp ebx, 0x16
jne 0x5582a5
mov esi, dword [ebp + 0x18]
lea edi, [ebx - 0x15]
mov ebx, dword [ebp - 0xc]
jmp 0x5581d0
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test ebx, ebx
je 0x55822d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55822d
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.0057c5c0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x55828c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x55828c
cmp eax, dword [esi + 0x6c]
ja 0x55827c
cmp dword [esi + 0x34], 0
je 0x55828c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x5581d0
mov edi, ebx
jmp 0x558582
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x55d009.15
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x558e74
lea esp, [esp]
jmp dword [eax*4 + 0x55f9dc]
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 0x5544dc
cmp dword ds:[ebp - 0x14], 0
mov edx, dword [ebp - 0x1c]
je 0x55edd1
mov esi, dword [eax + 0x38]
mov dword [eax + 4], esi
mov edi, dword [eax + 0x28]
mov dword [ebp - 0x44], edi
test edx, edx
js 0x55a417
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x1c], eax
cmp edx, 0xd
ja case.0x55d009.15
jmp dword [edx*4 + 0x55fa2c]
jmp dword [eax*4 + 0x55fb54]
cmp ecx, ebx
jae 0x559846
mov edx, dword [ebp - 0x10]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov ecx, 1
cmp esi, dword [eax + 0x64]
jae 0x55985e
cmp dword [ebp - 0xc], 0
je 0x55982f
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [ebp - 0x40]
mov eax, 2
cmove ecx, eax
cmp edi, 0xf
je 0x559846
mov eax, dword [ebp - 8]
lea esi, [esi + ecx*2]
inc edx
mov dword [eax + 0x38], esi
cmp edx, ebx
jb 0x559800
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x5544e0
jmp 0x55e85d
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x559846
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x559886
cmp dword ds:[esi + 0x34], 0
je 0x559896
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
mov edi, dword [ebp - 8]
jmp 0x55984c
cmp ecx, ebx
jae 0x559846
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 0x18]
jmp 0x5598b0
mov edx, 1
cmp esi, dword [edi + 0x64]
jae 0x559970
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5598fc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5598fc
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d9db1]
cmp al, 9
je 0x559945
cmp al, 5
je 0x559945
cmp al, 8
je 0x559945
xor eax, eax
jmp 0x55994a
mov eax, 1
cmp eax, ebx
je 0x559846
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 0x5598b0
jmp 0x559846
movzx eax, word [edi + 0x4c]
mov ecx, eax
test ax, ax
je 0x559846
cmp esi, dword [edi + 0x6c]
mov esi, edi
ja 0x559994
cmp dword [esi + 0x34], 0
je 0x559896
mov dword [esi + 0x2c], edx
jmp 0x5599a0
cmp ecx, 1
ja 0x55475f
mov edi, dword [ebp - 8]
jmp 0x55984c
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x559849
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x559a6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559a0f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559a0f
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x559846
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 0x5599c0
jmp 0x559846
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x559846
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
jmp 0x559984
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x559849
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x559a6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559aea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559aea
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x559846
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 0x559a94
mov edi, edi
jmp 0x559846
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x559849
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x559a6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559baa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559baa
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db0]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x559846
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 0x559b50
mov edi, edi
jmp 0x559846
cmp ecx, ebx
jae 0x559846
mov ebx, dword [ebp - 0x1c]
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x559d0e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559c6a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559c6a
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d9db0]
cmp eax, ecx
je 0x559cdb
movzx edx, word [edx*4 + 0x5d9db8]
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 + 0x5d9520], eax
jne 0x559cdb
xor eax, eax
jmp 0x559ce0
mov eax, 1
cmp eax, ebx
je 0x559846
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 0x559c10
jmp 0x559849
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x55a40d
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x559d32
cmp dword [esi + 0x34], 0
je 0x559896
mov dword [esi + 0x2c], edi
jmp 0x559997
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x559849
mov ebx, dword [ebp - 0x1c]
jmp 0x559d50
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x559e25
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559daa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559daa
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x559df9
cmp eax, 3
je 0x559df9
xor eax, eax
jmp 0x559dfe
mov eax, 1
mov edi, edi
cmp eax, ebx
je 0x559849
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 0x559d50
mov edi, edi
jmp 0x559849
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x559849
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x559e50
cmp dword [esi + 0x34], 0
je 0x55984c
mov dword [esi + 0x2c], edx
cmp ecx, 1
ja 0x55475f
lea esp, [esp]
jmp 0x55984c
cmp ecx, ebx
jae 0x559846
mov ebx, dword [ebp - 0x1c]
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x559a6d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x559eca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x559eca
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 0x559ef0
je case.0x559fc4.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x559fc4.8203
jmp dword [eax*4 + 0x55fc94]
cmp ecx, 0x2000
ja 0x559f9a
lea esp, [esp]
je case.0x559fc4.8193
cmp ecx, 0x1680
ja 0x559f92
je case.0x559fc4.8193
mov eax, ecx
sub eax, 0x85
je case.0x559fc4.8193
sub eax, 0x1b
je case.0x559fc4.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
cmp dword [eax*4 + 0x5f5060], 6
sete cl
cmp ecx, ebx
je 0x559846
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 0x559e70
jmp 0x559846
cmp ecx, 0x180e
jmp 0x559f2e
lea ebx, [ebx]
cmp ecx, 0x3000
ja case.0x559fc4.8203
je case.0x559fc4.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x559fc4.8203
movzx eax, byte [eax + 0x55fcb0]
jmp dword [eax*4 + 0x55fca8]
cmp edi, 0xf
jmp 0x559f6b
cmp ecx, ebx
jae 0x559846
mov ebx, dword [ebp - 0x1c]
jmp 0x559fe0
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x559d0e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x55a02f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a02f
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 + 0x5f0bc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x55a085
cmp eax, 3
je 0x55a085
cmp edx, 0x5f
je 0x55a085
xor eax, eax
jmp 0x55a08a
mov eax, 1
cmp eax, ebx
je 0x559846
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 0x559fe0
jmp 0x559849
cmp ecx, ebx
jae 0x559846
mov ebx, dword [ebp - 0x44]
jmp 0x55a0c0
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x559d0e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55a10f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a10f
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 + 0x5d9360]
lea eax, [eax*4 + 0x5d9360]
cmp ecx, edx
jb 0x55a144
jmp 0x55a130
lea eax, [eax + 4]
cmp ecx, edx
je 0x55a16e
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x55a130
cmp ebx, 0xf
jne 0x559846
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 0x55a0c0
jmp 0x559849
cmp ebx, 0xf
je 0x559846
jmp 0x55a14d
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x559849
mov ebx, dword [ebp - 0x1c]
jmp 0x55a190
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x559e25
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55a1ea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a1ea
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 0x55a23f
cmp ecx, 0x40
je 0x55a23f
lea esp, [esp]
cmp ecx, 0x60
je 0x55a23f
cmp ecx, 0xa0
jb 0x55a22c
jmp 0x55a220
cmp ecx, 0xd7ff
jbe 0x55a23f
cmp ecx, 0xe000
jae 0x55a23f
xor eax, eax
jmp 0x55a244
mov eax, 1
cmp eax, ebx
je 0x559849
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 0x55a190
jmp 0x559849
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x559849
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x559e25
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55a2cf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a2cf
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d9db8]
shr eax, 0xb
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x559849
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 0x55a280
jmp 0x559849
cmp ecx, ebx
jae 0x559846
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x559d0e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x55a38a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a38a
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 + 0x5f0bc0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d9dba]
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 + 0x5d9820]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x1c]
je 0x559846
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 0x55a335
jmp 0x559849
mov edi, dword [ebp - 8]
mov esi, edx
jmp 0x55984c
jmp 0x55a420
cmp edi, 0x16
jne 0x55a55c
cmp ecx, ebx
jb 0x55a453
mov esi, dword [ebp + 0x18]
cmp dword ds:[ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x5544e0
jmp 0x55ed3d
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x55a525
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55a4b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a4b3
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.0057c5c0
mov esi, dword [ebp - 8]
mov dword [esi + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x55a50c
movzx ecx, word ds:[ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x55a50c
cmp eax, dword [ebx + 0x6c]
ja 0x55a4fc
cmp dword [ebx + 0x34], 0
je 0x55a50c
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x24]
jb 0x55a450
mov esi, ebx
jmp 0x55a434
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55a434
cmp edx, dword [esi + 0x6c]
ja 0x55a547
cmp dword [esi + 0x34], 0
je 0x55a434
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp 0x55a434
lea eax, ds:[edi - 6]
cmp eax, 0xf
ja case.0x55d009.15
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x55aef0
jmp dword [eax*4 + 0x55fd10]
jmp dword [eax*4 + 0x55fdc8]
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 0x55b8e8
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 0x55b8b4
cmp dword [edi + eax*4 + 0x54], 0xffffffff
jne 0x55b8e8
movzx eax, word [esi + 0x52]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x55b890
nop
jmp 0x55b8e8
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.0x55b900
movzx eax, byte [eax + 0x55ff00]
jmp dword [eax*4 + 0x55fef8]
mov edx, dword [ecx*4 + 0x5d89cc]
lea eax, [esi + 2]
mov ebx, dword [ecx*4 + 0x5d8970]
mov dword [edi], eax
mov eax, dword [ecx*4 + 0x5d89a0]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov dword [ebp - 0x14], ebx
jmp 0x55b95e
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 + 0x5d8970]
mov dword [ebp - 0x14], eax
test ecx, ecx
jne 0x55b959
mov dword [edi + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [edi], eax
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x50]
jae 0x55b98f
mov ecx, dword [edi + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x55b98f
mov esi, dword ds:[ebp + 0x18]
cmp ecx, dword [edi + eax*4 + 0x58]
je 0x5544dc
jmp 0x55b9aa
mov esi, dword [ebp + 0x18]
test edx, edx
je 0x5544dc
test dword [esi + 0x8c], 0x200
jne 0x5544dc
mov esi, 1
cmp edx, esi
jb 0x55b9e4
mov edx, dword [edi + 0x28]
lea eax, [ebp - 0x48]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.005540e0
test eax, eax
jne 0x55ba6a
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 0x55b9b7
mov ebx, dword [edi + 0x24]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
je 0x554850
cmp dword [ebp - 0x14], 0
je 0x55eebc
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 0x55bb11
mov ebx, dword [ebp - 8]
jmp 0x55ba30
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.005540e0
test eax, eax
jne 0x55bace
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 0x55ba30
jmp 0x55bb09
mov esi, dword [ebp + 0x18]
jle 0x55ba79
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x554503.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
jmp 0x55baa0
cmp ecx, dword [esi + 0x6c]
ja 0x55bab3
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
jmp case.0x554503.162
jle 0x55bb09
mov edx, dword ds:[ebp + 0x18]
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x55bb09
mov eax, dword [edx + 0x64]
cmp eax, dword [edx + 0x6c]
jbe 0x55bb09
mov dword ds:[edx + 0x2c], 1
cmp ecx, 1
ja 0x55475f
test esi, esi
je 0x55ee13
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x554503.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x15
jmp 0x55f32a
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.005540e0
test eax, eax
je 0x55bbae
jle 0x55bb5f
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x554503.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x55bb93
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
jmp case.0x554503.162
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [edi + 0x38], eax
jmp 0x5544dc
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 0x55bbc3
add eax, 4
mov dword [ecx], eax
jmp 0x5544e0
cmp dword [esi + 0x30], 0
jne 0x55bbf5
mov edx, dword [ebp - 8]
cmp dword [edx + 0x18], 0
jne 0x55c7c3
xor ecx, ecx
jmp 0x55f104
mov ebx, dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
mov edx, esi
mov ecx, ebx
call fcn.00553fe0
mov esi, eax
test esi, esi
jg case.0x554503.162
js 0x55c11d
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x5544d9
movzx eax, word [edi + 2]
mov ebx, dword [ebp - 8]
mov dword [ebx + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x55bc43
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
add edi, 4
mov dword [ebx], edi
movzx eax, word [edi]
cmp eax, 0x76
je 0x55bc5d
cmp eax, 0x77
jne 0x55bc89
lea eax, [ebp - 0x28]
mov edx, esi
push eax
mov ecx, ebx
call fcn.00553fe0
mov esi, eax
test esi, esi
jg case.0x554503.162
js 0x55c11d
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.0x55bca2.150
movzx eax, byte [eax + 0x55ff24]
jmp dword [eax*4 + 0x55ff08]
mov ecx, dword [ebx + 0x44]
cmp ecx, 0xffffffff
je case.0x55bca2.148
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
cmp eax, 0xffff
je 0x55ebe8
cmp eax, ecx
je 0x55ebe8
jmp 0x55bdfd
mov ebx, dword ds:[ebx + 0x44]
cmp ebx, 0xffffffff
je case.0x55bca2.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.0x55bca2.148
lea esp, [esp]
movzx eax, word [ecx]
dec edx
cmp eax, ebx
je 0x55bd45
lea ecx, ds:[ecx + esi*2]
test edx, edx
jg 0x55bd10
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 0x55bdfd
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 + 0x5f50e0]
jmp 0x55be02
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
lea eax, [eax*2 - 2]
cmp eax, dword [edi + 0x50]
jae 0x55bdfd
cmp dword [edi + eax*4 + 0x54], 0xffffffff
je 0x55bdfd
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f50e0]
jmp 0x55be02
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.0x55bca2.148
mov edi, dword [ebx + 0x50]
jmp 0x55bdd0
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x55bdf3
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne case.0x55bca2.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x55bdd0
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 0x5544d9
mov edx, 0x2008f
mov byte [eax + 0x30], 0x23
mov dword [ebp - 0x20], edx
jmp 0x55f32a
cmp dword [ebp - 0xc], 0
movzx edx, word [edi + 2]
mov ebx, dword [ebp - 8]
je 0x55be79
test edx, edx
je 0x55be93
mov edi, 0xfc00
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [esi + 0x60]
jbe case.0x554503.162
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [ebp - 0x2c]
jne 0x55be70
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x55be43
jmp 0x55be93
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jg case.0x554503.162
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x6c]
jae 0x55bea2
mov dword [esi + 0x6c], eax
add dword [ebx], 4
jmp 0x5544dc
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.0x554503.120
jmp 0x5544e0
movzx eax, word ds:[edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x55bf5f
mov ecx, 0x8a
cmp ax, cx
je 0x55bf5f
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 0x55bf67
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.00582850
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 0x55c11d
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.0x55bf80.132
movzx eax, byte [eax + 0x55ff54]
lea ecx, [ecx]
jmp dword [eax*4 + 0x55ff38]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x55bf99
mov dword [ecx + 0x70], eax
mov eax, dword ds:[esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x55bf80.132
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x55bfb7
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.0x55bf80.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 0x55bfd7
jmp case.0x55bf80.132
mov ecx, dword [esi + 0x38]
push edx
mov edx, dword [ebx + 0x38]
call fcn.0057c160
jmp 0x55c000
test eax, eax
jne case.0x55bf80.132
jmp case.0x554503.162
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x55c054
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.00582850
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 0x5544d9
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.0x55bf80.132
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x55c0b5
push dword [ebp - 0x3c]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00582850
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x55c11d
mov cl, byte ds:[ebx + 0x31]
cmp cl, 0x79
je 0x55c0dd
test esi, esi
je 0x55ee7d
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x55ee7d
mov edi, dword [ebp - 8]
add dword [edi], 4
jmp 0x5544d9
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
jne case.0x554503.162
test byte ds:[esi + 0x88], 1
jne case.0x554503.162
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x5544e0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
je 0x55c106
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 0x55c135
mov dword [edx + 0x70], eax
mov edi, dword ds:[ebp - 8]
cmp dword [edi + 0x18], 0
je 0x55f503
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.0x55d009.15
movzx eax, byte [eax + 0x560060]
jmp dword [eax*4 + 0x55ff68]
test byte [esi + 0x88], 2
jne case.0x554503.162
test byte [esi + 0x8c], 0x10
je case.0x554503.23
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x38]
cmp eax, dword [esi + 0x64]
jb case.0x554503.162
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55c1b9
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
add dword ds:[edx], 2
jmp 0x5544dc
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x55c2c5
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
lea edi, [eax + 0x9c]
test edx, edx
je 0x55c20d
push dword [ebp - 0xc]
push edi
push esi
call fcn.0057b860
mov esi, dword ds:[ebp + 0x18]
test eax, eax
je 0x55c274
jmp 0x55c253
mov edx, dword [edi]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [ebp + 0x18]
ja 0x55c26e
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x55c26e
cmp edx, 1
je 0x55c253
mov ax, word ds:[ecx + 2]
cmp ax, word [esi + 0xa2]
jne 0x55c26e
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 0x55c2c8
jmp 0x55c274
lea edi, [esi + 0x9c]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x554503.162
cmp dword ds:[esi + 0x98], 0
jne case.0x554503.162
cmp dword [edi], 2
jne case.0x554503.162
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x554503.162
nop
jmp 0x555f2f
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55c2e9
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
add dword [ebx], 2
jmp 0x5544dc
test byte ds:[esi + 0x88], 1
mov ebx, dword [ebp - 8]
je 0x55c312
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x5c]
je case.0x554503.162
mov ecx, dword ds:[ebx + 0x38]
mov esi, dword [esi + 0x5c]
cmp ecx, esi
je 0x55c388
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jne 0x55c346
test dword ds:[eax + 0x8c], 0x200000
je case.0x554503.162
mov edx, dword [eax + 0x98]
test edx, edx
je 0x55c393
cmp ecx, esi
jbe 0x55c37d
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.0057b940
test eax, eax
je 0x55c37d
mov eax, 1
jmp 0x55c37f
xor eax, eax
nop
test eax, eax
je case.0x554503.162
mov esi, dword [ebp + 0x18]
add dword [ebx], 2
jmp 0x5544dc
mov edi, dword ds:[eax + 0x9c]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ecx, eax
jb case.0x554503.162
mov esi, dword [ebp + 0x18]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x554503.162
lea ecx, [ecx]
cmp edi, 1
je 0x55c38b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x55c38b
jmp case.0x554503.162
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x55c492
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x55c452
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.0057b860
test eax, eax
jne 0x55c388
mov esi, dword [ebp + 0x18]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x554503.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x554503.162
cmp dword ds:[esi + 0x98], 0
jne case.0x554503.162
cmp dword [esi + 0x9c], 2
jmp 0x55c2a9
mov edx, dword ds:[eax + 0x9c]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
ja 0x55c410
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x55c413
cmp edx, 1
je 0x55c38b
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x55c38b
jmp 0x55c413
mov esi, dword ds:[ebp + 0x18]
test byte [esi + 0x88], 2
jne case.0x554503.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x55c38b
cmp ecx, dword [esi + 0x6c]
ja 0x55c4c8
cmp dword [esi + 0x34], 0
je 0x55c38b
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
add dword ds:[ebx], 2
jmp 0x5544dc
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 0x55c119
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x5544e0
mov ebx, dword [ebp - 8]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x60]
je 0x55c616
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x55c574
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55c545
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c574
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 0x55c580
mov dword [esi + 0x6c], edx
test dword [esi + 0x8c], 0x20000
je 0x55c5f3
cmp ecx, 0x5f
jne 0x55c5a5
lea edi, ds:[ecx - 0x5e]
jmp 0x55c618
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x55c5e9
lea ecx, [ecx]
cmp eax, 3
jne 0x55c616
mov edi, 1
jmp 0x55c618
cmp ecx, 0xff
ja 0x55c616
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je 0x55c616
mov edi, 1
jmp 0x55c618
xor edi, edi
mov ecx, dword ds:[ebx + 0x38]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jb 0x55c69c
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x55c669
jmp 0x55c640
cmp ecx, dword [esi + 0x6c]
ja 0x55c653
cmp dword [esi + 0x34], 0
je 0x55c669
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
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 0x55c68c
xor edx, 1
test edx, edx
mov edx, dword [ebp - 0xc]
je 0x5544e0
jmp case.0x554503.162
cmp dword [ebp - 0xc], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x55c709
cmp edx, eax
jae 0x55c6cd
mov ax, word ds:[edx]
and ax, word [ebp - 0x34]
cmp ax, word [ebp - 0x2c]
jne 0x55c6cd
add edx, 2
movzx ecx, word ds:[ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c70c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x55c70c
movzx ecx, word [ecx]
mov esi, dword [ebp + 0x18]
cmp edx, dword [esi + 0x70]
jbe 0x55c71b
mov dword [esi + 0x70], edx
test dword [esi + 0x8c], 0x20000
je 0x55c787
cmp ecx, 0x5f
jne 0x55c73c
lea edx, [ecx - 0x5e]
jmp 0x55c66b
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x55c77d
cmp eax, 3
jne 0x55c669
mov edx, 1
jmp 0x55c66b
cmp ecx, 0xff
ja 0x55c669
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je 0x55c669
mov edx, 1
jmp 0x55c66b
test esi, esi
jne case.0x55c172.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 + 0x5f50e0]
movzx eax, al
je 0x55ee9e
lea eax, [edi + eax*2]
mov dword [edx], eax
jmp 0x5544dc
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x55c825
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x55c8c9.998
cmp word [ecx], 0x78
je 0x55c82d
cmp word ds:[eax], 0x78
jmp 0x55c827
test esi, esi
jne case.0x55c8c9.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 0x55f10c
xor esi, esi
mov eax, ecx
jmp 0x55c126
cmp esi, 0xfffffc19
je 0x55eb18
jmp 0x55c860
test esi, esi
je 0x55c877
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne case.0x55c8c9.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 0x55f1eb
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, ecx
jmp 0x55c126
jmp 0x55c8a0
test esi, esi
jg 0x55c8d0
je case.0x55c8c9.993
mov edx, dword ds:[ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x55c8c9.998
jmp dword [eax*4 + 0x560144]
mov edx, dword ds:[ebp + 0x18]
mov eax, esi
sub eax, 1
mov eax, dword [ebp - 8]
jne 0x55c126
xor esi, esi
jmp 0x55c126
test esi, esi
jg 0x55c914
je case.0x55c90d.993
mov edx, dword [ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x55c8c9.998
jmp dword [eax*4 + 0x560160]
mov eax, esi
sub eax, 1
jne case.0x55c172.35
mov eax, dword [edi + 0x20]
test eax, eax
je 0x55bdfd
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 0x55c930
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f50e0]
jmp 0x55be02
test esi, esi
jne case.0x55c172.35
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [edi], ecx
jmp 0x5544d9
test esi, esi
je 0x55c0e0
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55c126
lea ebx, [ebx]
cmp esi, 0xfffffc1a
jne 0x55c9b5
mov dword [edi + 0x24], 1
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jne 0x55eeaa
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x55c9a1
jmp 0x55ca0e
mov edx, dword ds:[ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x55c9f1
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x55c8c9.998
cmp word [ecx], 0x78
je 0x55c9f9
cmp word [eax], 0x78
jmp 0x55c9f3
test esi, esi
jne case.0x55c8c9.998
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x55f0c8
cmp dword [edi + 0x24], 0
jne 0x55ca50
cmp dword ds:[edi + 0x28], 0
jne 0x55ca50
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
test esi, esi
jne case.0x55c172.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 0x55ca40
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x5544d9
lea ebx, [ebx]
test esi, esi
jne case.0x55c172.35
add dword [edi], 2
jmp 0x5544d9
mov edx, dword [edi + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x55cae9
mov ebx, dword ds:[ebp + 0x18]
mov eax, dword [edi + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x84], eax
jne 0x55cae9
cmp esi, 0xfffffc1f
jne 0x55645b
mov eax, ebx
cmp dword [eax + 0x7c], ecx
jae 0x55645b
cmp word [edx], 0x78
je 0x55caf7
cmp word [ecx], 0x78
je 0x55caf7
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x55c123
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0xc]
test esi, esi
jne case.0x55c8c9.998
mov dword ds:[edi + 4], ecx
cmp word [ecx], 0x78
je 0x55f1bb
jmp case.0x554503.162
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1e
jne case.0x55c8c9.998
mov ecx, dword [edi]
mov eax, edx
add ecx, 4
mov edx, dword [eax + 0x80]
call fcn.0057c7a0
mov edx, dword [ebp + 0x18]
test eax, eax
jne case.0x55c8c9.998
mov eax, dword [edi + 0x38]
mov esi, 0xfffffc1d
mov dword [edx + 0x80], eax
mov eax, dword [ebp - 8]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1c
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.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 0x55c126
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.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 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.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 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.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.005540e0
test eax, eax
je 0x55eeb4
jle 0x55cc39
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x55c8c9.999
jmp 0x557deb
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov eax, dword ds:[edi + 0xc]
neg eax
add eax, eax
add dword [edi + 0x38], eax
jmp 0x55bb14
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov eax, dword [edi + 4]
cmp dword [edi + 0x38], eax
je case.0x554503.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 0x55ccb3
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.005540e0
mov eax, dword [ebp - 0x54]
inc esi
add eax, eax
add dword [edi + 0x38], eax
cmp esi, dword [edi + 0x24]
jb 0x55cc91
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x16
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [edi + 0x38], eax
cmp ecx, 0xff
jbe 0x55cd25
cmp byte [edi + 0x31], 0x6e
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55f32a
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 0x55cd17
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
add dword [edi + 0x38], 0xfffffffe
jmp 0x556159
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x557deb
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x55cd9e
cmp dword [edi + 0x2c], eax
jne case.0x55c8c9.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 0x55f32a
add dword [edi + 0x38], 0xfffffffe
test esi, esi
je 0x55552e
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x5548b7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
jne case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x55f32d
add dword ds:[edi + 0x38], 0xfffffffe
test esi, esi
je 0x555669
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x557deb
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je case.0x55c8c9.999
cmp dword [edi + 0x2c], eax
je case.0x55c8c9.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 0x55f32a
test esi, esi
jne case.0x55c172.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x5544d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1e
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x5548b7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55f32a
test esi, esi
jne case.0x55c172.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x5544d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x20
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x5548b7
cmp dword [edi + 0x28], 0xc
jne 0x55cfed
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x55cfa7
push ebx
push eax
push ecx
mov ecx, esi
call fcn.0057b860
test eax, eax
je 0x55cfed
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x55c126
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x55cfed
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x55cfed
cmp edx, 1
je 0x55d010
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x55d012
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.0x55d009.15
jmp dword [eax*4 + 0x56017c]
mov edx, ecx
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x55c126
lea esp, [esp]
cmp ecx, 0x85
ja 0x55d047
je case.0x55d040.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c8c9.999
mov edi, edi
jmp dword [ecx*4 + 0x5601bc]
sub ecx, 0x2028
je case.0x55d040.11
sub ecx, 1
jne case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
jmp 0x55d080
cmp ecx, 0x2000
ja 0x55d0ea
je case.0x55c8c9.999
cmp ecx, 0xa0
ja 0x55d0c5
mov edi, edi
je case.0x55c8c9.999
cmp ecx, 9
je case.0x55c8c9.999
cmp ecx, 0x20
jne case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x1680
je case.0x55c8c9.999
cmp ecx, 0x180e
jne case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x3000
ja case.0x55d009.13
je case.0x55c8c9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55d009.13
movzx eax, byte [ecx + 0x5601d4]
jmp dword [eax*4 + 0x5601cc]
lea esp, [esp]
cmp ecx, 0x2000
ja 0x55d18a
je case.0x55d009.13
cmp ecx, 0xa0
ja 0x55d165
mov edi, edi
je case.0x55d009.13
cmp ecx, 9
je case.0x55d009.13
cmp ecx, 0x20
je case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x1680
je case.0x55d009.13
cmp ecx, 0x180e
je case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x3000
ja case.0x55c8c9.999
je case.0x55d009.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55c8c9.999
movzx eax, byte [ecx + 0x56023c]
jmp dword [eax*4 + 0x560234]
lea esp, [esp]
cmp ecx, 0x85
ja 0x55d1e7
je case.0x55c8c9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55d009.13
mov edi, edi
jmp dword [ecx*4 + 0x56029c]
sub ecx, 0x2028
je case.0x55c8c9.999
sub ecx, 1
jne case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x85
ja 0x55d230
je case.0x55d009.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c8c9.999
jmp dword [ecx*4 + 0x5602ac]
sub ecx, 0x2028
je case.0x55d009.13
lea esp, [esp]
sub ecx, 1
je case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
jmp 0x55d260
cmp ecx, 0xff
ja case.0x55d009.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0xff
ja case.0x55c8c9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0xff
ja case.0x55d009.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
lea esp, [esp]
cmp ecx, 0xff
ja case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0xff
ja case.0x55d009.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0xff
ja case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x55d009.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
lea esp, [esp]
test esi, esi
jne case.0x55c172.35
mov eax, dword [edi + 0x38]
add eax, 0xfffffffe
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0x11
jne 0x55d3a9
jmp 0x55d380
cmp eax, dword [edi + 4]
jbe 0x55d3a9
cmp word [eax], 0xa
jne 0x55d3a9
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x55d3a9
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x5544d9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x22
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1b
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55d45a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d45a
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.0057bb20
test eax, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x64
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x55c8c9.999
lea ebx, [ebx]
test ebx, ebx
je 0x556342
mov ax, word ds:[edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x556342
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d54a
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 0x55d574
cmp byte ds:[edi + 0x31], 0x6e
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x55f32a
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 0x55d566
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x554503.162
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x5560a9
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.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 0x55d6ad
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x55d655
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55d65e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55d640
cmp esi, 0xfffffffc
je 0x55ef66
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55d6aa
cmp esi, 0xfffffffd
je 0x55ef66
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55d6aa
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x55ef66
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55d6aa
cmp esi, 0xffffffff
je 0x55ef66
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55ef66
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x55d74a
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x55d74a
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x55d6f5
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55d6fe
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55d6e0
cmp esi, 0xfffffffc
je 0x55ef66
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55d74a
cmp esi, 0xfffffffd
je 0x55ef66
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55d74a
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x55ef66
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55d74a
cmp esi, 0xffffffff
je 0x55ef66
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55ef66
mov esi, dword [ebp + 0x18]
cmp ebx, dword [esi + 0x64]
jb case.0x554503.162
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x554503.162
cmp ebx, dword [esi + 0x6c]
ja 0x55d77c
cmp dword [esi + 0x34], 0
je case.0x554503.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55475f
jmp case.0x554503.162
test esi, esi
jne case.0x55c172.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 0x55d7c1
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x5544d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcb
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d84a
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.0x55c8c9.999
cmp dword [edi + 0x2c], ecx
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x55f32a
test esi, esi
jne case.0x55c172.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 0x55d89a
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x5544d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcd
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d92a
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.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword ds:[eax]
mov byte [eax + 0x30], 0xce
jmp 0x55f32a
test esi, esi
jne case.0x55c172.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 0x55d975
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x5544d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcf
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x557deb
movzx eax, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55d9f1
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55d9f1
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0xf
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55da7a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55da7a
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d9db1]
cmp al, 9
je 0x55dac5
cmp al, 5
je 0x55dac5
cmp al, 8
je 0x55dac5
xor ecx, ecx
jmp 0x55daca
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55db5a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55db5a
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55dc2b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dc2b
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55dceb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dceb
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db0]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55ddab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ddab
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x55ddf9
cmp eax, 3
je 0x55ddf9
xor ecx, ecx
jmp 0x55ddfe
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55de8b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55de8b
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 0x55deb0
je case.0x55df70.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x55df70.8203
jmp dword [eax*4 + 0x5602bc]
cmp ecx, 0x2000
ja 0x55df50
lea esp, [esp]
je case.0x55df70.8193
cmp ecx, 0x1680
ja 0x55df48
je case.0x55df70.8193
mov eax, ecx
sub eax, 0x85
je case.0x55df70.8193
sub eax, 0x1b
je case.0x55df70.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
cmp dword [eax*4 + 0x5f5060], 6
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x55f32a
cmp ecx, 0x180e
jmp 0x55deee
cmp ecx, 0x3000
ja case.0x55df70.8203
je case.0x55df70.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x55df70.8203
movzx eax, byte [eax + 0x5602d8]
jmp dword [eax*4 + 0x5602d0]
cmp dword [edi + 0x28], 0xf
jne 0x55df3a
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x557deb
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55dffa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55dffa
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 + 0x5f0bc0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d9db1]
mov eax, dword [eax*4 + 0x5f5060]
cmp eax, 1
je 0x55e050
cmp eax, 3
je 0x55e050
lea ecx, [ecx]
cmp edx, 0x5f
je 0x55e050
xor ecx, ecx
jmp 0x55e055
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55e0eb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e0eb
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 + 0x5d9360]
lea eax, [eax*4 + 0x5d9360]
cmp ecx, edx
jb 0x55e124
jmp 0x55e110
lea eax, [eax + 4]
cmp ecx, edx
je 0x55e13c
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x55e110
cmp dword [edi + 0x28], 0xf
jne case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x55f32a
cmp dword [edi + 0x28], 0xf
jne 0x55e12e
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55e1bd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e1bd
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 0x55e213
cmp ecx, 0x40
je 0x55e213
cmp ecx, 0x60
je 0x55e213
jmp 0x55e1e0
cmp ecx, 0xa0
jb 0x55e1f8
cmp ecx, 0xd7ff
jbe 0x55e213
jmp 0x55e200
cmp ecx, 0xe000
jae 0x55e213
xor ecx, ecx
jmp 0x55e218
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x557deb
movzx esi, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
mov edx, ecx
test ebx, ebx
je 0x55e2ad
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e2ad
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.0057c5c0
mov esi, dword [ebp + 0x18]
mov dword [edi + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x55e30c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x55e30c
cmp eax, dword [esi + 0x6c]
ja 0x55e2fc
cmp dword [esi + 0x34], 0
je 0x55e30c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x5548b7
cmp dword [edi + 0x28], 0xc
jne 0x55e3cd
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x55e387
push ebx
push eax
push ecx
mov ecx, esi
call fcn.0057b860
test eax, eax
je 0x55e3cd
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x55c126
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x55e3cd
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x55e3cd
cmp edx, 1
je 0x55d010
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x55d012
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 0x55e40a
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.0x55d009.15
lea esp, [esp]
jmp dword [eax*4 + 0x560338]
cmp ecx, 0x85
ja 0x55e450
je case.0x55e449.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c8c9.999
jmp dword [ecx*4 + 0x560378]
sub ecx, 0x2028
je case.0x55e449.11
lea esp, [esp]
sub ecx, 1
jne case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x55e420.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x2000
ja 0x55e505
je case.0x55c8c9.999
jmp 0x55e4a0
cmp ecx, 0xa0
ja 0x55e4d6
je case.0x55c8c9.999
cmp ecx, 9
je case.0x55c8c9.999
jmp 0x55e4c0
cmp ecx, 0x20
jne case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
jmp 0x55e4e0
cmp ecx, 0x1680
je case.0x55c8c9.999
cmp ecx, 0x180e
jne case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x3000
ja case.0x55e420.13
je case.0x55c8c9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55e420.13
movzx eax, byte [ecx + 0x560390]
jmp dword [eax*4 + 0x560388]
jmp 0x55e540
cmp ecx, 0x2000
ja 0x55e5aa
je case.0x55e420.13
cmp ecx, 0xa0
ja 0x55e585
mov edi, edi
je case.0x55e420.13
cmp ecx, 9
je case.0x55e420.13
cmp ecx, 0x20
je case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x1680
je case.0x55e420.13
cmp ecx, 0x180e
je case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x3000
ja case.0x55c8c9.999
je case.0x55e420.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55c8c9.999
movzx eax, byte [ecx + 0x5603f8]
jmp dword [eax*4 + 0x5603f0]
lea esp, [esp]
cmp ecx, 0x85
ja 0x55e607
je case.0x55c8c9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55e420.13
mov edi, edi
jmp dword [ecx*4 + 0x560458]
sub ecx, 0x2028
je case.0x55c8c9.999
sub ecx, 1
jne case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x85
ja 0x55e650
je case.0x55e420.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55c8c9.999
jmp dword [ecx*4 + 0x560468]
sub ecx, 0x2028
je case.0x55e420.13
lea esp, [esp]
sub ecx, 1
je case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
jmp 0x55e680
cmp ecx, 0x100
jae case.0x55e420.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x100
jae case.0x55c8c9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x100
jae case.0x55e420.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
lea esp, [esp]
cmp ecx, 0x100
jae case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x100
jae case.0x55e420.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
cmp ecx, 0x100
jae case.0x55c8c9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x55e420.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x55c126
lea esp, [esp]
test esi, esi
jne case.0x55c172.35
mov edx, dword [edi + 0x38]
add edx, 0xfffffffe
mov dword [edi + 0x38], edx
test ebx, ebx
jne 0x55ebf9
movzx ecx, word ds:[edx]
jmp 0x55ec4a
test esi, esi
jne case.0x55c172.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 0x55e7d5
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
cmp dword [edi + 0x28], 0x11
jne 0x55e809
nop
cmp ecx, dword [edi + 4]
jbe 0x55e809
cmp word [ecx], 0xa
jne 0x55e809
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x55e809
mov dword [edi + 0x38], ecx
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x5544d9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xdd
jmp 0x55f32a
test esi, esi
jne case.0x55c172.35
mov ecx, dword [edi + 0x38]
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55e85d
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55e85d
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x5544d9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xde
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x557deb
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55e8eb
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e8eb
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 + 0x5f0bc0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d9dba]
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 + 0x5d9820]
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.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x55f32a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55e9cb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55e9cb
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d9db8]
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.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x55f32a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x55c8c9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x55c8c9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557718
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55ea8b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ea8b
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
mov ecx, dword [edi + 0x2c]
movzx eax, word [eax*2 + 0x5ddfc0]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5d9db0]
cmp eax, ecx
je 0x55eaf4
movzx edx, word [edx*4 + 0x5d9db8]
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 + 0x5d9520], eax
jne 0x55eaf4
xor ecx, ecx
jmp 0x55eaf9
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55c8c9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe1
jmp 0x55f32a
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.00582850
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 0x55eb40
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x5544d9
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 0x55eb60
lea eax, [edi + 4]
jmp 0x5544d7
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 0x55f215
lea eax, [edi + 4]
jmp 0x5544d7
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.00582850
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
jmp 0x55c91f
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 0x55ee53
xor eax, eax
cmp dword [edi + 0x20], eax
sete al
jmp 0x55c922
mov edi, dword [ebp - 8]
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f50e0]
jmp 0x55be02
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55ec19
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 0x55ec4a
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x5d9db2]
cmp edx, edi
jbe 0x55ed3d
lea ecx, [ecx]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x55ece5
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55ecb2
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ece5
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 + 0x5f0bc0]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x5ddfc0]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5d9db2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5f5020], eax
je 0x55ed3d
mov eax, dword [ebp - 8]
mov ebx, esi
mov dword [eax + 0x38], edx
cmp edx, edi
ja 0x55ec80
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x5544d9
mov edi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x55f32a
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 + 0x5f50e0]
movzx eax, word [edx + 2]
ja 0x55f017
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x5544dc
cmp dword [ebp - 0xc], 0
jne 0x55d85f
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55f32a
test ebx, ebx
jne 0x55d936
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55f32a
cmp dword ds:[ebp - 0xc], 0
jne 0x55d569
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55f32a
test edx, edx
js 0x55edf0
lea esp, [esp]
cmp edx, 0xd
ja case.0x55d009.15
jmp dword [edx*4 + 0x560478]
cmp dword [eax + 0x28], 0x16
je 0x55e30f
lea ebx, [ebx]
test edi, edi
jne 0x55f00c
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55f32a
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 0x55f32a
cmp ecx, 0x7e
je 0x55ee45
mov eax, 0x80
cmp cx, ax
je 0x55ee45
xor eax, eax
jmp 0x55ee4a
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 + 0x5f50e0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 5
jmp 0x55f32a
mov eax, dword [ebp - 8]
cmp cl, 0x7b
jne 0x55ee95
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x55f32d
mov byte [ebx + 0x30], 7
jmp 0x55f32d
lea edi, [edi + eax*2]
mov byte [edx + 0x30], 1
jmp 0x55f32a
mov eax, dword [edi + 8]
mov dword [edi], eax
jmp 0x55f0c8
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 0x55f32a
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae case.0x55d009.13
cmp word ds:[esi], 0xa
jne case.0x55d009.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 0x55f32a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55d009.13
cmp esi, dword [ebx + 0x64]
jb case.0x55d009.13
cmp dword ds:[ebx + 0x98], 0
jne case.0x55d009.13
cmp dword [ebx + 0x9c], 2
jne case.0x55d009.13
movzx eax, word ds:[ebx + 0xa0]
cmp ecx, eax
jne case.0x55d009.13
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55475f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55f32a
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 0x55f32a
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae case.0x55e420.13
cmp word [edx], 0xa
jne case.0x55e420.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 0x55f32a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov esi, eax
test ax, ax
je case.0x55e420.13
lea esp, [esp]
cmp edx, dword [ebx + 0x64]
jb case.0x55e420.13
cmp dword [ebx + 0x98], 0
jne case.0x55e420.13
cmp dword ds:[ebx + 0x9c], 2
jne case.0x55e420.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x55e420.13
mov dword ds:[ebx + 0x2c], 1
cmp esi, 1
ja 0x55475f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55f32a
mov byte ds:[ebx + 0x30], 0x11
jmp 0x55f325
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x55f32a
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 0x55f040
lea edi, [eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x55f32a
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 0x55f0af
mov edx, 0x8e
cmp ax, dx
jne 0x55f09b
jmp 0x55f0af
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], 0
mov eax, 0x20000
jmp 0x55f0b8
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 + 0x5f50e0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 8
jmp 0x55f32a
movzx ecx, word [edi + 4]
or ecx, 0x10000
jmp 0x55f104
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 + 0x5f50e0]
lea edi, [edi + eax*2]
jmp 0x55f32a
mov ecx, dword [esi + 0x58]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x55f145
xor edi, edi
jmp 0x55f149
movzx edi, word [ebx + 4]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x44], 0xffffffff
je 0x55f1ac
mov eax, dword ds:[ecx + 0x4c]
cmp eax, 0xffffffff
je 0x55f1ac
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 0x55f196
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x55f174
jmp 0x55f1a9
mov eax, dword ds:[ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x55f50e
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 + 0x5f50e0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xb
jmp 0x55f32a
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 + 0x5f50e0]
lea edi, [edi + eax*2]
jmp 0x55f32a
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 + 0x5f50e0]
lea edi, [edi + eax*2]
jmp 0x55f32a
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 + 0x5f50e0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x55f325
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f50e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xd
jmp 0x55f32a
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 + 0x5f50e0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x55f325
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f50e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xe
jmp 0x55f32a
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 + 0x5f50e0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x55f325
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f50e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x10
jmp 0x55f32a
movzx eax, word ds:[edi]
movzx eax, byte [eax + 0x5f50e0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x12
jmp 0x55f32a
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 + 0x5f50e0]
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 0x55f40e
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 0x55f384
mov ebx, edx
xor edx, edx
shl ebx, 0xa
mov eax, ebx
div dword [ebp + 0x14]
sub ebx, edx
cmp ecx, ebx
jae 0x55f51c
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 [0x5a48f4]
call esi
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
je 0x55f52a
mov eax, dword [ebp + 0x18]
push dword [eax + 0xc]
push dword [eax + 0x10]
push esi
call fcn.00582850
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 0x55f3fd
push dword [edx + 8]
mov esi, dword [edx + 4]
push ecx
mov ecx, esi
call dword [0x5a48f4]
call esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
jmp 0x55f400
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.00582850
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 0x554473
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 0x55f476
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.00582850
mov eax, dword ds:[ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x55f4e4
jmp 0x55f4d0
mov dword ds:[edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x55f4d0
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