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

Disassembly:
sub esp, 0x50
push ebx
push ebp
xor eax, eax
mov dword [esp + 0x38], 0xfc00
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
push edi
mov edi, edx
mov dword [esp + 0x3c], 0xdc00
xor edx, edx
mov dword [esp + 0x4c], 0xd800
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x8c]
mov ebp, edx
mov eax, dword [eax + 0x10]
shr edx, 0x11
and edx, 1
shr ebp, 0x13
mov dword [esp + 0x38], edx
and ebp, 1
mov edx, dword [esp + 0x70]
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov dword [eax + 0x38], ecx
lea ebx, [edx - 0x38]
mov dword [eax + 0x3c], ecx
mov dword [esp + 0x48], ebx
xor ebx, ebx
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
mov dword [eax + 0x4c], 0xffffffff
mov dword [esp + 0x28], ebx
nop dword [eax]
mov dword [eax + 0x1c], ebx
mov dword [eax], edi
mov dword [eax + 0x10], edx
test ebx, ebx
je 0x550e94
mov ecx, dword [esp + 0x74]
sub eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x4c], eax
mov eax, ebx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x550e8e
movzx eax, bx
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x74]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
cmp edx, ecx
jae 0x55ca6b
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x24]
jb 0x550ee0
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x50
ret 0x14
lea eax, [ecx + 4]
mov dword [ebp], eax
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x18]
nop dword [eax]
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov bl, byte [edi]
movzx ecx, bl
mov byte [esp + 0x13], bl
mov byte [eax + 0x31], bl
cmp ecx, 0xa6
ja case.0x55a035.15
movzx eax, byte [ecx + 0x55cbd8]
jmp dword [eax*4 + 0x55ca7c]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0xffffffff
jne 0x550f8c
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
nop dword [eax]
cmp eax, 0xffffffff
je case.0x55a035.15
mov ecx, dword ds:[esi + 0x10]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [esp + 0x24], ecx
sub edx, dword [esp + 0x70]
or eax, 0x10000
cmp dword [ecx + 0x1c], eax
je 0x550f4a
mov eax, dword [edx + 0x4c]
jmp 0x550f20
mov eax, dword ds:[esp + 0x14]
lea esi, [edi + edi]
mov ebx, dword [esp + 0x74]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebx + 0x5c]
mov edx, dword [esp + 0x14]
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 0x550f88
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f7690]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
mov esi, dword [esp + 0x74]
jmp 0x550ee0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x70]
jbe 0x550fbd
mov dword [ebx + 0x70], eax
mov eax, dword [esp + 0x14]
mov esi, 0xfffffc19
mov dword [esp + 0x2c], eax
jmp 0x55953e
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x44], 0xffffffff
je 0x55102e
mov eax, dword [eax + 0x4c]
nop dword [eax]
cmp eax, 0xffffffff
je case.0x55a035.15
mov edx, dword [esi + 0x10]
add edx, eax
mov ecx, edx
mov dword [esp + 0x24], edx
sub ecx, dword [esp + 0x70]
mov eax, dword [edx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x55100c
mov eax, dword [ecx + 0x4c]
jmp 0x550fe0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x14], 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 0x550ee0
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x551068
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x88]
test al, 4
jne case.0x550f05.162
test al, 8
je 0x551068
mov eax, dword ds:[esp + 0x74]
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x5c]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.0x550f05.162
mov eax, dword [esp + 0x74]
cmp edx, dword [eax + 0x64]
jae 0x55c981
mov ecx, dword [esp + 0x74]
mov eax, dword [eax + 0x8c]
or eax, dword [ecx + 0x88]
test eax, 0x20000000
je 0x55c97f
test bl, bl
jne 0x55c973
xor esi, esi
mov ebx, ecx
jmp 0x55953a
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x551155
mov esi, dword [eax + 0x64]
lea edi, [eax + 0x64]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, esi
jae 0x5510e5
push ebp
mov ebp, dword [esp + 0x78]
lea eax, [ebp + 0x9c]
push eax
push esi
call fcn.0057f0c0
test eax, eax
je 0x5510e9
mov eax, 1
jmp 0x5510eb
mov ebp, dword [esp + 0x74]
xor eax, eax
test eax, eax
jne case.0x550f05.162
mov ebx, dword [esp + 0x14]
movzx eax, word ss:[ebp + 0x4c]
mov edx, eax
test ax, ax
je case.0x550f05.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x550f05.13
mov eax, dword [esp + 0x74]
cmp dword [eax + 0x98], 0
jne 0x551151
cmp dword [eax + 0x9c], 2
jne 0x551151
mov ebx, dword [esp + 0x74]
mov ax, word [ecx]
cmp ax, word [ebx + 0xa0]
jne 0x5511a9
mov eax, ebx
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov ebx, eax
jmp 0x5511a9
mov esi, dword [eax + 0x9c]
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x14]
lea eax, [esi + esi]
mov ecx, dword [ebp + 0x64]
mov edx, dword [ebx + 0x38]
sub ecx, eax
cmp edx, ecx
ja 0x55119a
mov ax, word [edx]
cmp ax, word [ebp + 0xa0]
jne 0x55119a
nop
cmp esi, 1
je case.0x550f05.162
mov ax, word [edx + 2]
cmp ax, word [ebp + 0xa2]
je case.0x550f05.162
lea edi, ss:[ebp + 0x64]
jmp 0x5510f7
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x5511f2
movzx eax, word ds:[ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x6c]
ja 0x5511d4
cmp dword [eax + 0x34], 0
je 0x5511e9
mov dword ds:[eax + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov ebx, eax
xor esi, esi
jmp 0x55953a
mov ebp, dword ds:[esp + 0x18]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebp, ebp
je 0x55122c
cmp ecx, dword [ebx + 0x64]
jae 0x55122c
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x551228
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x14]
add dword [eax], 2
mov esi, dword [esp + 0x74]
jmp 0x550ee0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jb 0x55128e
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x550f05.162
mov eax, dword ds:[esp + 0x74]
cmp ecx, dword [eax + 0x6c]
ja 0x55126f
cmp dword [eax + 0x34], 0
je case.0x550f05.162
mov dword [eax + 0x2c], 1
cmp edx, 1
jbe case.0x550f05.162
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x50
ret 0x14
mov esi, dword [esp + 0x74]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x550ee0
test ebp, ebp
je 0x55137e
mov eax, dword [esp + 0x14]
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 [esp + 0x14]
jne 0x5512e8
mov dword [eax + 0xc], 2
mov edx, 2
mov ebx, dword [esp + 0x74]
mov esi, dword [eax + 0x38]
mov ecx, dword [ebx + 0x64]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x551345
nop dword [eax]
cmp esi, ecx
jb case.0x553949.10
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
mov eax, ebx
cmp esi, dword [eax + 0x6c]
ja 0x551328
cmp dword [eax + 0x34], 0
je 0x5511e9
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov ebx, eax
xor esi, esi
jmp 0x55953a
mov ax, word ds:[esi]
add esi, 2
mov ebx, dword [esp + 0x14]
movzx ecx, word [edi]
add edi, 2
cmp cx, ax
mov eax, ebx
mov dword [ebx + 0x38], esi
mov dword [ebx], edi
jne 0x551373
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x551345
mov esi, dword [esp + 0x74]
jmp 0x550ee0
mov ebx, dword [esp + 0x74]
xor esi, esi
jmp 0x55953e
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0x64]
mov esi, dword [ebx + 0x38]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x5513d3
mov ebx, dword [esp + 0x74]
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
mov eax, ebx
cmp esi, dword [eax + 0x6c]
ja 0x5513ba
cmp dword [eax + 0x34], 0
je 0x5511e9
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov ebx, eax
xor esi, esi
jmp 0x55953a
movzx edx, word [edi + 2]
lea eax, [esi + 2]
movzx ecx, word [esi]
mov dword [ebx + 0x38], eax
cmp dx, cx
jne case.0x550f05.162
mov esi, dword [esp + 0x74]
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x550ee0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ebx + 0x64]
jb 0x551445
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
mov eax, ebx
cmp ebp, dword [eax + 0x6c]
ja 0x551427
cmp dword [eax + 0x34], 0
je 0x5511e9
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov ebx, eax
xor esi, esi
jmp 0x55953a
cmp dword [esp + 0x18], 0
je 0x551585
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 0x55149e
movzx eax, word [ebx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov edi, 2
mov eax, dword [esp + 0x14]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x5514a2
mov eax, dword [esp + 0x14]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x5514e8
cmp edx, 0xff
ja 0x5514c1
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x38]
movzx edx, byte [eax + edx]
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax + esi]
cmp eax, edx
jne case.0x550f05.162
mov ecx, dword [esp + 0x14]
lea eax, [ebx + 2]
mov dword [ecx], eax
lea eax, [ebp + 2]
mov dword [ecx + 0x38], eax
jmp 0x550ed1
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x551522
movzx eax, word ds:[ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
add edx, 0x10000
mov dword [ecx + 0x38], eax
jmp 0x551526
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
lea eax, [ebx + edi*2]
mov dword [ecx], eax
cmp edx, esi
je 0x550fa1
mov eax, esi
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5dc364]
add eax, esi
mov esi, dword [esp + 0x74]
cmp edx, eax
je 0x550ee0
mov eax, dword ds:[esp + 0x14]
xor esi, esi
mov ebx, dword [esp + 0x74]
mov edi, ebp
jmp 0x559542
cmp dword [esp + 0x38], 0
je 0x551637
movzx esi, word ds:[edi + 2]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x5515cd
cmp edx, 0xff
ja 0x5515b7
mov eax, dword [ebx + 0x38]
movzx edx, byte [eax + edx]
mov eax, dword [ebx + 0x38]
movzx eax, byte [eax + esi]
cmp eax, edx
mov eax, dword [esp + 0x14]
je 0x55161e
xor esi, esi
jmp 0x55953e
cmp edx, esi
je 0x55161e
lfence
mov eax, esi
test eax, eax
jns 0x5515dd
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x5515f9
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5dc364]
add eax, esi
cmp edx, eax
mov eax, dword [esp + 0x14]
je 0x55161e
xor esi, esi
jmp 0x55953e
mov eax, dword [eax + 0x38]
mov esi, ebx
mov ecx, dword [esp + 0x14]
add eax, 2
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 4
jmp 0x550ed5
movzx eax, word [edi + 2]
mov esi, 0xff
mov edx, eax
cmp ax, si
ja 0x55164e
mov eax, dword [ebx + 0x38]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, si
ja 0x551660
mov eax, dword [ebx + 0x38]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x55166b
xor esi, esi
jmp 0x55953a
mov ecx, dword ds:[esp + 0x14]
lea eax, [ebp + 2]
mov esi, ebx
mov dword [ecx + 0x38], eax
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x550ed5
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jb 0x5516d1
movzx eax, word ds:[eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x550f05.162
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x6c]
ja 0x5516bc
cmp dword [eax + 0x34], 0
je case.0x550f05.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55127f
jmp case.0x550f05.162
lea eax, [edi + 2]
test ebp, ebp
je 0x5517af
mov edi, dword [esp + 0x14]
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 0x551716
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 [ecx]
add ecx, 2
mov eax, esi
mov dword [edi + 0x38], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55174c
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.0x550f05.162
cmp bl, 0x20
jne 0x550fa1
mov ebx, dword [esp + 0x74]
cmp edx, 0x7f
jbe 0x551794
mov eax, edx
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5dc364]
jmp 0x55179b
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + edx]
nop dword [eax + eax]
cmp edx, esi
jne 0x550fa1
xor esi, esi
jmp 0x55953a
cmp dword [esp + 0x38], 0
lea esi, [ecx + 2]
je 0x55183d
movzx ebx, word [ecx]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], esi
movzx edx, word [eax]
lea eax, [edi + 4]
mov dword [ecx], eax
cmp edx, ebx
je case.0x550f05.162
cmp byte [esp + 0x13], 0x20
mov esi, dword [esp + 0x74]
jne 0x550ee0
cmp edx, 0x7f
jbe 0x551829
lfence
mov eax, edx
test eax, eax
jns 0x5517f7
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x551813
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5dc364]
jmp 0x551830
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, ebx
jne 0x550ee0
jmp case.0x550f05.162
movzx edx, word [eax]
mov eax, dword [esp + 0x14]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je 0x55187c
cmp bl, 0x20
jne 0x55186a
cmp edx, 0xff
ja 0x55186a
mov ebx, dword [esp + 0x74]
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je 0x551880
mov ecx, dword [esp + 0x14]
lea eax, [edi + 4]
mov esi, dword [esp + 0x74]
mov dword [ecx], eax
jmp 0x550ee0
mov ebx, dword [esp + 0x74]
xor esi, esi
jmp 0x55953a
mov eax, dword [esp + 0x14]
movzx ebx, word [edi + 2]
add edi, 4
mov dword [eax + 0x24], ebx
mov dword [eax + 0x20], ebx
mov dword [eax], edi
jmp 0x5519c8
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebx, ebx
mov dword [ecx], edi
jmp 0x5519c4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 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 0x5519c4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 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 0x5519c4
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
xor ebx, ebx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x5519c4
mov eax, dword ds:[esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov ebx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x5519c4
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
xor ebx, ebx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x5519c4
movzx ecx, word [edi]
cmp bl, 0x2e
mov edx, dword [esp + 0x14]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, dword [esp + 0x14]
add edi, 2
mov ebx, dword [ecx*4 + 0x5db084]
mov dword [eax], edi
mov dword [eax + 0x20], ebx
mov eax, dword [ecx*4 + 0x5db058]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5db028]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
test ebp, ebp
je 0x551e30
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 0x551e25
movzx esi, word [ecx]
lea eax, [edi + 4]
mov ecx, dword [esp + 0x14]
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 0x551a9d
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5dc364]
add ecx, esi
cmp ecx, esi
je 0x551a9d
cmp ecx, 0xffff
ja 0x551a6e
mov eax, dword [esp + 0x14]
mov word [eax + 0x32], cx
mov eax, 1
jmp 0x551a9f
mov edx, dword [esp + 0x14]
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 0x551a9f
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], 1
mov dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x20]
cmp eax, 1
jb 0x551c54
nop word [eax + eax]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x74]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x38]
add edi, edi
mov ebp, dword [ecx + 0x64]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x551b4b
mov eax, dword [esp + 0x14]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x551b05
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x551b0e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x551af0
cmp esi, 0xfffffffc
je 0x551bd7
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x551b4b
cmp esi, 0xfffffffd
je 0x551bd7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x551b4b
cmp esi, 0xfffffffe
je 0x551bd7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x551b4b
cmp esi, 0xffffffff
je 0x551bd7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x551bd7
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x551c11
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x551c11
mov edx, dword [esp + 0x14]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x551b91
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x551b96
add ecx, 4
add edx, 4
sub esi, 4
jae 0x551b80
cmp esi, 0xfffffffc
je 0x551bd7
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x551c11
cmp esi, 0xfffffffd
je 0x551bd7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x551c11
cmp esi, 0xfffffffe
je 0x551bd7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x551c11
cmp esi, 0xffffffff
je 0x551bd7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x551c11
mov ecx, dword [esp + 0x14]
lea eax, [ebx + edi]
mov edx, 0x38
mov dword [edx + ecx], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x20]
cmp ecx, eax
jbe 0x551ac0
mov ecx, dword [esp + 0x14]
mov edx, eax
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x30], edx
jmp 0x551c5a
cmp ebx, ebp
jb case.0x550f05.162
mov eax, dword [esp + 0x74]
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x550f05.162
mov eax, dword [esp + 0x74]
cmp ebx, dword [eax + 0x6c]
ja 0x551c3f
cmp dword [eax + 0x34], 0
je case.0x550f05.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
jmp case.0x550f05.162
mov edx, eax
mov dword [esp + 0x30], eax
mov ecx, dword ds:[ecx + 0x24]
cmp eax, ecx
je 0x550fa1
cmp dword [esp + 0x1c], 0
je 0x55c3cf
mov eax, dword ds:[esp + 0x14]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x551dc9
jmp 0x551c94
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x74]
add edi, edi
mov ebp, dword [eax + 0x64]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x551d1b
mov eax, dword [esp + 0x14]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x551cd1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x551cda
add ecx, 4
add edx, 4
sub esi, 4
jae 0x551cc0
cmp esi, 0xfffffffc
je 0x551da5
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x551d1b
cmp esi, 0xfffffffd
je 0x551da5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x551d1b
cmp esi, 0xfffffffe
je 0x551da5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x551d1b
cmp esi, 0xffffffff
je 0x551da5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x551da5
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x551dcf
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x551dcf
mov edx, dword [esp + 0x14]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x551d65
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x551d6a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x551d50
cmp esi, 0xfffffffc
je 0x551da5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x551dcf
cmp esi, 0xfffffffd
je 0x551da5
mov al, byte ds:[ecx + 1]
cmp al, byte [edx + 1]
jne 0x551dcf
cmp esi, 0xfffffffe
je 0x551da5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x551dcf
cmp esi, 0xffffffff
je 0x551da5
mov al, byte ds:[ecx + 3]
cmp al, byte [edx + 3]
jne 0x551dcf
mov eax, dword ds:[esp + 0x14]
mov ecx, 0x38
mov edx, dword [esp + 0x30]
add ebx, edi
inc edx
mov dword [esp + 0x30], edx
mov dword [ecx + eax], ebx
cmp edx, dword [eax + 0x24]
jb 0x551c90
mov esi, dword [esp + 0x74]
jmp 0x551e0b
mov esi, dword [esp + 0x74]
cmp ebx, ebp
jb 0x551e0b
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x551e0b
mov eax, esi
cmp ebx, dword [eax + 0x6c]
ja 0x551df2
cmp dword [eax + 0x34], 0
je 0x551e09
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov esi, eax
cmp dword [esp + 0x1c], 2
mov ebp, dword [esp + 0x18]
je 0x550ee0
mov ebp, dword ds:[esp + 0x14]
jmp 0x55a7de
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x551e41
movzx edx, word [edi]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x28], edx
lea eax, [edi + 2]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x552005
test ebp, ebp
jne 0x551e55
cmp dword [esp + 0x38], ebp
je 0x551e87
cmp edx, 0x7f
jbe 0x551e87
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5dc364]
add eax, edx
jmp 0x551e9a
cmp edx, 0xff
ja 0x551e98
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
jmp 0x551e9a
mov eax, edx
mov ecx, dword [esp + 0x14]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp ebx, esi
jb 0x551ef4
nop word [eax + eax]
mov eax, dword ds:[esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jae 0x551f69
mov edi, dword [esp + 0x14]
movzx eax, word [ecx]
mov edx, dword [edi + 0x28]
cmp edx, eax
je 0x551ee9
nop word [eax + eax]
cmp dword [edi + 0x2c], eax
jne case.0x550f05.162
inc esi
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp esi, ebx
jbe 0x551eb0
mov eax, dword ds:[esp + 0x14]
mov edi, ebx
mov esi, dword [eax + 0x24]
cmp ebx, esi
je 0x550fa1
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x559cdc
mov ecx, dword ds:[eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, esi
jae 0x551fcf
nop dword [eax + eax]
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jae 0x551fa5
movzx eax, word [ecx]
cmp edx, eax
je 0x551f51
mov ebp, dword [esp + 0x14]
cmp dword [ebp + 0x2c], eax
jne 0x551fd3
mov eax, dword ds:[esp + 0x14]
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, esi
jb 0x551f30
jmp 0x551fcf
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x550f05.162
mov eax, dword ds:[esp + 0x74]
cmp ecx, dword [eax + 0x6c]
ja 0x551f8f
cmp dword [eax + 0x34], 0
je case.0x550f05.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55127f
nop
jmp case.0x550f05.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x551fcf
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x6c]
ja 0x551fbf
cmp dword [eax + 0x34], 0
je 0x551fcf
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov ebp, dword [esp + 0x14]
mov esi, dword ds:[esp + 0x74]
cmp ebx, 2
je 0x550ed5
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x550ed1
mov edi, dword ss:[ebp]
mov byte [ebp + 0x30], 0x1a
jmp 0x55c84f
mov edi, 1
cmp ebx, edi
jb 0x552052
nop
mov esi, dword ds:[eax + 0x38]
mov eax, dword [esp + 0x74]
cmp esi, dword [eax + 0x64]
jae 0x5520af
mov ebp, dword ds:[esp + 0x14]
lea eax, [esi + 2]
movzx edx, word [esi]
mov dword [ebp + 0x38], eax
mov eax, ebp
cmp dword [ebp + 0x28], edx
jne 0x551373
inc edi
cmp edi, ebx
jbe 0x552010
mov ebp, dword [esp + 0x18]
mov edx, dword [eax + 0x24]
mov esi, ebx
cmp ebx, edx
je 0x550fa1
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x559d8d
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x55211b
nop dword [eax]
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jae 0x5520ee
mov ebp, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
jne 0x55211f
mov eax, ebp
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x552080
jmp 0x55211b
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x550f05.162
mov eax, dword [esp + 0x74]
cmp esi, dword [eax + 0x6c]
ja 0x5520d1
cmp dword [eax + 0x34], 0
je case.0x550f05.162
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
jmp case.0x550f05.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x55211b
mov eax, dword ds:[esp + 0x74]
cmp ecx, dword [eax + 0x6c]
ja 0x55210b
cmp dword [eax + 0x34], 0
je 0x55211b
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x74]
cmp ebx, 2
je 0x550ed5
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x550ed1
mov edi, dword ss:[ebp]
mov byte [ebp + 0x30], 0x1c
jmp 0x55c84f
mov eax, dword [esp + 0x14]
movzx edx, word [edi + 2]
add edi, 4
mov dword [eax + 0x24], edx
mov dword [eax + 0x20], edx
mov dword [eax], edi
jmp 0x552288
mov ecx, dword ds:[esp + 0x14]
mov dword [esp + 0x1c], 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 0x552284
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 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 0x552284
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x552284
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov edx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x552284
mov eax, dword ds:[esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x552284
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], edi
jmp 0x552284
movzx ecx, word [edi]
cmp bl, 0x48
mov ebx, dword [esp + 0x14]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [esp + 0x14]
add edi, 2
mov edx, dword [ecx*4 + 0x5db084]
mov dword [eax], edi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5db058]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x5db028]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
movzx ecx, word [edi]
lea esi, [edi + 2]
mov dword [eax + 0x28], ecx
mov edi, ecx
mov dword [eax], esi
test ebp, ebp
je 0x5522d1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5522cd
movzx edi, word [esi]
lea eax, [esi + 2]
and ecx, 0x3ff
and edi, 0x3ff
shl ecx, 0xa
or edi, ecx
mov ecx, dword [esp + 0x14]
add edi, 0x10000
mov dword [ecx + 0x28], edi
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x31], 0x48
jb 0x552605
test ebp, ebp
jne 0x5522e6
nop
cmp dword [esp + 0x38], ebp
je 0x552318
cmp edi, 0x7f
jbe 0x552318
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x5dc364]
add ebx, edi
jmp 0x552337
nop dword [eax + eax]
cmp edi, 0xff
ja 0x552335
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x3c]
movzx ebx, byte [eax + edi]
jmp 0x552337
mov ebx, edi
mov eax, dword ds:[esp + 0x14]
mov dword [eax + 0x2c], ebx
test ebp, ebp
je 0x552408
mov ebp, 1
cmp edx, ebp
jb 0x5524ff
jmp 0x552364
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x74]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x64]
jae 0x5523cb
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5523ae
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [esi + 2]
mov esi, dword [esp + 0x14]
add ecx, 0x10000
mov dword [esi + 0x38], eax
cmp edi, ecx
je case.0x550f05.162
cmp ebx, ecx
je case.0x550f05.162
inc ebp
cmp ebp, edx
jbe 0x552360
mov ebp, edx
jmp 0x552417
mov ebx, ecx
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
mov eax, ebx
cmp esi, dword [eax + 0x6c]
ja 0x5523ef
cmp dword [eax + 0x34], 0
je 0x5511e9
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov ebx, eax
xor esi, esi
jmp 0x55953a
mov esi, 1
mov ebp, edx
cmp edx, esi
jae 0x5524c9
mov eax, dword ds:[esp + 0x14]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x550ed1
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x55c192
cmp dword ds:[esp + 0x18], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x55257f
cmp ebp, edi
jae 0x552569
nop
mov eax, dword ds:[esp + 0x74]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x55253d
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552499
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:[esp + 0x14]
cmp dword [eax + 0x28], ecx
je 0x552569
cmp dword [eax + 0x2c], ecx
je 0x552569
inc ebp
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebp, edi
jb 0x552450
nop dword [eax]
jmp 0x552569
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jae 0x552506
movzx eax, word ds:[ecx]
cmp edi, eax
je case.0x550f05.162
cmp ebx, eax
je case.0x550f05.162
lea eax, [ecx + 2]
inc esi
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x5524c5
mov ebp, edx
jmp 0x552417
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x550f05.162
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x6c]
ja 0x552528
cmp dword [eax + 0x34], 0
je case.0x550f05.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x55127f
jmp case.0x550f05.162
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x552569
mov eax, dword [esp + 0x74]
cmp edx, dword [eax + 0x6c]
ja 0x552557
cmp dword [eax + 0x34], 0
je 0x552569
mov dword ds:[eax + 0x2c], esi
cmp ecx, 1
ja 0x55127f
mov ebp, dword [esp + 0x18]
cmp ebx, 2
je 0x550fa1
mov ebp, dword [esp + 0x14]
jmp 0x55a8f0
nop
cmp ebp, edi
jae 0x5525ec
nop dword [eax + eax]
mov eax, dword [esp + 0x74]
cmp edx, dword [eax + 0x64]
jae 0x5525c2
mov ecx, dword [esp + 0x14]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x5525ec
cmp dword [ecx + 0x2c], eax
je 0x5525ec
mov eax, ecx
add edx, 2
inc ebp
mov dword [eax + 0x38], edx
cmp ebp, edi
jb 0x552590
nop
jmp 0x5525ec
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x5525ec
mov eax, dword [esp + 0x74]
cmp edx, dword [eax + 0x6c]
ja 0x5525dc
cmp dword [eax + 0x34], 0
je 0x5525ec
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov ebp, dword [esp + 0x18]
cmp ebx, 2
je 0x550fa1
mov ebp, dword ds:[esp + 0x14]
jmp 0x559e53
mov esi, 1
test ebp, ebp
je 0x55275f
cmp edx, esi
jb 0x552684
mov ebx, dword ds:[esp + 0x74]
jmp 0x552626
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x552725
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55266c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x14]
cmp edi, ecx
je 0x5515c6
mov edx, dword ds:[eax + 0x20]
inc esi
cmp esi, edx
jbe 0x552622
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x24]
cmp edx, esi
je 0x550fa1
cmp dword [esp + 0x1c], 0
je 0x55c1a8
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
mov ebx, dword [eax + 0x20]
test ebp, ebp
je 0x552825
cmp ebx, esi
jae 0x55280b
nop word [eax + eax]
mov eax, dword [esp + 0x74]
mov edi, 1
cmp ecx, dword [eax + 0x64]
jae 0x5527e5
movzx edx, word ds:[ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552706
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 [esp + 0x14]
cmp dword [eax + 0x28], edx
je 0x55280b
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x5526c0
nop
jmp 0x55280b
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
mov eax, ebx
cmp edx, dword [eax + 0x6c]
ja 0x552746
cmp dword ds:[eax + 0x34], 0
je 0x5511e9
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov ebx, eax
xor esi, esi
jmp 0x55953a
nop
cmp edx, 1
jb 0x552684
jmp 0x552774
mov eax, dword [esp + 0x14]
mov edx, dword ds:[eax + 0x38]
mov eax, dword [esp + 0x74]
cmp edx, dword [eax + 0x64]
jae 0x5527a9
movzx ecx, word [edx]
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x38], eax
mov eax, edx
cmp edi, ecx
je 0x551373
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x552770
jmp 0x552688
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x550f05.162
mov eax, dword ds:[esp + 0x74]
cmp edx, dword [eax + 0x6c]
ja 0x5527cf
cmp dword [eax + 0x34], 0
je case.0x550f05.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x55127f
nop
jmp case.0x550f05.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x55280b
mov ebx, dword [esp + 0x74]
cmp ecx, dword [ebx + 0x6c]
ja 0x5527ff
cmp dword [ebx + 0x34], 0
je 0x55280b
mov dword [ebx + 0x2c], edi
cmp edx, 1
ja 0x55127f
cmp dword [esp + 0x1c], 2
mov esi, dword [esp + 0x74]
je 0x550ee0
mov ebp, dword ds:[esp + 0x14]
jmp 0x55a9f8
cmp ebx, esi
jae 0x552889
nop dword [eax]
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jae 0x55285b
mov ebp, dword [esp + 0x14]
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je 0x55288d
mov eax, ebp
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x552830
jmp 0x552889
mov ebx, eax
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je 0x552889
cmp ecx, dword [ebx + 0x6c]
ja 0x552873
cmp dword [ebx + 0x34], 0
je 0x552889
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov ebp, dword [esp + 0x14]
cmp dword [esp + 0x1c], 2
je 0x550ed1
jmp 0x559f0c
mov ebx, dword [esp + 0x14]
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.0x5528c2
movzx eax, byte [eax + 0x55cc88]
jmp dword [eax*4 + 0x55cc80]
mov ecx, dword [esi*4 + 0x5daefc]
lea eax, [edi + 0x24]
mov dword [ebx], eax
mov eax, dword [esi*4 + 0x5daed0]
mov esi, dword [esi*4 + 0x5daea0]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
jmp 0x552945
movzx ecx, word [edi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x552915
mov eax, dword [esp + 0x14]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5daea0]
mov dword [esp + 0x1c], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [esp + 0x14]
jmp 0x552945
mov eax, dword [esp + 0x14]
mov ecx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
mov edi, 1
test ebp, ebp
je 0x552a34
cmp ecx, edi
jb 0x552ae6
nop word [eax + eax]
mov ebx, dword [esp + 0x74]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x5529ff
movzx esi, word [ecx]
add ecx, 2
mov ebx, dword [esp + 0x14]
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5529ae
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
cmp esi, 0xff
jbe 0x5529cb
mov eax, dword ds:[esp + 0x14]
cmp byte [eax + 0x31], 0x6e
je case.0x550f05.162
jmp 0x5529ea
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 [esp + 0x14]
je 0x551373
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x552ae6
mov eax, dword [esp + 0x14]
jmp 0x552960
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
cmp ecx, dword [ebx + 0x6c]
ja 0x552a1d
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
cmp ecx, 1
jb 0x552ae6
nop dword [eax]
mov ebx, dword [esp + 0x74]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x552aae
mov ebx, dword ds:[esp + 0x14]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x552a79
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je case.0x550f05.162
jmp 0x552a98
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 [esp + 0x14]
je 0x551373
mov ecx, dword ds:[eax + 0x20]
inc edi
cmp edi, ecx
ja 0x552aea
mov eax, dword [esp + 0x14]
jmp 0x552a40
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
nop dword [eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x552acf
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov eax, dword [esp + 0x14]
mov ebp, dword [eax + 0x24]
mov esi, dword [esp + 0x74]
cmp ecx, ebp
je 0x550ed5
cmp dword ds:[esp + 0x1c], 0
je 0x55c1bb
cmp dword [esp + 0x18], 0
mov edi, dword [eax + 0x38]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x20]
mov dword [esp + 0x30], eax
je 0x552c16
nop
cmp eax, ebp
jae 0x552bfb
nop dword [eax + eax]
mov eax, dword ds:[esp + 0x74]
mov ebx, 1
cmp edi, dword [eax + 0x64]
jae 0x552bd0
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552b7d
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
add esi, 0x10000
mov eax, dword [esp + 0x14]
cmp esi, 0xff
jbe 0x552b95
cmp byte [eax + 0x31], 0x6e
je 0x552bfb
jmp 0x552bb4
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 0x552bfb
mov eax, dword [esp + 0x14]
lea edi, [edi + ebx*2]
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, ebp
jb 0x552b30
jmp 0x552bfb
mov ebx, eax
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x552bfb
nop dword [eax]
cmp edi, dword [ebx + 0x6c]
ja 0x552beb
cmp dword [ebx + 0x34], 0
je 0x552bfb
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
cmp dword [esp + 0x1c], 2
je 0x550ed1
mov ebp, dword [esp + 0x14]
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x55c84f
cmp eax, ebp
jae 0x552cd7
mov ebx, dword [esp + 0x14]
mov ecx, esi
cmp edi, dword [ecx + 0x64]
jae 0x552ca6
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x552c75
cmp byte [ebx + 0x31], 0x6e
jne 0x552c94
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x1c], 2
je 0x550ed1
mov ebp, dword [esp + 0x14]
mov eax, dword ss:[ebp + 0x38]
cmp eax, dword [ebp + 4]
jb case.0x553949.10
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0x18
jmp 0x55c84f
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
je 0x552c46
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x74]
inc eax
add edi, 2
mov dword [ebx + 0x38], edi
mov dword [esp + 0x30], eax
cmp eax, ebp
jb 0x552c24
jmp 0x552c46
mov ebx, dword [esp + 0x74]
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x552c4a
cmp edi, dword [ebx + 0x6c]
ja 0x552cc2
cmp dword ds:[ebx + 0x34], 0
je 0x552c4a
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
jmp 0x552c4a
mov ebx, esi
jmp 0x552c4a
mov ebp, dword ds:[esp + 0x14]
lea eax, [edi + 4]
mov dword [ebp + 8], eax
movzx eax, word [edi + 2]
lea edx, [edi + eax*2]
mov dword [ebp], edx
movzx esi, word [edx]
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x552d10
movzx eax, byte [eax + 0x55cc9c]
jmp dword [eax*4 + 0x55cc94]
mov ecx, dword [esi*4 + 0x5daefc]
lea eax, ds:[edx + 2]
mov ebx, dword [esi*4 + 0x5daea0]
lea edi, [ebp + 0x20]
mov dword [ebp], eax
mov eax, dword [esi*4 + 0x5daed0]
mov dword [edi], ecx
mov dword [ebp + 0x24], eax
mov dword [esp + 0x1c], ebx
jmp 0x552d7a
movzx ecx, word [edx + 2]
lea edi, [ebp + 0x20]
mov dword [edi], ecx
movzx eax, word [edx + 4]
mov dword [ebp + 0x24], eax
test eax, eax
jne 0x552d66
mov eax, dword [esp + 0x14]
mov ebp, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5daea0]
mov dword [esp + 0x1c], eax
lea eax, [edx + 6]
mov dword [ebp], eax
mov esi, 1
cmp ecx, esi
jae 0x552e53
mov ebx, dword [esp + 0x74]
mov eax, dword [ebp + 0x24]
cmp ecx, eax
je 0x550ed1
cmp dword ds:[esp + 0x1c], 0
je 0x55a46d
mov edx, dword [ebp + 0x38]
mov dword [ebp + 4], edx
mov edi, dword [ebp + 0x20]
cmp edi, eax
jae 0x552f0f
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
nop
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x552ee5
movzx ecx, word [edx]
test ebp, ebp
je 0x552e0e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552e0a
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
push ebp
call fcn.0057f380
test eax, eax
je 0x552f0b
mov ecx, dword [esp + 0x14]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [eax + 0x24]
jb 0x552dc0
jmp 0x552f0b
mov eax, dword [esp + 0x14]
mov esi, 1
mov dword [eax + 0x24], 1
lea edi, [eax + 0x20]
mov dword [eax + 0x20], 1
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x18]
nop dword [eax + eax]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x552f1f
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x552ec1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552ebd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
push ebp
call fcn.0057f380
test eax, eax
je 0x552f4d
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x552e60
mov ebp, dword ds:[esp + 0x14]
jmp 0x552d8c
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x552f0b
cmp edx, dword [ebx + 0x6c]
ja 0x552eff
cmp dword [ebx + 0x34], 0
je 0x552f0b
mov dword [ebx + 0x2c], esi
cmp ecx, 1
ja 0x55127f
mov ebp, dword [esp + 0x14]
cmp dword [esp + 0x1c], 2
jne 0x55a4cf
jmp 0x550ed1
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x552f4d
cmp edx, dword [ebx + 0x6c]
ja 0x552f3d
cmp dword [ebx + 0x34], 0
je 0x552f4d
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
mov edi, ebp
jmp 0x559542
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x552fb0
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax]
cmp edx, dword [ebx + 0x6c]
ja 0x552f93
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x552fff
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552fff
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x553003
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x553949
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
je case.default.0x553949
xor esi, esi
jmp 0x55953a
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x553073
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x55305c
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x5530bf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5530bf
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5530c3
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x553949.10
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
je case.0x553949.10
lea eax, [edi + 2]
mov esi, ebx
mov dword [edx], eax
jmp 0x550ee0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x553135
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x55311e
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x553185
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553185
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x553189
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x553949
mov eax, dword ds:[ebx + 0x40]
test byte [ecx + eax], 1
je case.default.0x553949
xor esi, esi
jmp 0x55953a
mov eax, dword ds:[esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x553210
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x5531f3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x553265
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553265
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x553269
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x553949.10
mov eax, dword ds:[ebx + 0x40]
test byte [ecx + eax], 1
je case.0x553949.10
lea eax, [edi + 2]
mov esi, ebx
mov dword [edx], eax
jmp 0x550ee0
mov eax, dword ds:[esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x5532f0
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x5532d3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x553345
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553345
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x553349
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.default.0x553949
mov eax, dword ds:[ebx + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x553949
xor esi, esi
jmp 0x55953a
mov eax, dword ds:[esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x5533d0
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x5533b3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x553425
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553425
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x553429
mov edx, dword [esp + 0x14]
cmp ecx, 0xff
ja case.0x553949.10
mov eax, dword ds:[ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x553949.10
lea eax, [edi + 2]
mov esi, ebx
mov dword [edx], eax
jmp 0x550ee0
mov eax, dword ds:[esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x5534b0
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x553493
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov edi, dword [esp + 0x18]
mov esi, edx
mov dword [eax + 0x38], edx
test edi, edi
je 0x5534fd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5534fd
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
nop dword [eax]
cmp ecx, 0x85
ja 0x553597
je case.0x553520.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55978a.999
nop
jmp dword [ecx*4 + 0x55cca8]
cmp esi, dword [ebx + 0x64]
jb 0x553579
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553520.10
nop
cmp esi, dword [ebx + 0x6c]
ja 0x553553
cmp dword [ebx + 0x34], 0
je case.0x553520.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
mov esi, ebx
mov ebp, edi
add dword [eax], 2
jmp 0x550ee0
cmp word [esi], 0xa
jne case.0x553520.10
mov ecx, dword [esp + 0x14]
lea eax, [esi + 2]
mov esi, ebx
mov ebp, edi
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x550ee0
nop word [eax + eax]
sub ecx, 0x2028
je case.0x553520.11
sub ecx, 1
je case.0x553520.11
xor esi, esi
mov eax, dword ds:[esp + 0x14]
jmp 0x559542
cmp word [ebx + 0x4e], 2
jne case.0x553520.10
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x553630
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop word [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x553613
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov edi, dword [esp + 0x18]
mov dword [eax + 0x38], edx
test edi, edi
je 0x55367d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55367d
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
nop dword [eax]
cmp ecx, 0x2000
ja 0x5536fc
je case.0x55978a.999
cmp ecx, 0xa0
ja 0x5536c8
nop
je case.0x55978a.999
cmp ecx, 9
je case.0x55978a.999
cmp ecx, 0x20
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov esi, ebx
mov ebp, edi
add dword [eax], 2
jmp 0x550ee0
cmp ecx, 0x1680
je case.0x55978a.999
nop dword [eax]
nop dword [eax + eax]
cmp ecx, 0x180e
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov esi, ebx
mov ebp, edi
add dword [eax], 2
jmp 0x550ee0
nop dword [eax]
cmp ecx, 0x3000
ja case.0x553520.10
je case.0x55978a.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x553520.10
movzx eax, byte [ecx + 0x55ccc0]
jmp dword [eax*4 + 0x55ccb8]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x553790
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop word [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x553773
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov edi, dword [esp + 0x18]
mov dword [eax + 0x38], edx
test edi, edi
je 0x5537dd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5537dd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
nop dword [eax]
cmp ecx, 0x2000
ja 0x553839
je case.0x553520.10
cmp ecx, 0xa0
ja 0x553825
nop
je case.0x553520.10
cmp ecx, 9
je case.0x553520.10
cmp ecx, 0x20
je case.0x553520.10
mov eax, dword ds:[esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x1680
je case.0x553520.10
cmp ecx, 0x180e
jmp 0x553812
nop dword [eax]
cmp ecx, 0x3000
ja case.0x55978a.999
je case.0x553520.10
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55978a.999
movzx eax, byte [ecx + 0x55cd28]
jmp dword [eax*4 + 0x55cd20]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x5538d0
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop word [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x5538b3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x553925
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553925
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x553929
mov edx, dword [esp + 0x14]
cmp ecx, 0x85
ja 0x553950
je case.0x553949.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x553949
jmp dword [ecx*4 + 0x55cd88]
sub ecx, 0x2028
je case.0x553949.10
nop dword [eax]
sub ecx, 1
je case.0x553949.10
lea eax, [edi + 2]
mov esi, ebx
mov dword [edx], eax
jmp 0x550ee0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x5539d0
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x5539b3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x553a25
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553a25
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x553a29
mov edx, dword [esp + 0x14]
cmp ecx, 0x85
ja 0x553a50
je case.default.0x553949
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x553949.10
jmp dword [ecx*4 + 0x55cd98]
sub ecx, 0x2028
je case.default.0x553949
nop dword [eax]
sub ecx, 1
je case.default.0x553949
xor esi, esi
jmp 0x55953a
mov eax, dword ds:[esp + 0x14]
mov ebx, dword [esp + 0x74]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x553ad0
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
nop dword [eax + eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x553ab3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx edx, word ds:[ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebp, ebp
je 0x553b1d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553b1d
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
xor ebx, ebx
shr eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
mov cl, byte [esp + 0x13]
cmp cl, 0xf
lea esi, [eax + eax*2]
sete bl
ret
movzx eax, word [edi + 2]
cmp eax, 0xd
ja case.0x55a035.15
jmp dword [eax*4 + 0x55cda8]
cmp cl, 0xf
je case.0x550f05.162
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x74]
add dword [eax], 6
jmp 0x550ee0
mov al, byte [esi*4 + 0x5dc361]
nop
cmp al, 9
je 0x553b9f
cmp al, 5
je 0x553b9f
cmp al, 8
je 0x553b9f
xor eax, eax
jmp 0x553ba4
mov eax, 1
cmp eax, ebx
jne 0x553b68
jmp case.0x550f05.162
movzx ecx, byte [esi*4 + 0x5dc361]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x5f7610]
sete dl
cmp edx, ebx
jne 0x553b68
jmp case.0x550f05.162
movzx eax, byte [esi*4 + 0x5dc361]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x553b68
jmp case.0x550f05.162
movzx eax, byte [esi*4 + 0x5dc360]
jmp 0x553bd6
movzx ecx, word ds:[edi + 4]
movzx eax, byte [esi*4 + 0x5dc360]
cmp cx, ax
je 0x553b9f
movzx edx, word [esi*4 + 0x5dc368]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x553c31
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5dbad0], eax
jne 0x553b9f
xor eax, eax
jmp 0x553ba4
movzx eax, byte [esi*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x553b9f
cmp eax, 3
je 0x553b9f
xor eax, eax
jmp 0x553ba4
nop dword [eax]
cmp edx, 0x20
ja 0x553ca7
je case.0x553b58.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x553d2d.8203
nop dword [eax + eax]
jmp dword [edx*4 + 0x55cde0]
cmp edx, 0x2000
ja 0x553d0d
je case.0x553b58.0
nop dword [eax]
cmp edx, 0x1680
ja 0x553d05
je case.0x553b58.0
sub edx, 0x85
je case.0x553b58.0
sub edx, 0x1b
je case.0x553b58.0
movzx eax, byte [esi*4 + 0x5dc361]
xor ecx, ecx
cmp dword [eax*4 + 0x5f7610], 6
sete cl
cmp ecx, ebx
jmp 0x553b62
cmp edx, 0x180e
jmp 0x553ce1
cmp edx, 0x3000
ja case.0x553d2d.8203
je case.0x553b58.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x553d2d.8203
movzx eax, byte [edx + 0x55cdfc]
jmp dword [eax*4 + 0x55cdf4]
movzx eax, byte [esi*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x553d67
cmp eax, 3
je 0x553d67
cmp edx, 0x5f
je 0x553d67
xor eax, eax
cmp eax, ebx
jmp 0x553b62
mov eax, 1
cmp eax, ebx
jmp 0x553b62
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x5db910]
lea eax, [eax*4 + 0x5db910]
cmp edx, ecx
jb 0x553da4
nop dword [eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x553db4
mov ecx, dword ds:[eax]
cmp edx, ecx
jae 0x553d90
cmp byte [esp + 0x13], 0xf
je 0x553b68
jmp case.0x550f05.162
cmp byte [esp + 0x13], 0xf
jmp 0x553b62
nop
cmp edx, 0x24
je 0x553d67
cmp edx, 0x40
je 0x553d67
cmp edx, 0x60
je 0x553d67
cmp edx, 0xa0
jb 0x553dec
nop dword [eax + eax]
cmp edx, 0xd7ff
jbe 0x553d67
cmp edx, 0xe000
jae 0x553d67
xor eax, eax
cmp eax, ebx
jmp 0x553b62
mov ax, word [esi*4 + 0x5dc368]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
sete cl
cmp ecx, ebx
jmp 0x553b62
movzx ecx, word ds:[edi + 4]
movzx edx, word [esi*4 + 0x5dc36a]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x553e51
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5dbdd0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x553b62
mov eax, dword ds:[esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x553ed0
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x553eb3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test ebp, ebp
je 0x553f1d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x553f1d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push ebp
push dword [ebx + 0x64]
mov edx, esi
push dword [ebx + 0x5c]
call fcn.0057fe20
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x553f6f
movzx ecx, word [ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x553f6f
cmp eax, dword [ebx + 0x6c]
ja 0x553f5f
cmp dword [ebx + 0x34], 0
je 0x553f6f
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
mov esi, ebx
add dword [eax], 2
jmp 0x550ee0
mov ecx, dword [esp + 0x14]
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x554084
mov ecx, dword ds:[esp + 0x14]
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 [esp + 0x1c], edx
mov dword [ecx], edi
jmp 0x554080
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x554080
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x554080
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [esp + 0x1c], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x554080
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx], edi
jmp 0x554080
movzx ecx, word [edi]
add edi, 2
mov edx, dword [esp + 0x14]
mov eax, dword [ecx*4 + 0x5daf30]
mov dword [edx], edi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5daf04]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5daed4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
movzx ebx, word [edi]
lea ecx, [edi + 2]
mov dword [eax + 0x28], ebx
mov dword [eax], ecx
cmp ebx, 0x10
je 0x5540b1
nop dword [eax + eax]
cmp ebx, 0xf
je 0x5540b1
or ebp, 0xffffffff
jmp 0x5540ca
movzx ebp, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x14]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [edx + 0x2c], eax
lea eax, [ecx + 2]
mov dword [edx], eax
mov eax, edx
mov edi, dword [eax + 0x20]
mov dword [esp + 0x44], ebp
test edi, edi
je 0x55535e
nop dword [eax]
test ebp, ebp
js 0x554fd3
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x20], eax
cmp ebp, 0xd
ja case.0x55a035.15
nop dword [eax]
jmp dword [ebp*4 + 0x55ce5c]
cmp ebx, 0xf
je case.0x550f05.162
mov esi, dword [esp + 0x18]
mov edx, 1
nop dword [eax]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x55416d
mov ebx, dword [esp + 0x14]
movzx eax, word [ecx]
add ecx, 2
mov dword [ebx + 0x38], ecx
test esi, esi
je 0x55415f
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55415f
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x554120
mov eax, dword [esp + 0x14]
jmp 0x555362
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
nop dword [eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x554193
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov edi, dword [esp + 0x20]
mov esi, 1
mov ebx, dword [esp + 0x74]
nop dword [eax]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x5542a5
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x554225
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554225
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x554229
mov edx, dword [esp + 0x14]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5dc361]
cmp al, 9
je 0x554277
nop dword [eax + eax]
cmp al, 5
je 0x554277
cmp al, 8
je 0x554277
xor eax, eax
jmp 0x55427c
mov eax, 1
nop dword [eax]
cmp eax, edi
je case.0x553949.10
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x5541c0
mov eax, dword ds:[esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x18]
jmp 0x555366
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x5542c7
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov ebx, dword [esp + 0x74]
mov esi, 1
nop word [eax + eax]
mov eax, dword ds:[esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x5543b7
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x554357
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554357
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x55435b
mov edx, dword [esp + 0x14]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je case.0x553949.10
inc esi
cmp esi, edi
jbe 0x5542f0
mov eax, dword [esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x18]
jmp 0x555366
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x5543dc
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov ebx, dword [esp + 0x74]
mov esi, 1
nop dword [eax]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x5544c5
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x554465
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554465
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x554469
mov edx, dword [esp + 0x14]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je case.0x553949.10
inc esi
cmp esi, edi
jbe 0x554400
mov eax, dword ds:[esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x18]
jmp 0x555366
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x5544e7
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov ebx, dword [esp + 0x74]
mov esi, 1
nop word [eax + eax]
mov eax, dword ds:[esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x5545cd
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x554577
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554577
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x55457b
mov edx, dword [esp + 0x14]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc360]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je case.0x553949.10
inc esi
cmp esi, edi
jbe 0x554510
mov eax, dword [esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x18]
jmp 0x555366
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax]
cmp edx, dword [ebx + 0x6c]
ja 0x5545f3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov edi, dword [esp + 0x20]
mov esi, 1
mov ebx, dword [esp + 0x74]
nop dword [eax]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x554714
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x55467b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55467b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5dc360]
cmp eax, ecx
je 0x5546e5
movzx edx, word [edx*4 + 0x5dc368]
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 + 0x5dbad0], eax
jne 0x5546e5
xor eax, eax
jmp 0x5546ea
mov eax, 1
cmp eax, edi
mov eax, dword [esp + 0x14]
je 0x5515c6
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x554620
mov esi, dword [esp + 0x18]
mov edx, ebx
jmp 0x555366
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x55473c
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov edi, dword [esp + 0x20]
mov esi, 1
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x554845
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x5547c5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5547c5
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5547c9
mov edx, dword [esp + 0x14]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x554819
cmp eax, 3
je 0x554819
xor eax, eax
jmp 0x55481e
mov eax, 1
nop
cmp eax, edi
je case.0x553949.10
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x554760
mov eax, dword ds:[esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x18]
jmp 0x555366
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x554867
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov edi, dword [esp + 0x18]
mov esi, 1
nop word [eax + eax]
mov eax, dword ds:[esp + 0x14]
mov ecx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x5549f0
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x5548ef
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5548ef
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x20
ja 0x554911
je case.0x5549e4.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x5549e4.8203
jmp dword [eax*4 + 0x55ce94]
cmp ecx, 0x2000
ja 0x5549b8
nop dword [eax]
je case.0x5549e4.8193
cmp ecx, 0x1680
ja 0x5549b0
je case.0x5549e4.8193
mov eax, ecx
sub eax, 0x85
je case.0x5549e4.8193
sub eax, 0x1b
je case.0x5549e4.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
cmp dword [eax*4 + 0x5f7610], 6
sete cl
cmp ecx, dword [esp + 0x20]
je 0x558cb7
mov eax, dword ds:[esp + 0x14]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x554890
mov esi, edi
jmp 0x555362
cmp ecx, 0x180e
jmp 0x55494e
nop dword [eax + eax]
cmp ecx, 0x3000
ja case.0x5549e4.8203
je case.0x5549e4.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x5549e4.8203
movzx eax, byte [eax + 0x55ceb0]
jmp dword [eax*4 + 0x55cea8]
cmp ebx, 0xf
jmp 0x55498d
mov ebx, ecx
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x554a1c
cmp dword [ebx + 0x34], 0
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
mov edi, dword [esp + 0x20]
mov esi, 1
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x554b1f
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], ecx
je 0x554a9d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554a9d
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x554af9
nop word [eax + eax]
cmp eax, 3
je 0x554af9
cmp edx, 0x5f
je 0x554af9
xor eax, eax
jmp 0x554afe
mov eax, 1
cmp eax, edi
mov eax, dword [esp + 0x14]
je 0x5515c6
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x554a44
mov esi, dword [esp + 0x18]
mov edx, ebx
jmp 0x555366
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
cmp ecx, dword [ebx + 0x6c]
ja 0x554b46
cmp dword ds:[ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov edi, dword [esp + 0x18]
mov esi, 1
nop word [eax + eax]
mov eax, dword ds:[esp + 0x14]
mov ecx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x554c30
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x554bd3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554bcf
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x5db910]
lea eax, [eax*4 + 0x5db910]
cmp ecx, edx
jb 0x554c04
nop dword [eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x554c25
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x554bf0
cmp ebx, 0xf
jne 0x558cb7
mov eax, dword [esp + 0x14]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x554b70
mov esi, edi
jmp 0x555362
cmp ebx, 0xf
je 0x558cb7
jmp 0x554c0d
mov ebx, ecx
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x554c5c
cmp dword [ebx + 0x34], 0
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
mov edi, dword [esp + 0x20]
mov esi, 1
mov ebx, dword [esp + 0x74]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword ds:[esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x554d65
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x554cf2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554cf2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x24
je 0x554d3f
nop dword [eax + eax]
cmp ecx, 0x40
je 0x554d3f
cmp ecx, 0x60
je 0x554d3f
cmp ecx, 0xa0
jb 0x554d2c
nop
cmp ecx, 0xd7ff
jbe 0x554d3f
cmp ecx, 0xe000
jae 0x554d3f
xor eax, eax
jmp 0x554d44
mov eax, 1
cmp eax, edi
mov eax, dword [esp + 0x14]
je 0x5515c6
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x554c90
mov esi, dword [esp + 0x18]
mov edx, ebx
jmp 0x555366
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x554d87
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov ebx, dword [esp + 0x74]
mov esi, 1
nop word [eax + eax]
mov eax, dword ds:[esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x554e77
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], edx
je 0x554e17
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554e17
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x14]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x554e1b
mov edx, dword [esp + 0x14]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5dc368]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je case.0x553949.10
inc esi
cmp esi, edi
jbe 0x554db0
mov eax, dword [esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x18]
jmp 0x555366
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x554e9c
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov ebx, dword [esp + 0x74]
mov esi, 1
nop dword [eax]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x64]
jae 0x554f97
movzx edx, word ds:[ecx]
add ecx, 2
cmp dword [esp + 0x18], 0
mov dword [eax + 0x38], ecx
je 0x554f1f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x554f1b
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x14]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5dc36a]
ret
pop ebp
add byte [ebx + 0x5e8c1c1], cl
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5dbdd0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x20]
je case.0x553949.10
inc esi
cmp esi, edi
jbe 0x554ec0
mov eax, dword [esp + 0x14]
mov edx, ebx
mov esi, dword [esp + 0x18]
jmp 0x555366
movzx eax, word ds:[ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
cmp ecx, dword [ebx + 0x6c]
ja 0x554fbc
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
cmp ebx, 0x16
jne 0x5550f3
lea edi, [ebx - 0x15]
mov ebx, dword [esp + 0x74]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x5550b4
movzx ecx, word ds:[edx]
add edx, 2
cmp dword [esp + 0x18], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x55503b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55503b
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x14]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push dword [esp + 0x1c]
mov edx, esi
push dword [ebx + 0x64]
push dword [ebx + 0x5c]
call fcn.0057fe20
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x555096
movzx ecx, word [ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x555096
cmp eax, dword [ebx + 0x6c]
ja 0x555086
cmp dword ds:[ebx + 0x34], 0
je 0x555096
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword ds:[esp + 0x14]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x554fe3
mov esi, dword [esp + 0x18]
mov edx, ebx
jmp 0x555366
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x5550dc
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x55a035.15
cmp dword [esp + 0x18], 0
je case.default.0x55510a
jmp dword [eax*4 + 0x55cf10]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x74]
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov dword [esp + 0x30], edi
cmp edi, ebx
je 0x550ed1
cmp dword ds:[esp + 0x1c], 0
je 0x55c1d1
mov esi, dword [eax + 0x38]
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], esi
mov ebp, dword [eax + 0x28]
test ecx, ecx
js 0x557325
xor eax, eax
cmp ebp, 0xf
sete al
mov dword [esp + 0x20], eax
cmp ecx, 0xd
ja case.0x55a035.15
jmp dword [ecx*4 + 0x55cf50]
xor esi, esi
mov ebx, edi
jmp 0x55953a
mov ebx, dword [esp + 0x14]
mov esi, 1
mov edi, dword [esp + 0x74]
mov edx, dword [ebx + 0x38]
cmp edx, dword [edi + 0x64]
jae 0x55599b
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55596a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x80
jae 0x555986
mov eax, dword ds:[edi + 0x40]
test byte [ecx + eax], 8
jne 0x55548d
inc esi
cmp esi, dword [ebx + 0x20]
jbe 0x555920
mov eax, dword [esp + 0x14]
mov edx, edi
mov esi, dword [esp + 0x18]
jmp 0x555366
mov ebx, edi
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
cmp edx, dword [ebx + 0x6c]
ja 0x5559bf
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
nop dword [eax]
jmp dword [eax*4 + 0x55d088]
mov ebx, dword [esp + 0x14]
mov esi, 1
nop dword [eax]
mov eax, dword [esp + 0x74]
mov edx, dword [ebx + 0x38]
cmp edx, dword [eax + 0x64]
jae 0x5563ec
movzx eax, word ds:[edx]
mov ecx, 0xff
cmp ax, cx
ja 0x5563dc
mov ecx, eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x550f05.162
inc esi
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp esi, edi
jbe 0x5563a0
jmp 0x55535a
mov ebx, eax
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x553949.10
nop dword [eax]
cmp edx, dword [ebx + 0x6c]
ja 0x556413
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
cmp edi, ebx
jae 0x557309
nop dword [eax + eax]
mov ecx, 1
cmp esi, dword [edx + 0x64]
jae 0x5567ab
cmp dword [esp + 0x18], 0
je 0x55678e
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [esp + 0x4c]
mov eax, 2
cmove ecx, eax
cmp ebp, 0xf
je 0x557309
mov eax, dword [esp + 0x14]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebx
jb 0x556760
jmp 0x557309
mov ebx, dword [esp + 0x74]
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x557309
nop
cmp esi, dword [ebx + 0x6c]
ja 0x5567d3
cmp dword [ebx + 0x34], 0
je 0x557309
mov dword [ebx + 0x2c], 1
jmp 0x5572ff
nop
cmp edi, ebx
jae 0x557309
mov ebx, dword [esp + 0x20]
nop dword [eax]
mov eax, dword ds:[esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55684a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55684a
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 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5dc361]
ret
pop ebp
add byte [ecx + ecx], bh
je 0x556897
nop dword [eax]
cmp al, 5
je 0x556897
cmp al, 8
je 0x556897
xor eax, eax
jmp 0x55689c
mov eax, 1
nop dword [eax]
cmp eax, ebx
je 0x557309
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x5567f0
nop dword [eax]
jmp 0x557309
mov ebx, eax
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x557309
cmp esi, dword [ebx + 0x6c]
ja 0x5568e9
cmp dword [ebx + 0x34], 0
je 0x557309
mov dword [ebx + 0x2c], edx
jmp 0x5572ff
cmp edi, ebx
jae 0x557309
mov ebp, dword [esp + 0x14]
nop dword [eax]
mov eax, dword [esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x55694d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55694d
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 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je 0x557309
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x556900
nop dword [eax]
jmp 0x557309
cmp edi, ebx
jae 0x557309
mov ebp, dword [esp + 0x14]
mov eax, dword ds:[esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x556a0a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556a0a
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 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je 0x557309
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x5569b1
jmp 0x557309
nop
cmp edi, ebx
jae 0x557309
mov ebp, dword [esp + 0x14]
nop dword [eax]
mov eax, dword ds:[esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x556aca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556aca
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 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc360]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je 0x557309
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x556a70
jmp 0x557309
nop
cmp edi, ebx
jae 0x557309
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x5572cd
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x556b7d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556b7d
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 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5dc360]
cmp eax, ecx
je 0x556bf4
movzx edx, word [edx*4 + 0x5dc368]
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 + 0x5dbad0], eax
jne 0x556bf4
xor eax, eax
jmp 0x556bf9
mov eax, 1
nop dword [eax]
cmp eax, ebx
je 0x557309
mov eax, dword ds:[esp + 0x14]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x74]
inc ebp
mov dword [eax + 0x38], esi
cmp ebp, dword [eax + 0x24]
jb 0x556b30
jmp 0x557309
cmp edi, ebx
jae 0x557309
mov ebx, dword [esp + 0x20]
nop word [eax + eax]
mov eax, dword [esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword ds:[esp + 0x18], 0
movzx ecx, word [esi]
je 0x556c97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556c97
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 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x556cdf
cmp eax, 3
je 0x556cdf
xor eax, eax
jmp 0x556ce4
mov eax, 1
cmp eax, ebx
je 0x557309
mov eax, dword ds:[esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x556c40
jmp 0x557309
cmp edi, ebx
jae 0x557309
mov ebx, dword [esp + 0x20]
nop word [eax + eax]
mov eax, dword [esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword ds:[esp + 0x18], 0
movzx ecx, word [esi]
je 0x556d77
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556d77
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
nop word [eax + eax]
cmp ecx, 0x20
ja 0x556da7
je case.0x556e6d.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x556e6d.8203
nop dword [eax + eax]
jmp dword [eax*4 + 0x55d1c8]
cmp ecx, 0x2000
ja 0x556e4d
je case.0x556e6d.8193
nop dword [eax]
cmp ecx, 0x1680
ja 0x556e45
je case.0x556e6d.8193
mov eax, ecx
sub eax, 0x85
je case.0x556e6d.8193
sub eax, 0x1b
je case.0x556e6d.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
cmp dword [eax*4 + 0x5f7610], 6
sete cl
cmp ecx, ebx
nop
je 0x557309
mov ecx, dword [esp + 0x14]
lea eax, [edx + edx]
inc edi
add dword [ecx + 0x38], eax
mov esi, dword [ecx + 0x38]
cmp edi, dword [ecx + 0x24]
jb 0x556d20
nop dword [eax]
jmp 0x557309
cmp ecx, 0x180e
jmp 0x556de2
cmp ecx, 0x3000
ja case.0x556e6d.8203
je case.0x556e6d.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x556e6d.8203
movzx eax, byte [eax + 0x55d1e4]
jmp dword [eax*4 + 0x55d1dc]
cmp ebp, 0xf
jmp 0x556e1f
nop dword [eax]
cmp edi, ebx
jae 0x557309
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x5572cd
cmp dword [esp + 0x18], 0
movzx edx, word [esi]
je 0x556edd
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556edd
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 + 0x5f3170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x556f39
nop word [eax + eax]
cmp eax, 3
je 0x556f39
cmp edx, 0x5f
je 0x556f39
xor eax, eax
jmp 0x556f3e
mov eax, 1
nop
cmp eax, ebx
je 0x557309
mov eax, dword ds:[esp + 0x14]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x74]
inc ebp
mov dword [eax + 0x38], esi
cmp ebp, dword [eax + 0x24]
jb 0x556e90
jmp 0x557309
cmp edi, ebx
jae 0x557309
mov ebx, dword [esp + 0x14]
nop word [eax + eax]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x5572cd
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x556fcd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556fcd
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 ds:[ebx + 0x2c]
mov edx, dword [eax*4 + 0x5db910]
lea eax, [eax*4 + 0x5db910]
cmp ecx, edx
jb 0x557004
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x557031
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x556ff0
cmp ebp, 0xf
jne 0x557309
mov edx, dword [esp + 0x74]
lea eax, [edi + edi]
add dword [ebx + 0x38], eax
mov eax, dword [esp + 0x30]
mov esi, dword [ebx + 0x38]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [ebx + 0x24]
jb 0x556f80
jmp 0x557309
cmp ebp, 0xf
je 0x557309
jmp 0x55700d
nop dword [eax]
cmp edi, ebx
jae 0x557309
mov ebx, dword [esp + 0x20]
nop dword [eax]
mov eax, dword ds:[esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword [esp + 0x18], 0
movzx ecx, word [esi]
je 0x5570aa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5570aa
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 0x5570ff
cmp ecx, 0x40
je 0x5570ff
nop dword [eax]
cmp ecx, 0x60
je 0x5570ff
cmp ecx, 0xa0
jb 0x5570ec
nop word [eax + eax]
cmp ecx, 0xd7ff
jbe 0x5570ff
cmp ecx, 0xe000
jae 0x5570ff
xor eax, eax
jmp 0x557104
mov eax, 1
cmp eax, ebx
je 0x557309
mov eax, dword ds:[esp + 0x14]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x557050
jmp 0x557309
cmp edi, ebx
jae 0x557309
mov ebp, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [esp + 0x74]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x5568c5
cmp dword ds:[esp + 0x18], 0
movzx ecx, word [esi]
je 0x557197
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557197
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 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5dc368]
shr eax, 0xb
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x20]
je 0x557309
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x557140
jmp 0x557309
cmp edi, ebx
jae 0x557309
mov ebp, dword [esp + 0x14]
nop dword [eax]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x5572cd
cmp dword [esp + 0x18], 0
movzx edx, word [esi]
je 0x55724d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55724d
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov ecx, dword ss:[ebp + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5dc36a]
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 + 0x5dbdd0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x20]
je 0x557309
mov eax, dword ds:[esp + 0x30]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x74]
inc eax
mov dword [ebp + 0x38], esi
mov dword [esp + 0x30], eax
cmp eax, ebx
jb 0x557200
jmp 0x557309
mov ebx, dword ds:[esp + 0x74]
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x557309
cmp esi, dword [ebx + 0x6c]
ja 0x5572fc
cmp dword [ebx + 0x34], 0
je 0x557309
mov dword [ebx + 0x2c], edi
nop
cmp ecx, 1
ja 0x55127f
cmp dword [esp + 0x1c], 2
mov ebp, dword [esp + 0x18]
je 0x550fa1
mov ebp, dword ds:[esp + 0x14]
jmp 0x55c135
cmp ebp, 0x16
jne 0x557465
mov esi, dword [esp + 0x74]
cmp edi, ebx
jae 0x55744c
mov ebx, dword ds:[esp + 0x18]
jmp 0x557349
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x557418
movzx ecx, word [edx]
add edx, 2
mov ebp, dword [esp + 0x14]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55739d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55739d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebp + 0x38], esi
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov eax, dword [esp + 0x74]
mov edx, esi
push 0
push ebx
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.0057fe20
mov esi, dword ds:[esp + 0x74]
mov dword [ebp + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x557409
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x557409
nop dword [eax + eax]
cmp eax, dword [esi + 0x6c]
ja 0x5573f3
cmp dword [esi + 0x34], 0
je 0x557409
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55127f
inc edi
cmp edi, dword [ebp + 0x24]
jb 0x557345
jmp 0x557450
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x55744c
cmp edx, dword [esi + 0x6c]
ja 0x55743c
cmp dword [esi + 0x34], 0
je 0x55744c
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov ebp, dword [esp + 0x14]
cmp dword [esp + 0x1c], 2
je 0x550ed5
nop dword [eax + eax]
jmp 0x55c07a
lea eax, [ebp - 6]
cmp eax, 0xf
ja case.0x55a035.15
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x557d5c
nop dword [eax]
jmp dword [eax*4 + 0x55d244]
nop dword [eax]
jmp dword [eax*4 + 0x55d2fc]
mov ebp, dword [esp + 0x14]
xor eax, eax
cmp bl, 0x74
mov ebx, dword [esp + 0x74]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [ebx + 0x52]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
imul ecx, eax
mov eax, dword [ebx + 0x54]
lea ecx, [eax + ecx*2]
lea eax, [edi + 6]
mov dword [ebp], eax
test edx, edx
je 0x55870c
nop dword [eax + eax]
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
cmp eax, dword [ebp + 0x50]
jae 0x5586d4
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x55870c
movzx eax, word [ebx + 0x52]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x5586b0
nop
jmp 0x55870c
mov ebp, dword [esp + 0x14]
xor eax, eax
cmp bl, 0x72
mov ebx, dword [esp + 0x74]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [edi + 2]
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
lea eax, [edi + 4]
mov dword [ebp], eax
mov esi, dword [ebp]
movzx ecx, word [esi]
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x558725
movzx eax, byte [eax + 0x55d434]
jmp dword [eax*4 + 0x55d42c]
mov edx, dword [ecx*4 + 0x5daefc]
lea eax, [esi + 2]
mov edi, dword [ecx*4 + 0x5daea0]
mov dword [ebp], eax
mov eax, dword [ecx*4 + 0x5daed0]
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x24], eax
mov dword [esp + 0x1c], edi
jmp 0x558787
movzx edx, word [esi + 2]
mov dword [ebp + 0x20], edx
movzx ecx, word [esi + 4]
mov dword [ebp + 0x24], ecx
movzx eax, word [esi]
mov edi, dword [eax*4 + 0x5daea0]
mov dword [esp + 0x1c], edi
test ecx, ecx
jne 0x558781
mov dword [ebp + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [ebp], eax
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x50]
jae 0x5587b8
mov ecx, dword ss:[ebp + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x5587b8
cmp ecx, dword [ebp + eax*4 + 0x58]
je 0x550ed1
jmp 0x5587d8
nop dword [eax + eax]
test edx, edx
je 0x550ed1
test dword [ebx + 0x8c], 0x200
jne 0x550ed1
mov esi, 1
cmp edx, esi
jb 0x55881e
nop dword [eax + eax]
mov edx, dword ss:[ebp + 0x28]
lea eax, [esp + 0x50]
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push ebp
call fcn.00550ac0
test eax, eax
jne 0x558896
mov eax, dword [esp + 0x50]
inc esi
add eax, eax
add dword [ebp + 0x38], eax
mov edx, dword [ebp + 0x20]
cmp esi, edx
jbe 0x5587f0
mov ebx, dword [ebp + 0x24]
mov esi, dword [esp + 0x74]
cmp edx, ebx
je 0x550ed5
test edi, edi
je 0x55c2a7
mov eax, dword [ebp + 0x38]
mov esi, 1
mov dword [ebp + 4], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + ecx*4 + 0x58]
sub eax, dword [ebp + ecx*4 + 0x54]
mov dword [ebp + 0xc], eax
mov edi, dword [ebp + 0x20]
cmp edi, ebx
mov ebx, dword [esp + 0x74]
jae 0x559b29
nop dword [eax]
mov edx, dword [ebp + 0x28]
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push ebp
call fcn.00550ac0
test eax, eax
jne 0x5588f0
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, dword [ebp + 0xc]
cmovne esi, ecx
add eax, eax
add dword [ebp + 0x38], eax
inc edi
cmp edi, dword [ebp + 0x24]
jb 0x558860
jmp 0x558929
jle 0x5588a2
mov eax, dword [ebx + 0x64]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb case.0x553949.10
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
nop dword [eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x5588d3
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
jle 0x558929
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x558929
mov eax, dword [ebx + 0x64]
cmp eax, dword [ebx + 0x6c]
jbe 0x558929
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
test esi, esi
jne 0x559b29
mov dword ss:[ebp + 0x24], edi
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x55c84f
mov edx, dword [ebp + 0x28]
lea eax, [esp + 0x34]
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push ebp
call fcn.00550ac0
test eax, eax
je 0x5589b3
nop
jle 0x55896c
mov eax, dword [ebx + 0x64]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb case.0x553949.10
movzx eax, word ds:[ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x553949.10
cmp ecx, dword [ebx + 0x6c]
ja 0x55899c
cmp dword [ebx + 0x34], 0
je case.0x553949.10
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov eax, dword ds:[esp + 0x34]
add eax, eax
add dword [ebp + 0x38], eax
jmp 0x550ed1
mov ecx, dword [esp + 0x14]
add edi, 2
mov dword [ecx], edi
nop
movzx eax, word ds:[edi + 2]
lea eax, [edi + eax*2]
mov edi, eax
mov dword [ecx], eax
cmp word [edi], 0x78
je 0x5589d0
add eax, 4
mov dword [ecx], eax
jmp 0x550ee0
cmp dword [esi + 0x30], 0
mov ebp, dword [esp + 0x14]
jne 0x558a06
cmp dword ss:[ebp + 0x18], 0
jne 0x55bd8f
xor ecx, ecx
jmp 0x55c631
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x34]
push eax
mov edx, esi
mov ecx, ebx
call fcn.005509c0
mov esi, eax
test esi, esi
jg case.0x550f05.162
js 0x559536
mov eax, dword ds:[esp + 0x34]
mov esi, dword [esp + 0x74]
add eax, eax
add dword [ebx], eax
jmp 0x550ee0
movzx eax, word [edi + 2]
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x558a61
add eax, 0xfffffffe
mov dword [ebp + 0xc], eax
add edi, 4
mov dword [ebp], edi
movzx eax, word [edi]
cmp eax, 0x76
je 0x558a7c
cmp eax, 0x77
jne 0x558abe
mov ebx, dword [esp + 0x74]
lea eax, [esp + 0x34]
push eax
mov edx, ebx
mov ecx, ebp
call fcn.005509c0
mov esi, eax
test esi, esi
jle 0x558a9f
xor esi, esi
jmp 0x55953a
nop
js 0x55953a
mov eax, dword [esp + 0x34]
add eax, eax
add dword [ebp], eax
mov edi, dword [ebp]
mov eax, dword [esp + 0x34]
sub dword [ebp + 0xc], eax
jmp 0x558ac2
mov ebx, dword [esp + 0x74]
movzx ecx, word [edi]
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x558ae0.150
movzx eax, byte [eax + 0x55d458]
nop dword [eax + eax]
jmp dword [eax*4 + 0x55d43c]
mov ecx, dword [ebp + 0x44]
cmp ecx, 0xffffffff
je case.0x558ae0.148
movzx eax, word ds:[edi + 2]
cmp eax, 0xffff
je case.0x558ae0.149
cmp eax, ecx
je case.0x558ae0.149
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp]
lea edi, [ecx + eax*2]
mov dword [ebp], edi
cmp byte [ebp + 0x31], 0x8f
jne 0x550ed1
mov eax, 0x2008f
mov byte [ebp + 0x30], 0x23
mov dword [esp + 0x28], eax
jmp 0x55c84f
mov ebx, dword ss:[ebp + 0x44]
cmp ebx, 0xffffffff
je case.0x558ae0.148
mov eax, dword ds:[esp + 0x74]
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.0x558ae0.148
movzx eax, word [ecx]
dec edx
cmp eax, ebx
ret
je 0x558b98
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x558b64
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebp
jmp case.0x558ae0.148
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
movzx eax, word [ecx]
mov dword [esp + 0x14], ebp
movzx eax, byte [eax + 0x5f7690]
jmp 0x558b19
movzx eax, word [edi + 2]
lea eax, [eax*2 - 2]
cmp eax, dword [ebp + 0x50]
jae case.0x558ae0.148
cmp dword ss:[ebp + eax*4 + 0x54], 0xffffffff
je case.0x558ae0.148
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f7690]
jmp 0x558b19
movzx esi, word [ebx + 0x52]
movzx ecx, word [edi + 2]
mov eax, dword [ebx + 0x54]
movzx edx, word [edi + 4]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x558ae0.148
mov edi, dword [ebp + 0x50]
nop dword [eax + eax]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x558c3e
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne case.0x558ae0.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x558c20
jmp case.0x558ae0.148
movzx edx, word [edi + 2]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
test edi, edi
je 0x558ca5
nop
test edx, edx
je 0x558cce
mov ebp, 0xfc00
nop dword [eax]
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [esi + 0x60]
jbe 0x558cb7
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, bp
cmp ax, word [esp + 0x3c]
jne 0x558c9a
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x558c70
nop
jmp 0x558cce
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jle 0x558cc6
mov eax, dword [esp + 0x14]
xor esi, esi
mov ebx, dword [esp + 0x74]
jmp 0x559542
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x6c]
jae 0x558cdd
mov dword [esi + 0x6c], eax
add dword [ebx], 4
mov ebp, edi
jmp 0x550ee0
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov dword [eax], edi
cmp word [edi], 0x78
je case.0x550f05.120
jmp 0x550ee0
movzx eax, word ds:[edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x558d9f
mov ecx, 0x8a
cmp ax, cx
je 0x558d9f
mov ebx, dword ds:[esp + 0x74]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x70]
mov ecx, dword [ebx + 0x10]
add ecx, dword [ebp + 0x4c]
mov esi, ecx
mov dword [esp + 0x24], ecx
sub esi, edx
mov eax, dword [esi + 0x4c]
mov dword [ebp + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x558db1
mov eax, dword [ebp + 0x50]
shl eax, 2
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.00586330
mov eax, dword [ebp + 0x50]
add esp, 0xc
mov dword [esi + 0x50], eax
mov eax, dword [ebp + 0x40]
mov dword [esi + 0x40], eax
mov eax, ebp
sub eax, esi
mov dword [ebp + 0x10], eax
mov esi, 1
jmp 0x55953a
mov ebp, dword [esp + 0x14]
xor esi, esi
mov ebx, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
movzx eax, word ds:[edi]
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x558dd0.134
movzx eax, byte [eax + 0x55d488]
jmp dword [eax*4 + 0x55d46c]
mov eax, dword ss:[ebp + 0x38]
cmp eax, dword [ebx + 0x70]
jbe 0x558dec
mov dword [ebx + 0x70], eax
mov eax, dword [esi + 0x38]
mov dword [ebp + 0x38], eax
jmp case.0x558dd0.134
mov eax, dword ss:[ebp + 0x38]
cmp eax, dword [ebx + 0x70]
jbe 0x558e0c
mov dword [ebx + 0x70], eax
mov eax, dword [esi + 0x38]
mov dword [ebp + 0x38], eax
mov eax, ebp
sub eax, esi
mov dword [ebp + 0x10], eax
mov ecx, dword [esi]
movzx eax, word [ecx + 2]
add eax, eax
cmp word [eax + ecx], 0x78
jne case.0x558dd0.134
nop dword [eax]
add eax, ecx
mov ecx, eax
mov dword [esi], eax
movzx eax, word [eax + 2]
add eax, eax
cmp word [ecx + eax], 0x78
je 0x558e30
jmp case.0x558dd0.134
push dword [esp + 0x18]
mov edx, dword [ebp + 0x38]
mov ecx, dword [esi + 0x38]
call fcn.0057f9c0
test eax, eax
jne case.0x558dd0.134
xor esi, esi
jmp 0x55953a
movzx eax, word [edi + 4]
cmp dword [ebp + 0x44], eax
jne 0x558eaa
mov esi, ecx
sub esi, edx
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00586330
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebp + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebp + 0x44], eax
mov eax, dword [esi]
add eax, 4
jmp 0x550ece
mov dword [ebp + 0x48], eax
lea edx, [eax + eax]
mov eax, dword [esi + 0x38]
lea ecx, [edx - 2]
sub eax, dword [ebx + 0x5c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x54], eax
mov eax, dword [ebp + 0x38]
sub eax, dword [ebx + 0x5c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x58], eax
cmp ecx, dword [ebp + 0x50]
jb case.0x558dd0.134
mov dword [ebp + 0x50], edx
mov edx, dword ss:[ebp]
cmp word [edx], 0x7c
jne 0x558f05
push dword [esp + 0x48]
lea eax, [ebp + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00586330
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x55953a
mov cl, byte [ebp + 0x31]
cmp cl, 0x79
je 0x558f29
test esi, esi
je 0x55c265
mov eax, dword ss:[ebp + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x55c265
add dword [ebp], 4
jmp 0x550ed1
mov ecx, dword ds:[esp + 0x14]
mov ebx, dword [esp + 0x74]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x5c]
jne case.0x553949.10
test byte [ebx + 0x88], 1
jne case.0x553949.10
lea eax, ds:[edi + 2]
mov esi, ebx
mov dword [ecx], eax
jmp 0x550ee0
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x5c]
je 0x558f56
xor esi, esi
jmp 0x55953a
mov ebx, dword [esp + 0x74]
test byte [ebx + 0x88], 2
je 0x558f94
xor esi, esi
jmp 0x55953a
test byte ds:[ebx + 0x8c], 0x10
jne 0x558ff1
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov ecx, dword [ebx + 0x38]
mov esi, dword [eax + 0x64]
cmp ecx, esi
jae 0x559105
mov edx, dword [eax + 0x98]
lea edi, [eax + 0x9c]
test edx, edx
je 0x55903b
push ebp
push edi
push esi
call fcn.0057f0c0
mov esi, dword ds:[esp + 0x74]
test eax, eax
je 0x55909d
jmp 0x559080
mov ebx, dword [esp + 0x74]
mov edx, dword ds:[esp + 0x14]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebx + 0x64]
jae 0x559010
xor esi, esi
jmp 0x55953a
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je 0x55902f
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
add dword [edx], 2
mov esi, dword [esp + 0x74]
jmp 0x550ee0
mov edx, dword [edi]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [esp + 0x74]
ja 0x559097
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x559097
nop
cmp edx, 1
je 0x559080
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
jne 0x559097
lea edi, [esi + 0x9c]
mov ecx, dword [edi]
mov eax, dword [esi + 0x64]
add ecx, ecx
sub eax, ecx
cmp dword [ebx + 0x38], eax
je 0x559107
jmp 0x55909d
lea edi, [esi + 0x9c]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x55187c
mov ecx, dword [ebx + 0x38]
mov ebx, dword [esp + 0x74]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x64]
jb 0x551880
cmp dword [ebx + 0x98], 0
jne 0x551880
cmp dword [edi], 2
jne 0x551880
mov ax, word ds:[ecx]
cmp ax, word [ebx + 0xa0]
jne 0x551880
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov esi, eax
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x559129
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x55127f
add dword [ebx], 2
jmp 0x550ee0
test byte ds:[esi + 0x88], 1
mov ebx, dword [esp + 0x14]
je 0x559152
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x5c]
je case.0x550f05.162
mov ecx, dword ds:[ebx + 0x38]
mov esi, dword [esi + 0x5c]
cmp ecx, esi
je 0x5591c8
mov eax, dword [esp + 0x74]
cmp ecx, dword [eax + 0x64]
jne 0x559186
test dword ds:[eax + 0x8c], 0x200000
je case.0x550f05.162
mov edx, dword [eax + 0x98]
test edx, edx
je 0x5591d4
cmp ecx, esi
jbe 0x5591bb
push ebp
add eax, 0x9c
push eax
push esi
call fcn.0057f1a0
test eax, eax
je 0x5591bb
mov eax, 1
jmp 0x5591bd
xor eax, eax
nop dword [eax]
test eax, eax
je case.0x550f05.162
mov esi, dword [esp + 0x74]
add dword [ebx], 2
jmp 0x550ee0
mov edi, dword [eax + 0x9c]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ecx, eax
jb case.0x550f05.162
mov esi, dword [esp + 0x74]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x550f05.162
nop
cmp edi, 1
je 0x5591cc
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x5591cc
jmp case.0x550f05.162
mov ebx, dword [esp + 0x14]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x559337
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x55925d
mov edi, dword [esp + 0x18]
add eax, 0x9c
push edi
push eax
push esi
call fcn.0057f0c0
mov esi, dword [esp + 0x74]
test eax, eax
jne 0x559389
jmp 0x5592b1
mov edx, dword [eax + 0x9c]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [esp + 0x74]
ja 0x5592ad
mov ax, word ds:[ecx]
cmp ax, word [esi + 0xa0]
jne 0x5592ad
cmp edx, 1
je 0x559389
mov ax, word ds:[ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x559389
mov edi, dword [esp + 0x18]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je 0x559328
mov ecx, dword [ebx + 0x38]
mov ebx, dword [esp + 0x74]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x64]
jb 0x55932c
cmp dword [ebx + 0x98], 0
jne 0x55932c
cmp dword [ebx + 0x9c], 2
jne 0x55932c
mov ax, word ds:[ecx]
cmp ax, word [ebx + 0xa0]
jne 0x55932c
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
mov esi, dword [esp + 0x74]
test byte [esi + 0x88], 2
jne case.0x550f05.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x559389
nop word [eax + eax]
cmp ecx, dword [esi + 0x6c]
ja 0x559373
cmp dword [esi + 0x34], 0
je 0x559389
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x55127f
add dword [ebx], 2
jmp 0x550ed5
mov ebx, dword [esp + 0x74]
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x5c]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x38], eax
je 0x558f56
xor esi, esi
jmp 0x55953a
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x550ee0
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x60]
je 0x5594c9
movzx eax, word ds:[edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test ebp, ebp
je 0x55942e
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x5593ff
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55942e
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 0x55943a
mov dword [esi + 0x6c], edx
test dword [esi + 0x8c], 0x20000
je 0x5594a6
cmp ecx, 0x5f
jne 0x55945b
lea edi, [ecx - 0x5e]
jmp 0x5594cb
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x55949c
cmp eax, 3
jne 0x5594c9
mov edi, 1
jmp 0x5594cb
cmp ecx, 0xff
ja 0x5594c9
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je 0x5594c9
mov edi, 1
jmp 0x5594cb
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jb 0x559599
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je 0x55950c
cmp ecx, dword [esi + 0x6c]
ja 0x5594fc
cmp dword [esi + 0x34], 0
je 0x55950c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x55127f
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 0x55952c
xor edx, 1
test edx, edx
je 0x550ee0
xor esi, esi
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x70]
jbe 0x559551
mov dword [ebx + 0x70], eax
mov ebp, dword [esp + 0x14]
cmp dword [ebp + 0x18], 0
je 0x55ca32
sub ebp, dword ss:[ebp + 0x10]
mov eax, dword [ebx + 0xa8]
mov dword [esp + 0x14], ebp
or dword [eax + 0x3c], 2
movzx eax, byte [ebp + 0x30]
dec eax
cmp eax, 0xe0
ja case.0x55a035.15
movzx eax, byte [eax + 0x55d594]
jmp dword [eax*4 + 0x55d49c]
lea esi, ds:[ecx + 2]
mov edx, esi
test ebp, ebp
je 0x559609
cmp edx, eax
jae 0x5595ce
mov ax, word ds:[edx]
and ax, word [esp + 0x40]
cmp ax, word [esp + 0x3c]
jne 0x5595ce
add edx, 2
movzx ecx, word ds:[ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55960c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x55960c
movzx ecx, word [ecx]
mov esi, dword [esp + 0x74]
cmp edx, dword [esi + 0x70]
jbe 0x55961c
mov dword [esi + 0x70], edx
test dword [esi + 0x8c], 0x20000
je 0x559688
cmp ecx, 0x5f
jne 0x55963d
lea edx, [ecx - 0x5e]
jmp 0x55950e
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x55967e
cmp eax, 3
jne 0x55950c
mov edx, 1
jmp 0x55950e
cmp ecx, 0xff
ja 0x55950c
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je 0x55950c
mov edx, 1
jmp 0x55950e
test esi, esi
je 0x55bd85
mov eax, dword ds:[esp + 0x14]
jmp 0x559542
cmp esi, 0xfffffc1f
jne 0x5596fc
mov ecx, dword ss:[ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x7c], eax
jae case.0x55978a.998
cmp word [ecx], 0x78
je 0x559706
cmp word [eax], 0x78
jmp 0x5596fe
test esi, esi
nop
jne case.0x55978a.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebp], edi
cmp word [edi], 0x78
je 0x55c634
xor esi, esi
jmp 0x55953a
cmp esi, 0xfffffc19
je 0x55bdbd
test esi, esi
je 0x55974c
nop dword [eax]
cmp esi, 0xfffffc1f
jne case.0x55978a.998
mov ecx, dword ss:[ebp]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebp], edi
cmp word [edi], 0x78
je 0x55c703
xor esi, esi
jmp 0x55953a
test esi, esi
jg 0x559791
je case.0x55978a.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x55978a.998
jmp dword [eax*4 + 0x55d678]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x14]
jne 0x559542
xor esi, esi
jmp 0x559542
test esi, esi
jg 0x5597d1
je case.0x5597ca.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x55978a.998
jmp dword [eax*4 + 0x55d694]
mov eax, esi
sub eax, 1
jne 0x5535b7
mov eax, dword [ebp + 0x20]
nop
test eax, eax
je case.0x558ae0.148
mov ecx, dword [ebp]
nop dword [eax + eax]
movzx eax, word ds:[ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x5597f0
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f7690]
jmp 0x558b19
test esi, esi
je 0x55be98
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
je 0x558f29
mov eax, dword [esp + 0x14]
jmp 0x559542
nop word [eax + eax]
cmp esi, 0xfffffc1a
jne 0x559877
mov dword [ebp + 0x24], 1
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x55c293
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x559862
jmp 0x5598d1
nop word [eax + eax]
cmp esi, 0xfffffc1f
jne 0x5598b2
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x7c], eax
jae case.0x55978a.998
cmp word [ecx], 0x78
je 0x5598ba
cmp word [eax], 0x78
jmp 0x5598b4
test esi, esi
jne case.0x55978a.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x55c5f2
cmp dword [ebp + 0x24], 0
jne 0x550ecb
cmp dword ss:[ebp + 0x28], 0
jne 0x550ecb
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
je 0x55beab
mov eax, dword ds:[esp + 0x14]
jmp 0x559542
test esi, esi
je 0x55bec7
mov eax, dword [esp + 0x14]
jmp 0x559542
mov edx, dword [ebp + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x559988
mov eax, dword ss:[ebp + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x84], eax
jne 0x559988
cmp esi, 0xfffffc1f
jne case.0x55978a.999
nop dword [eax + eax]
cmp dword [ebx + 0x7c], ecx
jae case.0x55978a.999
cmp word [edx], 0x78
je 0x559990
cmp word [ecx], 0x78
je 0x559990
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x55c6d6
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp esi, 0xfffffc1e
jne case.0x55978a.998
mov ecx, dword [ebp]
mov edx, dword [ebx + 0x80]
add ecx, 4
call fcn.00580020
test eax, eax
jne case.0x55978a.998
mov eax, dword ss:[ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x80], eax
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov eax, dword ss:[ebp + 0x44]
mov esi, 0xfffffc1c
mov dword [ebx + 0x84], eax
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov eax, dword [ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x80], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x84], eax
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov eax, dword [ebp]
mov esi, 0xfffffc1e
add eax, 4
mov dword [ebx + 0x80], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x84], eax
mov eax, dword [esp + 0x14]
jmp 0x559542
nop dword [eax + eax]
test esi, esi
jne case.0x55978a.998
mov eax, dword [ebp]
mov esi, 0xfffffc1f
mov dword [ebx + 0x7c], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x84], eax
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jb 0x559aa5
mov eax, dword ds:[esp + 0x14]
jmp 0x559542
mov edx, dword [ebp + 0x28]
lea eax, [esp + 0x58]
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push ebp
call fcn.00550ac0
test eax, eax
je 0x55c29e
nop
jle 0x559acc
mov eax, dword [ebx + 0x64]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb case.0x55978a.999
movzx eax, word ds:[ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55978a.999
cmp ecx, dword [ebx + 0x6c]
ja 0x559afc
cmp dword [ebx + 0x34], 0
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov eax, dword [ebp + 0xc]
neg eax
add eax, eax
add dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jb case.0x553949.10
mov edi, dword ss:[ebp]
mov byte [ebp + 0x30], 0x15
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov eax, dword [ebp + 4]
cmp dword [ebp + 0x38], eax
jne 0x55c2b3
jmp 0x55953a
nop
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword ss:[ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x559bd4
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x559bb2
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x559c05
cmp byte [ebp + 0x31], 0x6e
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55c84f
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x559bf6
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
jne case.0x55978a.998
add dword [ebp + 0x38], 0xfffffffe
jmp 0x552c59
nop dword [eax + eax]
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov ecx, dword ss:[ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x559cb4
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55978a.999
nop dword [eax + eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x559c92
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx eax, word ds:[ecx]
cmp dword [ebp + 0x28], eax
je 0x559cd2
cmp dword [ebp + 0x2c], eax
jne case.0x55978a.999
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x55c84f
add dword [ebp + 0x38], 0xfffffffe
test esi, esi
je 0x551fe9
mov eax, dword [esp + 0x14]
jmp 0x559542
nop dword [eax]
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov esi, dword ss:[ebp + 0x38]
cmp esi, dword [ebx + 0x64]
jb 0x559d74
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
nop dword [eax + eax]
cmp esi, dword [ebx + 0x6c]
ja 0x559d53
cmp dword [ebx + 0x34], 0
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[esi]
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
jne case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x55c853
add dword ss:[ebp + 0x38], 0xfffffffe
test esi, esi
je 0x55212c
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x559e16
movzx eax, word ds:[ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55978a.999
cmp ecx, dword [ebx + 0x6c]
ja 0x559dfb
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx eax, word ds:[ecx]
cmp dword [ebp + 0x28], eax
je case.0x55978a.999
cmp dword [ebp + 0x2c], eax
je case.0x55978a.999
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55c84f
test esi, esi
jne 0x5535b7
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x550ed1
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0x1e
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x64]
jb 0x559ed7
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp esi, dword [ebx + 0x6c]
ja 0x559ebc
cmp dword [ebx + 0x34], 0
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55c84f
nop dword [eax + eax]
test esi, esi
jne 0x5535b7
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x550ed1
mov edi, dword ss:[ebp]
mov byte [ebp + 0x30], 0x20
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov esi, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x64]
cmp esi, ecx
jb 0x559f94
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
nop dword [eax]
cmp esi, dword [ebx + 0x6c]
ja 0x559f73
cmp dword [ebx + 0x34], 0
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp dword [ebp + 0x28], 0xc
jne 0x55a01a
mov edx, dword [ebx + 0x98]
lea eax, [ebx + 0x9c]
test edx, edx
je 0x559fd3
push edi
push eax
push ecx
mov ecx, esi
call fcn.0057f0c0
nop dword [eax]
test eax, eax
je 0x55a01a
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
mov edx, dword ds:[eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x55a01a
mov ax, word [esi]
cmp ax, word [ebx + 0xa0]
jne 0x55a01a
nop dword [eax + eax]
cmp edx, 1
je case.0x55978a.999
mov ax, word [esi + 2]
cmp ax, word [ebx + 0xa2]
je case.0x55978a.999
mov eax, dword [ebp + 0x38]
movzx ecx, word [eax]
lea esi, [eax + 2]
mov dword [ebp + 0x38], esi
mov eax, dword [ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x55a035.15
jmp dword [eax*4 + 0x55d6b0]
nop dword [eax]
cmp ecx, 0x85
ja 0x55a067
je case.0x55a060.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55978a.999
nop
jmp dword [ecx*4 + 0x55d6f0]
sub ecx, 0x2028
je case.0x55a060.11
sub ecx, 1
jne case.0x55978a.999
cmp word [ebx + 0x4e], 2
jne case.0x55a035.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x2000
ja 0x55a105
nop
je case.0x55978a.999
cmp ecx, 0xa0
ja 0x55a0dd
je case.0x55978a.999
nop dword [eax + eax]
cmp ecx, 9
je case.0x55978a.999
cmp ecx, 0x20
jne case.0x55a035.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
nop dword [eax]
cmp ecx, 0x1680
je case.0x55978a.999
cmp ecx, 0x180e
jne case.0x55a035.13
mov eax, dword ds:[esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x3000
ja case.0x55a035.13
je case.0x55978a.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55a035.13
movzx eax, byte [ecx + 0x55d708]
jmp dword [eax*4 + 0x55d700]
nop word [eax + eax]
cmp ecx, 0x2000
ja 0x55a1a8
je case.0x55a035.13
cmp ecx, 0xa0
ja 0x55a185
nop
je case.0x55a035.13
cmp ecx, 9
je case.0x55a035.13
cmp ecx, 0x20
je case.0x55a035.13
mov eax, dword ds:[esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x1680
je case.0x55a035.13
cmp ecx, 0x180e
je case.0x55a035.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x3000
ja case.0x55978a.999
je case.0x55a035.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55978a.999
movzx eax, byte [ecx + 0x55d770]
jmp dword [eax*4 + 0x55d768]
nop word [eax + eax]
cmp ecx, 0x85
ja 0x55a207
je case.0x55978a.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55a035.13
nop
jmp dword [ecx*4 + 0x55d7d0]
sub ecx, 0x2028
je case.0x55978a.999
mov eax, dword ds:[esp + 0x14]
sub ecx, 1
jne 0x55c38d
xor esi, esi
jmp 0x559542
cmp ecx, 0x85
ja 0x55a259
nop dword [eax]
je case.0x55a035.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55978a.999
jmp dword [ecx*4 + 0x55d7e0]
nop dword [eax]
sub ecx, 0x2028
je case.0x55a035.13
mov eax, dword [esp + 0x14]
sub ecx, 1
je 0x55c38d
xor esi, esi
jmp 0x559542
cmp ecx, 0xff
ja case.0x55a035.13
mov eax, dword ds:[ebx + 0x40]
test byte [ecx + eax], 8
mov eax, dword [esp + 0x14]
je 0x55c38d
xor esi, esi
jmp 0x559542
cmp ecx, 0xff
ja case.0x55978a.999
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
mov eax, dword [esp + 0x14]
jne 0x55c38d
xor esi, esi
jmp 0x559542
cmp ecx, 0xff
ja case.0x55a035.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
mov eax, dword [esp + 0x14]
je 0x55c38d
xor esi, esi
jmp 0x559542
nop word [eax + eax]
cmp ecx, 0xff
ja case.0x55978a.999
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
mov eax, dword [esp + 0x14]
jne 0x55c38d
xor esi, esi
jmp 0x559542
cmp ecx, 0xff
ja case.0x55a035.13
mov eax, dword ds:[ebx + 0x40]
test byte [ecx + eax], 0x10
mov eax, dword [esp + 0x14]
je 0x55c38d
xor esi, esi
jmp 0x559542
cmp ecx, 0xff
ja case.0x55978a.999
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
mov eax, dword [esp + 0x14]
jne 0x55c38d
xor esi, esi
jmp 0x559542
test esi, esi
je 0x55bed0
mov eax, dword ds:[esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov eax, dword ss:[ebp + 0x44]
mov esi, 0xfffffc1b
mov dword [ebx + 0x84], eax
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55a414
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
nop word [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x55a3f2
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55a459
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a459
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 [ebp + 0x38], eax
mov edx, dword ss:[ebp + 8]
push edi
call fcn.0057f380
test eax, eax
je case.0x55978a.999
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0x64
jmp 0x55c84f
nop dword [eax]
test esi, esi
jne case.0x55978a.998
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
jbe case.0x55978a.999
nop word [eax + eax]
test edi, edi
je 0x55a4cf
mov ax, word ds:[edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x55a4cf
lea eax, [edx - 2]
mov dword [ebp + 0x38], eax
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0x65
jmp 0x55c84f
nop dword [eax + eax]
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword ss:[ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55a554
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
nop dword [eax + eax]
cmp edx, dword [ebx + 0x6c]
ja 0x55a532
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a58e
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 [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x55a5b5
cmp byte ss:[ebp + 0x31], 0x6e
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x55c84f
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x55a5a6
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
ja 0x55c398
jmp 0x55953a
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edi, dword [ebp + 0xc]
mov ebp, dword [ebx + 0x64]
add edi, edi
mov edx, dword [esp + 0x14]
mov eax, ebp
sub eax, edi
mov ebx, dword [edx + 0x38]
cmp ebx, eax
ja 0x55a6aa
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x55a655
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55a65e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55a640
cmp esi, 0xfffffffc
je 0x55c3c5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55a6aa
cmp esi, 0xfffffffd
je 0x55c3c5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55a6aa
nop dword [eax]
cmp esi, 0xfffffffe
je 0x55c3c5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55a6aa
cmp esi, 0xffffffff
je 0x55c3c5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55c3c5
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x55a74a
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x55a74a
mov edx, dword [esp + 0x14]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x55a6f5
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55a6fe
add ecx, 4
add edx, 4
sub esi, 4
jae 0x55a6e0
cmp esi, 0xfffffffc
je 0x55c3c5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55a74a
cmp esi, 0xfffffffd
je 0x55c3c5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55a74a
nop dword [eax]
cmp esi, 0xfffffffe
je 0x55c3c5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55a74a
cmp esi, 0xffffffff
je 0x55c3c5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x55c3c5
cmp ebx, ebp
jb 0x55a795
mov edx, dword ds:[esp + 0x74]
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x55a7a5
cmp ebx, dword [edx + 0x6c]
mov ebx, edx
ja 0x55a77e
cmp dword [ebx + 0x34], 0
je 0x55a7a7
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
xor esi, esi
jmp 0x55953a
mov ebx, dword ds:[esp + 0x74]
xor esi, esi
jmp 0x55953a
mov ebx, edx
xor esi, esi
jmp 0x55953a
test esi, esi
jne 0x5535b7
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55a7de
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x550ed1
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0xcb
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55a858
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55a83d
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a892
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 [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x55978a.999
nop dword [eax + eax]
cmp dword [ebp + 0x2c], ecx
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x55c84f
nop dword [eax + eax]
test esi, esi
jne 0x5535b7
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55a8f0
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x550ed1
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0xcd
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55a976
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55a95b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55a9b0
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 [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xce
jmp 0x55c84f
test esi, esi
jne 0x5535b7
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55a9f8
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword ss:[ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x550ed1
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0xcf
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x55aa77
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55978a.999
cmp ecx, dword [ebx + 0x6c]
ja 0x55aa5c
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x55aa9e
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55aa9e
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0xf
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55ab19
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55aafe
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55ab5b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ab5b
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5dc361]
cmp al, 9
je 0x55aba5
cmp al, 5
je 0x55aba5
cmp al, 8
je 0x55aba5
xor ecx, ecx
jmp 0x55abaa
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55ac36
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55ac1b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55ac79
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ac79
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55ad39
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55ad1e
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55ad7b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ad7b
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55ae36
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55ae1b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55ae79
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55ae79
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc360]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55af36
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55af1b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55af79
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55af79
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x55afc5
cmp eax, 3
je 0x55afc5
xor ecx, ecx
jmp 0x55afca
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55b056
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55b03b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55b099
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55b099
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 [ebp + 0x38], eax
nop dword [eax]
cmp ecx, 0x20
ja 0x55b0c7
je case.0x55b185.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x55b185.8203
nop dword [eax + eax]
jmp dword [eax*4 + 0x55d7f0]
cmp ecx, 0x2000
ja 0x55b165
je case.0x55b185.8193
nop dword [eax]
cmp ecx, 0x1680
ja 0x55b15d
je case.0x55b185.8193
mov eax, ecx
sub eax, 0x85
je case.0x55b185.8193
sub eax, 0x1b
je case.0x55b185.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
cmp dword [eax*4 + 0x5f7610], 6
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x55c84f
cmp ecx, 0x180e
jmp 0x55b102
cmp ecx, 0x3000
ja case.0x55b185.8203
je case.0x55b185.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x55b185.8203
movzx eax, byte [eax + 0x55d80c]
jmp dword [eax*4 + 0x55d804]
cmp dword [ebp + 0x28], 0xf
jne 0x55b14e
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
nop dword [eax]
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov ecx, dword ss:[ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x55b214
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55978a.999
nop dword [eax + eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x55b1f2
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx edx, word ds:[ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x55b259
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55b259
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 [ebp + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5f3170]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5dc361]
mov eax, dword [eax*4 + 0x5f7610]
cmp eax, 1
je 0x55b2b0
cmp eax, 3
je 0x55b2b0
nop dword [eax]
cmp edx, 0x5f
je 0x55b2b0
xor ecx, ecx
jmp 0x55b2b5
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55b339
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55b31e
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55b37b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55b37b
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 [ebp + 0x38], eax
mov eax, dword [ebp + 0x2c]
mov edx, dword [eax*4 + 0x5db910]
lea eax, [eax*4 + 0x5db910]
cmp ecx, edx
jb 0x55b3a5
lea eax, [eax + 4]
cmp ecx, edx
je 0x55b3be
mov edx, dword [eax]
cmp ecx, edx
jae 0x55b394
cmp dword [ebp + 0x28], 0xf
jne case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x55c84f
cmp dword [ebp + 0x28], 0xf
jne 0x55b3af
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55b436
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55b41b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55b479
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55b479
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 [ebp + 0x38], eax
nop dword [eax]
cmp ecx, 0x24
je 0x55b4d3
cmp ecx, 0x40
je 0x55b4d3
cmp ecx, 0x60
je 0x55b4d3
nop dword [eax + eax]
cmp ecx, 0xa0
jb 0x55b4b8
cmp ecx, 0xd7ff
jbe 0x55b4d3
nop dword [eax + eax]
cmp ecx, 0xe000
jae 0x55b4d3
xor ecx, ecx
jmp 0x55b4d8
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x55c84f
nop dword [eax + eax]
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov ecx, dword ss:[ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x55c3de
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55978a.999
nop dword [eax + eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x55b552
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov esi, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x64]
cmp esi, ecx
jb 0x55b5d9
movzx eax, word [ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp esi, dword [ebx + 0x6c]
ja 0x55b5be
cmp dword [ebx + 0x34], 0
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp dword ss:[ebp + 0x28], 0xc
jne 0x55b65a
mov edx, dword [ebx + 0x98]
lea eax, [ebx + 0x9c]
test edx, edx
je 0x55b618
push edi
push eax
push ecx
mov ecx, esi
call fcn.0057f0c0
test eax, eax
je 0x55b65a
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
mov edx, dword ds:[eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x55b65a
mov ax, word [esi]
cmp ax, word [ebx + 0xa0]
jne 0x55b65a
nop dword [eax + eax]
cmp edx, 1
je case.0x55978a.999
mov ax, word [esi + 2]
cmp ax, word [ebx + 0xa2]
je case.0x55978a.999
mov eax, dword [ebp + 0x38]
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55b697
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebp + 0x38], edx
mov eax, dword ss:[ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x55a035.15
jmp dword [eax*4 + 0x55d86c]
cmp ecx, 0x85
ja 0x55b6d9
nop dword [eax]
je case.0x55b6d2.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55978a.999
jmp dword [ecx*4 + 0x55d8ac]
nop dword [eax]
sub ecx, 0x2028
je case.0x55b6d2.11
sub ecx, 1
jne case.0x55978a.999
cmp word ds:[ebx + 0x4e], 2
jne case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x2000
ja 0x55b785
nop dword [eax]
je case.0x55978a.999
cmp ecx, 0xa0
ja 0x55b75d
je case.0x55978a.999
nop dword [eax + eax]
cmp ecx, 9
je case.0x55978a.999
cmp ecx, 0x20
jne case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
nop dword [eax]
cmp ecx, 0x1680
je case.0x55978a.999
cmp ecx, 0x180e
jne case.0x55b6a9.13
mov eax, dword ds:[esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x3000
ja case.0x55b6a9.13
je case.0x55978a.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55b6a9.13
movzx eax, byte [ecx + 0x55d8c4]
jmp dword [eax*4 + 0x55d8bc]
nop word [eax + eax]
cmp ecx, 0x2000
ja 0x55b828
je case.0x55b6a9.13
cmp ecx, 0xa0
ja 0x55b805
nop
je case.0x55b6a9.13
cmp ecx, 9
je case.0x55b6a9.13
cmp ecx, 0x20
je case.0x55b6a9.13
mov eax, dword ds:[esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x1680
je case.0x55b6a9.13
cmp ecx, 0x180e
je case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x3000
ja case.0x55978a.999
je case.0x55b6a9.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x55978a.999
movzx eax, byte [ecx + 0x55d92c]
jmp dword [eax*4 + 0x55d924]
nop word [eax + eax]
cmp ecx, 0x85
ja 0x55b887
je case.0x55978a.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55b6a9.13
nop
jmp dword [ecx*4 + 0x55d98c]
sub ecx, 0x2028
je case.0x55978a.999
sub ecx, 1
jne case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x85
ja 0x55b8d0
je case.0x55b6a9.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x55978a.999
jmp dword [ecx*4 + 0x55d99c]
sub ecx, 0x2028
je case.0x55b6a9.13
nop dword [eax]
sub ecx, 1
je case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
nop dword [eax]
nop dword [eax + eax]
cmp ecx, 0x100
jae case.0x55b6a9.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
je case.0x55b6a9.13
mov eax, dword ds:[esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x100
jae case.0x55978a.999
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 8
jne case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x100
jae case.0x55b6a9.13
mov eax, dword ds:[ebx + 0x40]
test byte [ecx + eax], 1
je case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x100
jae case.0x55978a.999
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 1
jne case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
nop word [eax + eax]
cmp ecx, 0x100
jae case.0x55b6a9.13
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
je case.0x55b6a9.13
mov eax, dword ds:[esp + 0x14]
xor esi, esi
jmp 0x559542
cmp ecx, 0x100
jae case.0x55978a.999
mov eax, dword [ebx + 0x40]
test byte [ecx + eax], 0x10
jne case.0x55b6a9.13
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
test esi, esi
je 0x55bf25
mov eax, dword [esp + 0x14]
jmp 0x559542
nop word [eax + eax]
test esi, esi
je 0x55c095
mov eax, dword [esp + 0x14]
jmp 0x559542
test esi, esi
je 0x55c105
mov eax, dword ds:[esp + 0x14]
jmp 0x559542
test esi, esi
jne case.0x55978a.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x64]
jb 0x55ba94
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55978a.999
nop word [eax + eax]
cmp ecx, dword [ebx + 0x6c]
ja 0x55ba72
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx edx, word ds:[ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x55bad9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55bad9
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 [ebp + 0x38], eax
mov ecx, dword [ebp + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5dc36a]
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 + 0x5dbdd0]
and ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55bbb6
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55bb9b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55bbf9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55bbf9
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5dc368]
shr eax, 0xb
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x55c84f
test esi, esi
jne case.0x55978a.998
mov edx, dword ss:[ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x55978a.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x64]
jb 0x55bcb6
movzx eax, word ds:[ebx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x55978a.999
cmp edx, dword [ebx + 0x6c]
ja 0x55bc9b
cmp dword [ebx + 0x34], esi
je case.0x55978a.999
mov dword [ebx + 0x2c], 1
cmp ecx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
xor esi, esi
jmp 0x559542
movzx ecx, word ds:[edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x55bcf9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55bcf9
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp + 0x2c]
movzx eax, word [eax*2 + 0x5e0570]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5dc360]
cmp eax, ecx
je 0x55bd5f
movzx edx, word [edx*4 + 0x5dc368]
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 + 0x5dbad0], eax
jne 0x55bd5f
xor ecx, ecx
jmp 0x55bd64
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x55978a.999
mov eax, dword [esp + 0x14]
mov edi, dword ds:[eax]
mov byte [eax + 0x30], 0xe1
jmp 0x55c84f
mov edi, dword [ebp + 4]
mov esi, dword [esp + 0x74]
mov dword [ebp], edi
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
mov eax, dword [ebp]
movzx eax, word [eax]
mov al, byte [eax + 0x5f7690]
movzx eax, al
je 0x55c287
lea eax, [edi + eax*2]
mov dword [ebp], eax
jmp 0x550ed5
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00586330
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp + 0x40], eax
mov ecx, dword [ebp]
nop word [eax + eax]
movzx eax, word ds:[ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x55bdf0
jmp 0x550ecb
mov edi, dword [ebp]
nop word [eax + eax]
movzx eax, word ds:[edi + 2]
lea edi, [edi + eax*2]
mov dword [ebp], edi
cmp word [edi], 0x78
je 0x55be10
lea eax, [edi + 4]
jmp 0x550ece
mov ecx, dword ss:[ebp]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov dword [ebp], edi
cmp word [edi], 0x78
je 0x55c732
lea eax, [edi + 4]
jmp 0x550ece
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00586330
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
jmp 0x5597dc
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp + 4], eax
cmp word [eax], 0x78
je 0x55c23c
xor eax, eax
cmp dword [ebp + 0x20], eax
sete al
jmp 0x5597df
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebp], ecx
jmp 0x550ed1
mov ecx, dword [ebp + 4]
nop
movzx eax, word ds:[ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x55beb0
jmp 0x550ecb
add dword [ebp], 2
jmp 0x550ed1
mov eax, dword ss:[ebp + 0x38]
add eax, 0xfffffffe
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0x11
jne 0x55bf09
cmp eax, dword [ebp + 4]
jbe 0x55bf09
cmp word [eax], 0xa
jne 0x55bf09
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x55bf09
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x550ed1
mov edi, dword ss:[ebp]
mov byte [ebp + 0x30], 0x22
jmp 0x55c84f
mov edx, dword [ebp + 0x38]
add edx, 0xfffffffe
mov dword [ebp + 0x38], edx
test edi, edi
jne 0x55bf3e
movzx ecx, word [edx]
jmp 0x55bf8f
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55bf5e
lea esi, [edx - 2]
mov dword [ebp + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55bf8f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, dword ss:[ebp + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x5dc362]
cmp edx, edi
jbe 0x55c07a
nop dword [eax + eax]
movzx eax, word ds:[edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x18], 0
mov ecx, eax
je 0x55c02c
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x55bffd
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c02c
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 + 0x5f3170]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5dc362]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5f75d0], eax
je 0x55c07a
mov dword [ebp + 0x38], edx
mov ebx, esi
cmp edx, edi
ja 0x55bfd0
mov eax, dword ss:[ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x550ed1
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0xdc
jmp 0x55c84f
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55c0bd
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x28], 0x11
jne 0x55c0ea
cmp ecx, dword [ebp + 4]
jbe 0x55c0ea
cmp word [ecx], 0xa
jne 0x55c0ea
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x55c0ea
mov dword [ebp + 0x38], ecx
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x550ed1
mov edi, dword ss:[ebp]
mov byte [ebp + 0x30], 0xdd
jmp 0x55c84f
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x55c135
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55c135
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword ss:[ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x550ed1
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0xde
jmp 0x55c84f
inc dword ds:[esi + 0x90]
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x94]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f7690]
movzx eax, word [edx + 2]
ja 0x55c538
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x550ee0
cmp dword [esp + 0x18], 0
jne 0x55a8ad
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55c84f
test ebp, ebp
jne 0x55a9bd
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55c84f
cmp dword [esp + 0x18], 0
jne 0x55a5aa
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55c84f
test ebp, ebp
js 0x55c1f0
nop dword [eax]
cmp ebp, 0xd
ja case.0x55a035.15
jmp dword [ebp*4 + 0x55d9ac]
cmp dword [eax + 0x28], 0x16
je 0x55c48d
nop word [eax + eax]
test esi, esi
jne 0x55c52d
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55c84f
cmp ecx, 0x7e
je 0x55c231
mov eax, 0x80
cmp cx, ax
je 0x55c231
xor eax, eax
jmp 0x55c236
mov eax, 1
mov dword [ebp + 0x20], eax
mov dword [ebp + 4], edi
mov eax, dword ss:[ebp]
mov ecx, dword [ebp + 4]
movzx eax, word [eax]
or eax, 0x30000
mov dword [esp + 0x28], eax
movzx eax, word [ecx]
mov byte [ebp + 0x30], 5
movzx eax, byte [eax + 0x5f7690]
lea edi, [ecx + eax*2]
jmp 0x55c84f
mov eax, dword [esp + 0x14]
cmp cl, 0x7b
jne 0x55c27e
lea edi, [edx + 4]
mov byte [ebp + 0x30], 6
jmp 0x55c853
mov byte [ebp + 0x30], 7
jmp 0x55c853
lea edi, [edi + eax*2]
mov byte [ebp + 0x30], 1
jmp 0x55c84f
mov eax, dword [ebp + 8]
mov dword [ebp], eax
jmp 0x55c5f2
mov eax, dword [esp + 0x58]
add eax, eax
add dword [ebp + 0x38], eax
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0x14
jmp 0x55c84f
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x24]
dec eax
mov dword [ebp + 0x24], eax
mov esi, dword [ebp + 0x20]
cmp esi, eax
jae 0x55c2f4
nop dword [eax + eax]
mov edx, dword ss:[ebp + 0x28]
lea eax, [esp + 0x5c]
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push ebp
call fcn.00550ac0
mov eax, dword [esp + 0x5c]
inc esi
add eax, eax
add dword [ebp + 0x38], eax
cmp esi, dword [ebp + 0x24]
jb 0x55c2d0
mov edi, dword ss:[ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x55c84f
cmp esi, dword [ebx + 0x64]
jae case.0x55a035.13
cmp word [esi], 0xa
jne case.0x55a035.13
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55c84f
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x55a035.13
nop dword [eax]
cmp esi, dword [ebx + 0x64]
jb case.0x55a035.13
cmp dword [ebx + 0x98], 0
jne case.0x55a035.13
cmp dword ds:[ebx + 0x9c], 2
jne case.0x55a035.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x55a035.13
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55c84f
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x552c0a
lea eax, ds:[edx - 2]
mov dword [ebp + 0x38], eax
mov edi, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x55c84f
mov ecx, dword [esp + 0x14]
lea eax, [ebx + edi]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x55c84f
movzx esi, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
mov edx, ecx
test edi, edi
je 0x55c42a
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55c42a
movzx eax, word [ecx]
lea edx, [ecx + 2]
and esi, 0x3ff
mov dword [ebp + 0x38], edx
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
push 0
push edi
push dword [ebx + 0x64]
mov ecx, esi
push dword [ebx + 0x5c]
call fcn.0057fe20
mov dword ss:[ebp + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x55c489
movzx ecx, word [ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x55c489
nop dword [eax + eax]
cmp eax, dword [ebx + 0x6c]
ja 0x55c473
cmp dword [ebx + 0x34], 0
je 0x55c489
mov dword ds:[ebx + 0x2c], 1
cmp edx, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x55c84f
nop dword [eax + eax]
cmp edx, dword [ebx + 0x64]
jae case.0x55b6a9.13
cmp word [edx], 0xa
jne case.0x55b6a9.13
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55c84f
movzx eax, word [ebx + 0x4c]
mov esi, eax
test ax, ax
je case.0x55b6a9.13
nop word [eax + eax]
cmp edx, dword [ebx + 0x64]
jb case.0x55b6a9.13
cmp dword [ebx + 0x98], 0
jne case.0x55b6a9.13
cmp dword ds:[ebx + 0x9c], 2
jne case.0x55b6a9.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x55b6a9.13
mov dword ds:[ebx + 0x2c], 1
cmp esi, 1
ja 0x55127f
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55c84f
mov byte ds:[ebx + 0x30], 0x11
jmp 0x55c84a
mov eax, dword [esp + 0x14]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x55c84f
mov ecx, dword [esp + 0x14]
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 0x55c562
lea edi, ds:[eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x55c84f
mov ebp, dword ds:[esp + 0x14]
add edi, 2
mov ecx, 0x89
mov dword [ebp + 0x28], 1
mov dword [ebp], edi
movzx eax, word [edi]
cmp ax, cx
je 0x55c5dc
mov ecx, 0x8e
cmp ax, cx
jne 0x55c5c7
jmp 0x55c5dc
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x28], 0
mov eax, 0x20000
jmp 0x55c5e5
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x28], 0
movzx eax, word [edi + 4]
or eax, 0x10000
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], 0
mov dword [ebp + 8], edi
mov eax, dword [ebp + 0x38]
mov dword [ebp + 4], eax
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x28], eax
movzx eax, word [ecx]
mov byte [ebp + 0x30], 8
movzx eax, byte [eax + 0x5f7690]
lea edi, [ecx + eax*2]
jmp 0x55c84f
movzx ecx, word [edi + 4]
or ecx, 0x10000
jmp 0x55c62d
or ecx, 0x20000
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x28], eax
movzx eax, word [edi]
mov byte [ebp + 0x30], 2
movzx eax, byte [eax + 0x5f7690]
lea edi, [edi + eax*2]
jmp 0x55c84f
mov ecx, dword ds:[esi + 0x58]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x55c66f
xor edi, edi
jmp 0x55c673
movzx edi, word [ebx + 4]
mov ebp, dword ds:[esp + 0x14]
cmp dword [ebp + 0x44], 0xffffffff
je 0x55c6ca
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x55c6ca
mov esi, dword [esi + 0x10]
mov edx, edi
or edx, 0x40000
nop dword [eax]
add eax, esi
mov ecx, eax
sub ecx, dword [esp + 0x70]
cmp dword [eax + 0x1c], edx
je 0x55c6be
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x55c6a0
jmp 0x55c6ca
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x55ca3e
or edi, 0x40000
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edi
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x28], eax
movzx eax, word [ecx]
mov byte [ebp + 0x30], 0xb
movzx eax, byte [eax + 0x5f7690]
lea edi, [ecx + eax*2]
jmp 0x55c84f
mov ebp, dword [esp + 0x14]
or ecx, 0x20000
mov dword [ebp + 0x20], ecx
mov eax, dword ss:[ebp + 0x20]
mov dword [esp + 0x28], eax
movzx eax, word [edi]
mov byte [ebp + 0x30], 3
movzx eax, byte [eax + 0x5f7690]
lea edi, [edi + eax*2]
jmp 0x55c84f
mov ebp, dword [esp + 0x14]
or ecx, 0x20000
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x28], eax
movzx eax, word [edi]
mov byte [ebp + 0x30], 4
movzx eax, byte [eax + 0x5f7690]
lea edi, [edi + eax*2]
jmp 0x55c84f
mov ebx, dword [esp + 0x14]
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 + 0x5f7690]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x55c84a
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f7690]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0xd
jmp 0x55c84f
mov ebx, dword [esp + 0x14]
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 + 0x5f7690]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x55c84a
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f7690]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0xe
jmp 0x55c84f
mov ebx, dword [esp + 0x14]
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 + 0x5f7690]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x55c84a
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f7690]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0x10
jmp 0x55c84f
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f7690]
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x14]
mov byte [eax + 0x30], 0x12
jmp 0x55c84f
mov ebx, dword [esp + 0x14]
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 + 0x5f7690]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x13
add ecx, eax
lea edi, [edx + ecx*2]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
add ebp, eax
lea eax, [esi + 0x14]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x30], eax
cmp ebp, dword [eax]
jb 0x55c93d
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x44], eax
lea ebx, [ecx + ecx]
mov eax, ebx
shr eax, 0xa
cmp eax, edx
jbe 0x55c8af
mov ebx, edx
xor edx, edx
shl ebx, 0xa
mov eax, ebx
div dword [esp + 0x70]
sub ebx, edx
cmp ecx, ebx
jae 0x55ca4d
lea eax, [esi + 0x14]
mov dword [esp + 0x44], eax
lfence
push dword [esi + 8]
mov esi, dword [esi]
mov ecx, esi
push ebx
call dword [0x5a9914]
call esi
mov ebp, eax
test ebp, ebp
je 0x55ca5c
mov esi, dword ds:[esp + 0x74]
push dword [esi + 0xc]
push dword [esi + 0x10]
push ebp
call fcn.00586330
mov ecx, dword [esi + 0x10]
mov eax, ebp
mov edx, dword [esp + 0x20]
sub eax, ecx
add edx, eax
add esp, 0xc
mov eax, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], eax
cmp ecx, dword [esi + 0x18]
je 0x55c92a
push dword [esi + 8]
mov esi, dword [esi + 4]
push ecx
mov ecx, esi
call dword [0x5a9914]
call esi
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x74]
jmp 0x55c92e
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x10], ebp
lea eax, [ebx + ebp]
mov ebp, dword [esp + 0x24]
mov dword [ecx], eax
mov dword [esi + 0xc], ebx
mov ebx, dword [esp + 0x14]
push dword [esp + 0x48]
lea eax, [ebx + 0x38]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.00586330
mov eax, dword [ebx + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x70]
inc eax
mov ebx, dword [esp + 0x28]
mov dword [ebp + 0x18], eax
mov eax, ebp
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
jmp 0x550e60
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret 0x14
mov eax, ecx
mov ebx, dword ds:[esp + 0x14]
mov ecx, dword [esp + 0x74]
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 0x55c9ac
mov dword [ecx + 0x70], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x5c]
mov edi, dword [esp + 0x64]
movzx esi, word [esp + 0x68]
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 [esp + 0x6c]
inc eax
cmp eax, esi
cmovbe esi, eax
add esi, esi
lea eax, [esi*4 - 8]
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 8]
push eax
call fcn.00586330
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x55ca12
nop
mov dword [edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x55ca00
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret 0x14
pop edi
pop esi
pop ebp
mov eax, 0xffffffd4
pop ebx
add esp, 0x50
ret 0x14
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 0x14
pop edi
pop esi
pop ebp
mov eax, 0xffffffcc
pop ebx
add esp, 0x50
ret 0x14
pop edi
pop esi
pop ebp
mov eax, 0xffffffc1
pop ebx
add esp, 0x50
ret 0x14
pop edi
pop esi
pop ebp
mov eax, 0xffffffd0
pop ebx
add esp, 0x50
ret 0x14
pop edi
pop esi
pop ebp
mov eax, 0xffffffd1
pop ebx
add esp, 0x50
ret 0x14