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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [ebp + 0x18]
push ebx
push esi
push edi
mov ebx, dword [eax + 0x8c]
mov edi, edx
mov eax, dword [eax + 0x10]
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], edx
mov edx, ebx
shr edx, 0x13
and edx, 1
mov dword [eax + 0x18], 0
shr ebx, 0x11
mov dword [ebp - 0xc], edx
and ebx, 1
mov edx, dword [ebp + 0x14]
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov dword [ebp - 0x30], ebx
mov dword [eax + 0x38], ecx
lea ebx, [edx - 0x38]
mov dword [eax + 0x3c], ecx
mov dword [ebp - 0x3c], ebx
xor ebx, ebx
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [ebp - 8], eax
mov dword [eax + 0x4c], 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x34], 0xfc00
mov dword [ebp - 0x2c], 0xdc00
mov dword [ebp - 0x40], 0xd800
mov dword [ebp - 0x38], 0xff
mov dword [eax + 0x1c], ebx
mov dword [eax], edi
mov dword [eax + 0x10], edx
test ebx, ebx
je 0x54d2c4
mov ecx, dword [ebp + 0x18]
sub eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x4c], eax
mov eax, ebx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x54d2bf
movzx eax, bx
mov dword [ecx + 0x44], eax
xor edx, edx
mov dword [ebp - 0x20], edx
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x18]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
cmp edx, ecx
jae 0x558358
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x24]
jb 0x54d2fc
pop edi
pop esi
mov eax, 0xffffffcb
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov dword [ecx], eax
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
nop
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov bl, byte [edi]
movzx ecx, bl
mov byte [ebp - 1], bl
mov byte [eax + 0x31], bl
cmp ecx, 0xa6
ja case.0x555e29.15
movzx eax, byte [ecx + 0x5584c4]
jmp dword [eax*4 + 0x558368]
mov eax, dword [ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
jne 0x54d3a3
movzx edi, word [edi + 2]
mov eax, dword [eax + 0x4c]
lea ebx, [ebx]
cmp eax, 0xffffffff
je case.0x555e29.15
mov ecx, dword ds:[esi + 0x10]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [ebp - 0x18], ecx
sub edx, dword [ebp + 0x14]
or eax, 0x10000
cmp dword [ecx + 0x1c], eax
je 0x54d36a
mov eax, dword [edx + 0x4c]
jmp 0x54d340
mov eax, dword [ebp - 8]
lea esi, [edi + edi]
mov ebx, dword [ebp + 0x18]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebx + 0x5c]
mov edx, dword [ebp - 8]
sar eax, 1
mov dword [edx + ecx*4 + 0x54], eax
mov eax, edx
mov eax, dword [eax + 0x38]
sub eax, dword [ebx + 0x5c]
sar eax, 1
mov dword [edx + ecx*4 + 0x58], eax
mov eax, edx
cmp ecx, dword [eax + 0x50]
jb 0x54d3a0
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2eb0]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 8]
jmp 0x54d2f7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [esi + 0x70]
jbe 0x54d3c8
mov dword [esi + 0x70], eax
mov eax, dword [ebp - 8]
mov esi, 0xfffffc19
mov dword [ebp - 0x24], eax
jmp 0x554f40
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x44], 0xffffffff
je 0x54d42f
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x555e29.15
mov edx, dword [esi + 0x10]
add edx, eax
mov ecx, edx
mov dword [ebp - 0x18], edx
sub ecx, dword [ebp + 0x14]
mov eax, dword [edx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x54d40f
mov eax, dword [ecx + 0x4c]
jmp 0x54d3e5
mov edx, dword [ebp - 8]
mov dword [ebp - 8], ecx
mov eax, dword [edx + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [edx + 0x3c]
mov dword [ecx + 0x3c], eax
add dword [ecx], 4
jmp 0x54d2fc
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x54d468
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x88]
test al, 4
jne case.0x54d323.162
test al, 8
je 0x54d468
mov eax, dword ds:[ebp + 0x18]
mov ecx, dword [eax + 0x44]
mov eax, dword [eax + 0x5c]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.0x54d323.162
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x558272
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0x8c]
or eax, dword [ecx + 0x88]
test eax, 0x20000000
je 0x558270
test bl, bl
jne 0x558265
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, ecx
jmp 0x554f43
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x54d58d
mov esi, dword [eax + 0x64]
lea edi, [eax + 0x64]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, esi
jae 0x54d4e3
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x18]
add eax, 0x9c
push eax
push esi
call fcn.00579a20
test eax, eax
je 0x54d4e3
mov eax, 1
jmp 0x54d4e5
xor eax, eax
test eax, eax
jne case.0x54d323.162
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x54d323.13
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x98], 0
jne 0x54d53c
cmp dword [eax + 0x9c], 2
jne 0x54d53c
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54d323.13
mov eax, esi
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov esi, eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x54d5db
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54d56f
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp edx, 1
jbe case.0x54d323.162
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [eax + 0x9c]
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp - 8]
lea eax, [esi + esi]
mov ecx, dword [edi + 0x64]
mov edx, dword [ebx + 0x38]
sub ecx, eax
cmp edx, ecx
ja 0x54d5d1
mov ax, word [edx]
cmp ax, word [edi + 0xa0]
jne 0x54d5d1
cmp esi, 1
je case.0x54d323.162
mov ax, word [edx + 2]
mov esi, edi
cmp ax, word [esi + 0xa2]
jne 0x54d5d3
jmp case.0x54d323.162
mov esi, edi
lea edi, [esi + 0x64]
jmp 0x54d4f3
mov edx, dword [ebp - 0xc]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x54d611
cmp ecx, dword [esi + 0x64]
jae 0x54d611
mov ax, word ds:[ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x54d60e
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
add dword [eax], 2
jmp 0x54d300
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x54d65d
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54d648
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54d670
mov esi, dword [ebp + 0x18]
jmp 0x54d300
mov ebx, dword ds:[ebp - 0xc]
test ebx, ebx
je 0x54d745
mov eax, dword [ebp - 8]
add edi, 2
mov ecx, 0xfc00
mov edx, 1
mov dword [eax + 0xc], 1
mov dword [eax], edi
mov ax, word [edi]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [ebp - 8]
jne 0x54d6c0
mov dword [eax + 0xc], 2
mov edx, 2
mov ecx, dword [esi + 0x64]
mov esi, dword [eax + 0x38]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x54d713
cmp esi, ecx
jb case.0x5556e9.999
mov eax, dword [ebp + 0x18]
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x5556e9.999
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54d6f3
cmp dword [eax + 0x34], 0
je case.0x5556e9.999
mov dword [eax + 0x2c], 1
cmp ecx, 1
lea ecx, [ecx]
ja 0x54d57f
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov ax, word [esi]
add esi, 2
mov ebx, dword [ebp - 8]
movzx ecx, word [edi]
add edi, 2
cmp cx, ax
mov eax, ebx
mov dword [ebx + 0x38], esi
mov dword [ebx], edi
jne 0x54d73b
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x54d713
jmp 0x54d2f9
xor esi, esi
jmp 0x554f40
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 8]
mov eax, dword [ecx + 0x64]
mov esi, dword [ebx + 0x38]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x54d791
movzx eax, word [ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54d77c
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx edx, word ds:[edi + 2]
lea eax, [esi + 2]
movzx ecx, word [esi]
mov dword [ebx + 0x38], eax
cmp dx, cx
jne case.0x54d323.162
lea eax, [edi + 4]
mov dword [ebx], eax
jmp 0x54d2f9
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [esi + 0x64]
jb 0x54d7fe
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x6c]
mov eax, dword [ebp + 0x18]
ja 0x54d7e9
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x54d92b
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 0x54d856
movzx eax, word [ebx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov edi, 2
mov eax, dword [ebp - 8]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x54d859
mov eax, dword [ebp - 8]
movzx edx, word ds:[ecx]
cmp esi, 0x80
jae 0x54d89f
cmp edx, 0xff
ja 0x54d87a
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax + esi]
cmp eax, edx
jne case.0x54d323.162
mov edx, dword [ebp - 8]
lea eax, [ebx + 2]
mov dword [edx], eax
lea eax, [ecx + 2]
mov dword [edx + 0x38], eax
jmp 0x54d2f9
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54d8d7
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
jmp 0x54d8da
mov ecx, dword [ebp - 8]
lea eax, ds:[ebx + edi*2]
mov dword [ecx], eax
cmp edx, esi
je 0x54d2f9
mov eax, esi
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d7b84]
add eax, esi
mov esi, dword [ebp + 0x18]
cmp edx, eax
mov edx, dword [ebp - 0xc]
je 0x54d300
jmp case.0x54d323.162
cmp dword [ebp - 0x30], 0
je 0x54d9ee
movzx esi, word ds:[edi + 2]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x54d979
cmp edx, 0xff
ja 0x54d95a
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx edx, byte [eax + edx]
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax + esi]
cmp eax, edx
mov eax, dword [ebp - 8]
je 0x54d9d3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x554f46
cmp edx, esi
je 0x54d9d3
lfence
mov eax, esi
test eax, eax
jns 0x54d989
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x54d9ac
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d7b84]
add eax, esi
cmp edx, eax
mov eax, dword [ebp - 8]
je 0x54d9d3
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x554f46
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 8]
add eax, 2
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 4
mov esi, dword [ebp + 0x18]
mov edx, ebx
jmp 0x54d300
movzx eax, word [edi + 2]
mov edx, eax
cmp ax, word [ebp - 0x38]
ja 0x54da01
mov eax, dword [esi + 0x38]
movzx edx, byte [eax + edx]
movzx eax, word [ecx]
mov ecx, eax
cmp ax, word [ebp - 0x38]
ja 0x54da13
mov eax, dword [esi + 0x38]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x54da25
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov ecx, dword [ebp - 8]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ecx + 0x38], eax
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x54d300
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jb 0x54da85
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54da6f
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54d57f
nop
jmp case.0x54d323.162
lea eax, [edi + 2]
test edx, edx
je 0x54db65
mov edi, dword [ebp - 8]
lea esi, [eax + 2]
mov dword [edi], eax
movzx edx, word [eax]
mov eax, edx
mov dword [edi], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54dac9
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [esi + 2]
add edx, 0x10000
mov dword [edi], eax
movzx esi, word ds:[ecx]
add ecx, 2
mov eax, esi
mov dword [edi + 0x38], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54db06
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.0x54d323.162
cmp bl, 0x20
jne 0x54d2f9
cmp edx, 0x7f
jbe 0x54db4a
mov eax, edx
shr eax, 7
lfence
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d7b84]
jmp 0x54db54
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [ebp - 0xc]
jne 0x54d670
nop
jmp case.0x54d323.162
cmp dword [ebp - 0x30], 0
lea esi, [ecx + 2]
je 0x54dbf9
movzx ebx, word [ecx]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], esi
movzx edx, word [eax]
lea eax, [edi + 4]
mov dword [ecx], eax
cmp edx, ebx
je case.0x54d323.162
cmp byte [ebp - 1], 0x20
mov esi, dword [ebp + 0x18]
jne 0x54d2fc
cmp edx, 0x7f
jbe 0x54dbe2
lfence
mov eax, edx
test eax, eax
jns 0x54dba9
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x54dbcc
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5d7b84]
jmp 0x54dbe9
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
jne 0x54d300
jmp case.0x54d323.162
movzx edx, word [eax]
mov eax, dword [ebp - 8]
movzx ecx, word [ecx]
mov dword [eax + 0x38], esi
cmp edx, ecx
je case.0x54d323.162
mov esi, dword [ebp + 0x18]
cmp bl, 0x20
jne 0x54dc2c
cmp edx, 0xff
ja 0x54dc2c
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.0x54d323.162
mov ecx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ecx], eax
jmp 0x54d2fc
mov eax, dword [ebp - 8]
movzx ebx, word [edi + 2]
add edi, 4
mov dword [eax + 0x24], ebx
mov dword [eax + 0x20], ebx
mov dword [eax], edi
jmp 0x54dd69
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebx, ebx
mov dword [ecx], edi
jmp 0x54dd66
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebx, ebx
mov dword [ecx], edi
jmp 0x54dd66
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 0
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor ebx, ebx
mov dword [ecx], edi
jmp 0x54dd66
mov eax, dword ds:[ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor ebx, ebx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54dd66
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov ebx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54dd66
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor ebx, ebx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x54dd66
movzx ecx, word [edi]
cmp bl, 0x2e
mov edx, dword [ebp - 8]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, dword [ebp - 8]
add edi, 2
mov ebx, dword [ecx*4 + 0x5d687c]
mov dword [eax], edi
mov dword [eax + 0x20], ebx
mov eax, dword [ecx*4 + 0x5d6850]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d6820]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
je 0x54e1af
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 0x54e1a5
movzx esi, word [ecx]
lea eax, [edi + 4]
mov ecx, dword [ebp - 8]
and edx, 0x3ff
and esi, 0x3ff
shl edx, 0xa
or esi, edx
add esi, 0x10000
mov dword [ecx + 0xc], 2
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x54de44
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, esi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5d7b84]
add ecx, esi
cmp ecx, esi
je 0x54de44
lea esp, [esp]
cmp ecx, 0xffff
ja 0x54de16
mov eax, dword [ebp - 8]
mov word [eax + 0x32], cx
mov eax, 1
jmp 0x54de46
mov edx, dword [ebp - 8]
add ecx, 0xffff0000
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or eax, 0xd800
or ecx, 0xdc00
mov word [edx + 0x32], ax
mov eax, 2
mov word [edx + 0x34], cx
jmp 0x54de46
xor eax, eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], 1
mov dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x20]
cmp eax, 1
jb 0x54dff0
nop
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x38]
add edi, edi
mov ecx, dword [ecx + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
cmp ebx, eax
ja 0x54defd
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x54dea8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54deb1
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54de97
cmp esi, 0xfffffffc
je 0x54df7f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54defa
jmp 0x54dec0
cmp esi, 0xfffffffd
je 0x54df7f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54defa
cmp esi, 0xfffffffe
je 0x54df7f
mov al, byte ds:[ecx + 2]
cmp al, byte [edx + 2]
jne 0x54defa
cmp esi, 0xffffffff
je 0x54df7f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x54df7f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x54dfa6
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x54dfa6
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x54df45
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54df4a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54df30
cmp esi, 0xfffffffc
je 0x54df7f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54dfa6
cmp esi, 0xfffffffd
je 0x54df7f
mov al, byte ds:[ecx + 1]
cmp al, byte [edx + 1]
jne 0x54dfa6
cmp esi, 0xfffffffe
je 0x54df7f
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54dfa6
cmp esi, 0xffffffff
je 0x54df7f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54dfa6
mov ecx, dword [ebp - 8]
lea eax, [ebx + edi]
mov edx, 0x38
mov dword [edx + ecx], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x20]
inc edx
mov dword [ebp - 0x10], edx
cmp edx, eax
jbe 0x54de60
mov edx, eax
mov dword [ebp - 0x10], edx
jmp 0x54dff5
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb case.0x54d323.162
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x54dfdb
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
mov edx, eax
mov dword [ebp - 0x10], eax
mov ecx, dword ds:[ecx + 0x24]
cmp eax, ecx
je 0x54d2f9
cmp dword [ebp - 0x14], 0
je 0x557d8f
mov eax, dword ds:[ebp - 8]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x54e18e
jmp 0x54e033
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0x18]
add edi, edi
mov ecx, dword [eax + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
cmp ebx, eax
ja 0x54e0be
mov eax, dword [ebp - 8]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x54e071
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54e07a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54e060
cmp esi, 0xfffffffc
je 0x54e13a
mov al, byte ds:[ecx]
cmp al, byte [edx]
jne 0x54e0bb
cmp esi, 0xfffffffd
je 0x54e13a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54e0bb
cmp esi, 0xfffffffe
je 0x54e13a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54e0bb
cmp esi, 0xffffffff
je 0x54e13a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x54e13a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x54e159
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x54e159
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x54e105
lea ebx, [ebx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x54e10a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x54e0f0
cmp esi, 0xfffffffc
je 0x54e13a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x54e159
cmp esi, 0xfffffffd
je 0x54e13a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x54e159
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x54e13a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x54e159
cmp esi, 0xffffffff
je 0x54e13a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x54e159
mov eax, dword [ebp - 8]
mov ecx, 0x38
mov edx, dword [ebp - 0x10]
add ebx, edi
inc edx
mov dword [ebp - 0x10], edx
mov dword [ecx + eax], ebx
cmp edx, dword [eax + 0x24]
jb 0x54e030
jmp 0x54e18e
mov eax, dword ds:[ebp + 0x18]
cmp ebx, dword [eax + 0x64]
jb 0x54e18e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54e18e
mov eax, dword [ebp + 0x18]
cmp ebx, dword [eax + 0x6c]
ja 0x54e17e
cmp dword [eax + 0x34], 0
je 0x54e18e
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54d670
mov edi, dword ds:[ebp - 8]
jmp 0x5565e1
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x54e1bf
movzx edx, word [edi]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x28], edx
lea eax, [edi + 2]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x54e368
cmp dword [ebp - 0xc], 0
jne 0x54e1d5
cmp dword [ebp - 0x30], 0
je 0x54e207
cmp edx, 0x7f
jbe 0x54e207
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5d7b84]
add eax, edx
jmp 0x54e21a
cmp edx, 0xff
ja 0x54e218
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edx]
jmp 0x54e21a
mov eax, edx
mov ecx, dword [ebp - 8]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp ebx, esi
jb 0x54e26a
lea esp, [esp]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54e2cf
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
mov edx, dword [edi + 0x28]
cmp edx, eax
je 0x54e25f
cmp dword [edi + 0x2c], eax
jne case.0x54d323.162
inc esi
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp esi, ebx
jbe 0x54e230
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [eax + 0x24]
cmp ebx, esi
je 0x54d2f9
cmp dword ds:[ebp - 0x14], 0
je 0x555bc7
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, esi
jae 0x54e33b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54e30e
movzx eax, word [ecx]
cmp edx, eax
je 0x54e2bc
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x2c], eax
jne 0x54e33b
mov eax, dword [ebp - 8]
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, esi
jb 0x54e294
jmp 0x54e33b
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54e2f0
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword ds:[eax + 0x2c], 1
nop
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x54e33b
mov eax, dword ds:[ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54e32b
cmp dword [eax + 0x34], 0
je 0x54e33b
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54d57f
cmp dword [ebp - 0x14], 2
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
je 0x54d300
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d2f9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1a
jmp 0x55814a
mov edi, 1
cmp ebx, edi
jb 0x54e3ad
mov esi, dword ds:[eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae 0x54e40d
mov eax, dword ds:[ebp - 8]
movzx edx, word [esi]
mov ecx, dword [eax + 0x28]
lea eax, [esi + 2]
mov esi, dword [ebp - 8]
mov dword [esi + 0x38], eax
mov eax, esi
cmp ecx, edx
jne 0x54d73b
inc edi
cmp edi, ebx
jbe 0x54e371
mov edx, dword [eax + 0x24]
mov esi, ebx
cmp ebx, edx
je 0x54d2f9
mov ebx, dword ds:[ebp - 0x14]
test ebx, ebx
je 0x555c2d
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x54e46e
jmp 0x54e3e0
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54e445
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
jne 0x54e471
mov eax, edi
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x54e3e0
jmp 0x54e46e
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54e42f
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
nop
jmp case.0x54d323.162
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je 0x54e46e
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54e45e
cmp dword [eax + 0x34], 0
je 0x54e46e
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov edi, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp ebx, 2
je 0x54d300
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d2f9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1c
jmp 0x55814a
mov eax, dword [ebp - 8]
movzx edx, word [edi + 2]
add edi, 4
mov dword [eax + 0x24], edx
mov dword [eax + 0x20], edx
mov dword [eax], edi
jmp 0x54e5d5
mov ecx, dword ds:[ebp - 8]
mov dword [ebp - 0x14], 1
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], edi
jmp 0x54e5d2
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 0
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], edi
jmp 0x54e5d2
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54e5d2
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov edx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x54e5d2
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x54e5d2
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], edi
jmp 0x54e5d2
movzx ecx, word [edi]
cmp bl, 0x48
mov ebx, dword [ebp - 8]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [ebp - 8]
add edi, 2
mov edx, dword [ecx*4 + 0x5d687c]
mov dword [eax], edi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5d6850]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d6820]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
movzx ecx, word [edi]
lea esi, [edi + 2]
mov ebx, dword [ebp - 0xc]
mov edi, ecx
mov dword [eax + 0x28], ecx
mov dword [eax], esi
test ebx, ebx
je 0x54e61f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e61c
movzx edi, word [esi]
lea eax, [esi + 2]
and ecx, 0x3ff
and edi, 0x3ff
shl ecx, 0xa
or edi, ecx
mov ecx, dword [ebp - 8]
add edi, 0x10000
mov dword [ecx + 0x28], edi
mov dword [ecx], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x31], 0x48
jb 0x54e93e
test ebx, ebx
jne 0x54e632
cmp dword [ebp - 0x30], ebx
je 0x54e664
cmp edi, 0x7f
jbe 0x54e664
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x5d7b84]
add ebx, edi
jmp 0x54e67a
cmp edi, 0xff
ja 0x54e678
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x3c]
movzx ebx, byte [eax + edi]
jmp 0x54e67a
mov ebx, edi
cmp dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov dword [eax + 0x2c], ebx
je 0x54e7f0
mov dword [ebp - 0x1c], 1
cmp edx, 1
jae 0x54e748
mov dword [ebp - 0x1c], edx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x54d2f9
cmp dword [ebp - 0x14], 0
je 0x557bb2
cmp dword [ebp - 0xc], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x54e8be
cmp ebx, edi
jae 0x54e8a9
mov eax, dword ds:[ebp + 0x18]
mov esi, 1
cmp edx, dword [eax + 0x64]
jae 0x54e87c
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e719
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x28], ecx
je 0x54e8a9
cmp dword [eax + 0x2c], ecx
je 0x54e8a9
inc ebx
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x54e6d0
lea ecx, [ecx]
jmp 0x54e8a9
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x64]
jae 0x54e7b8
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e790
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [esi + 2]
mov esi, dword [ebp - 8]
add ecx, 0x10000
mov dword [esi + 0x38], eax
cmp edi, ecx
je case.0x54d323.162
jmp 0x54e7a0
cmp ebx, ecx
je case.0x54d323.162
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, edx
jbe 0x54e745
jmp 0x54e69a
movzx eax, word ds:[ecx + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
ja 0x54e7db
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
mov esi, 1
mov dword [ebp - 0x1c], edx
cmp edx, esi
jb 0x54e69d
jmp 0x54e810
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54e846
movzx eax, word [ecx]
cmp edi, eax
je case.0x54d323.162
cmp ebx, eax
je case.0x54d323.162
lea eax, [ecx + 2]
inc esi
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x54e810
mov ebx, edx
jmp 0x54e6a0
movzx eax, word [eax + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x6c]
ja 0x54e867
cmp dword [eax + 0x34], 0
je case.0x54d323.162
mov dword [eax + 0x2c], 1
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54e8a9
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54e895
cmp dword [eax + 0x34], 0
je 0x54e8a9
mov dword ds:[eax + 0x2c], esi
cmp ecx, 1
ja 0x54d57f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54d670
mov edi, dword [ebp - 8]
jmp 0x5566ba
mov edi, edi
cmp ebx, edi
jae 0x54e929
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x54e8f8
mov ecx, dword [ebp - 8]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x54e929
nop
cmp dword [ecx + 0x2c], eax
je 0x54e929
mov eax, ecx
add edx, 2
inc ebx
mov dword [eax + 0x38], edx
cmp ebx, edi
jb 0x54e8c8
jmp 0x54e929
movzx eax, word ds:[eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54e929
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54e913
cmp dword [eax + 0x34], 0
je 0x54e929
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54d670
mov edi, dword [ebp - 8]
jmp 0x555cb4
mov esi, 1
test ebx, ebx
je 0x54ea8e
cmp edx, esi
jae 0x54ea13
mov eax, dword [ebp - 8]
mov esi, dword ds:[eax + 0x24]
cmp edx, esi
je 0x54d9e4
cmp dword [ebp - 0x14], 0
je 0x557bc7
mov ecx, dword ds:[eax + 0x38]
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], ecx
mov ebx, dword [eax + 0x20]
test edx, edx
je 0x54eb56
cmp ebx, esi
jae 0x54eb4e
mov eax, dword ds:[ebp + 0x18]
mov edi, 1
cmp ecx, dword [eax + 0x64]
jae 0x54eb16
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54e9d9
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, dword ds:[ebp - 8]
cmp dword [eax + 0x28], edx
je 0x54e9f0
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x54e990
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword ds:[ebp - 0x14], 2
je 0x54d300
mov edi, dword [ebp - 8]
jmp 0x556795
mov eax, dword [ebp - 8]
mov ecx, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x54ea85
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ea69
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
cmp edi, ecx
je 0x54d96f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x54ea10
lea esp, [esp]
jmp 0x54e953
movzx eax, word [ecx + 0x4c]
jmp 0x54ead9
cmp edx, 1
jb 0x54e953
jmp 0x54eaa3
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae 0x54ead5
movzx ecx, word ds:[edx]
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
mov dword [edx + 0x38], eax
mov eax, edx
cmp edi, ecx
je 0x54d96f
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x54eaa0
jmp 0x54e956
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x54eb09
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x6c]
ja 0x54eaf3
cmp dword [eax + 0x34], 0
je 0x54eb09
mov dword ds:[eax + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x554f46
movzx eax, word ds:[eax + 0x4c]
mov esi, dword [ebp + 0x18]
mov edx, eax
test ax, ax
je 0x54e9f3
cmp ecx, dword [esi + 0x6c]
ja 0x54eb38
cmp dword [esi + 0x34], 0
je 0x54e9f3
mov dword ds:[esi + 0x2c], edi
cmp edx, 1
ja 0x54d57f
jmp 0x54e9f3
mov esi, dword [ebp + 0x18]
jmp 0x54e9f6
cmp ebx, esi
jae 0x54eb84
lea ebx, [ebx]
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jae 0x54eb99
mov edi, dword [ebp - 8]
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x54eb87
mov eax, edi
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x54eb60
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x54d300
jmp 0x555d35
mov esi, eax
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x54ebc9
cmp ecx, dword [esi + 0x6c]
ja 0x54ebb1
cmp dword [esi + 0x34], 0
je 0x54ebc9
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
jmp 0x54eb8a
mov ebx, dword [ebp - 8]
lea eax, [edi + 2]
lea edx, [edi + 0x22]
mov dword [ebx + 8], eax
mov dword [ebx], edx
movzx esi, word [edx]
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x54ebf5
movzx eax, byte [eax + 0x558574]
jmp dword [eax*4 + 0x55856c]
mov ecx, dword [esi*4 + 0x5d66f4]
lea eax, [edi + 0x24]
mov dword [ebx], eax
mov eax, dword [esi*4 + 0x5d66c8]
mov esi, dword [esi*4 + 0x5d6698]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], esi
jmp 0x54ec72
movzx ecx, word [edi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x54ec45
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d6698]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [ebp - 8]
jmp 0x54ec72
mov eax, dword [ebp - 8]
mov ecx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
cmp dword ds:[ebp - 0xc], 0
mov edi, 1
je 0x54ed65
cmp ecx, edi
jb 0x54ee0e
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54ed30
movzx esi, word [ecx]
add ecx, 2
mov ebx, dword [ebp - 8]
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ecd8
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
add esi, 0x10000
mov dword [ebx + 0x38], eax
jmp 0x54ece0
cmp esi, 0xff
jbe 0x54ecf7
mov eax, dword [ebp - 8]
cmp byte [eax + 0x31], 0x6e
je case.0x54d323.162
jmp 0x54ed15
mov eax, dword [ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [ebp - 8]
je 0x54d73b
mov ecx, dword ds:[eax + 0x20]
inc edi
cmp edi, ecx
ja 0x54ee0e
mov eax, dword [ebp - 8]
jmp 0x54ec90
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
nop
cmp ecx, dword [esi + 0x6c]
ja 0x54ed4f
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
nop
jmp case.0x54d323.162
cmp ecx, 1
jb 0x54ee0e
mov edi, edi
mov esi, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x54edd7
mov ebx, dword [ebp - 8]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x54eda2
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je case.0x54d323.162
nop
jmp 0x54edc6
mov eax, dword ds:[ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [ebp - 8]
je 0x54d73b
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x54ee11
mov eax, dword [ebp - 8]
jmp 0x54ed70
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
cmp ecx, dword [esi + 0x6c]
ja 0x54edf8
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x24]
cmp ecx, ebx
je 0x54d2f9
cmp dword [ebp - 0x14], 0
je 0x557bda
mov edi, dword [eax + 0x38]
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x1c], eax
test edx, edx
je 0x54ef35
lea ecx, [ecx]
cmp eax, ebx
jae 0x54ef30
jmp 0x54ee50
mov esi, dword ds:[ebp + 0x18]
mov dword [ebp - 0x10], ebx
mov ebx, 1
cmp edi, dword [esi + 0x64]
jae 0x54ef0b
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54ee99
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
add esi, 0x10000
mov eax, dword ds:[ebp - 8]
cmp esi, 0xff
jbe 0x54eed7
cmp byte [eax + 0x31], 0x6e
jne 0x54eef1
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x54d300
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55814a
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 0x54eeb6
mov eax, dword [ebp - 8]
lea edi, [edi + ebx*2]
mov ebx, dword [ebp - 0x10]
mov dword [eax + 0x38], edi
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ebx
jb 0x54ee50
jmp 0x54eeb6
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54eeb9
cmp edi, dword [esi + 0x6c]
ja 0x54ef22
cmp dword ds:[esi + 0x34], 0
je 0x54eeb9
mov dword [esi + 0x2c], ebx
cmp ecx, 1
ja 0x54d57f
jmp 0x54eeb9
mov esi, dword [ebp + 0x18]
jmp 0x54eebc
cmp eax, ebx
jae 0x54eff7
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp edi, dword [esi + 0x64]
jae 0x54efcb
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x54ef97
cmp byte ds:[ecx + 0x31], 0x6e
jne 0x54efb7
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
cmp dword [ebp - 0x14], 2
je 0x54d300
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x54d323.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x18
jmp 0x55814a
mov eax, dword [ebp - 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
mov eax, dword [eax + 8]
test byte [esi + eax], dl
je 0x54ef66
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
inc eax
add edi, 2
mov dword [ecx + 0x38], edi
mov dword [ebp - 0x1c], eax
cmp eax, ebx
jb 0x54ef40
jmp 0x54ef66
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54ef69
cmp edi, dword [esi + 0x6c]
ja 0x54efe2
cmp dword ds:[esi + 0x34], 0
je 0x54ef69
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp 0x54ef69
mov esi, dword [ebp + 0x18]
jmp 0x54ef6c
mov ebx, dword ds:[ebp - 8]
lea eax, [edi + 4]
mov dword [ebx + 8], eax
movzx eax, word [edi + 2]
lea edx, [edi + eax*2]
mov dword [ebx], edx
movzx esi, word [edx]
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x54f030
movzx eax, byte [eax + 0x558588]
jmp dword [eax*4 + 0x558580]
mov ecx, dword [esi*4 + 0x5d66f4]
lea eax, ds:[edx + 2]
mov dword [ebx], eax
lea edi, [ebx + 0x20]
mov eax, dword [esi*4 + 0x5d66c8]
mov dword [edi], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esi*4 + 0x5d6698]
mov dword [ebp - 0x14], eax
jmp 0x54f097
movzx ecx, word [edx + 2]
lea edi, [ebx + 0x20]
mov dword [edi], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x54f085
mov eax, dword [ebp - 8]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5d6698]
mov dword [ebp - 0x14], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov esi, 1
cmp ecx, esi
jae 0x54f189
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x24]
cmp ecx, eax
je 0x54d2f9
cmp dword ds:[ebp - 0x14], 0
je 0x55628d
mov edx, dword [edi + 0x38]
mov dword [edi + 4], edx
mov edi, dword [edi + 0x20]
cmp edi, eax
jae 0x54f152
mov eax, dword [ebp - 8]
lea ebx, [ebx]
mov esi, 1
cmp edx, dword [ebx + 0x64]
jae 0x54f214
cmp dword [ebp - 0xc], 0
movzx ecx, word [edx]
je 0x54f12f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f12c
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [ebp - 8]
push dword [ebp - 0xc]
mov edx, dword [eax + 8]
call fcn.00579ce0
test eax, eax
je 0x54f152
mov ecx, dword [ebp - 8]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [eax + 0x24]
jb 0x54f0e0
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
je 0x54d2fc
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55814a
mov eax, dword [ebp - 8]
mov esi, 1
mov dword [eax + 0x24], 1
lea edi, [eax + 0x20]
mov dword [eax + 0x20], 1
mov ebx, dword [ebp + 0x18]
lea esp, [esp]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x64]
jae 0x54f24e
movzx ecx, word [edx]
add edx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], edx
je 0x54f1f0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f1ed
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
push dword [ebp - 0xc]
mov edx, dword [eax + 8]
call fcn.00579ce0
jmp 0x54f200
test eax, eax
je 0x54f27b
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x54f190
jmp 0x54f0ab
mov esi, dword ds:[ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54f155
cmp edx, dword [esi + 0x6c]
ja 0x54f238
cmp dword [esi + 0x34], 0
je 0x54f155
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp 0x54f155
mov esi, ebx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x54f27b
nop
cmp edx, dword [esi + 0x6c]
ja 0x54f26b
cmp dword [esi + 0x34], 0
je 0x54f27b
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x554f43
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f2ce
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
cmp edx, dword [esi + 0x6c]
ja 0x54f2b8
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f31e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f31e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f321
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x54fc29
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.default.0x54fc29
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f38e
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
cmp edx, dword [esi + 0x6c]
ja 0x54f378
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f3de
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f3de
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f3e1
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x5556e9.999
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 8
je case.0x5556e9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d300
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f451
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
cmp edx, dword [esi + 0x6c]
ja 0x54f43c
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f49e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f49e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f4a1
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x54fc29
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 1
je case.default.0x54fc29
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f511
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
cmp edx, dword [esi + 0x6c]
ja 0x54f4fc
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f565
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f565
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f568
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x5556e9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 1
je case.0x5556e9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d300
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f5ee
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
jmp 0x54f5c0
cmp edx, dword [esi + 0x6c]
ja 0x54f5d3
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f645
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f645
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f648
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.default.0x54fc29
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.default.0x54fc29
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f6ce
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
jmp 0x54f6a0
cmp edx, dword [esi + 0x6c]
ja 0x54f6b3
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f725
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f725
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54f728
mov edx, dword [ebp - 8]
cmp ecx, 0xff
ja case.0x5556e9.999
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je case.0x5556e9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d300
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f7ae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
jmp 0x54f780
cmp edx, dword [esi + 0x6c]
ja 0x54f793
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f7fc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f7fc
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
lea esp, [esp]
cmp ecx, 0x85
ja 0x54f89e
je case.0x54f820.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5556e9.999
mov edi, edi
jmp dword [ecx*4 + 0x558594]
mov edx, dword [ebp + 0x18]
cmp esi, dword [edx + 0x64]
jb 0x54f87b
movzx eax, word ds:[edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x54f88f
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x54f85e
cmp dword [esi + 0x34], 0
je case.0x54fa12.8203
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d300
cmp word ds:[esi], 0xa
jne 0x54f88f
mov ecx, dword [ebp - 8]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov esi, edx
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d300
mov edi, edi
sub ecx, 0x2028
je case.0x54f820.11
sub ecx, 1
je case.0x54f820.11
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov esi, dword [ebp + 0x18]
cmp word [esi + 0x4e], 2
jne case.0x54fa12.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov eax, dword [ebp - 8]
mov edx, ebx
mov esi, dword [ebp + 0x18]
add dword [eax], 2
jmp 0x54d300
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54f932
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
cmp edx, dword [esi + 0x6c]
ja 0x54f91d
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54f97c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54f97c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
lea esp, [esp]
cmp ecx, 0x2000
ja 0x54f9ea
je case.0x5556e9.999
cmp ecx, 0xa0
ja 0x54f9c5
mov edi, edi
je case.0x5556e9.999
cmp ecx, 9
je case.0x5556e9.999
cmp ecx, 0x20
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d300
cmp ecx, 0x1680
je case.0x5556e9.999
cmp ecx, 0x180e
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d300
cmp ecx, 0x3000
ja case.0x54fa12.8203
je case.0x5556e9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x54fa12.8203
movzx eax, byte [ecx + 0x5585ac]
jmp dword [eax*4 + 0x5585a4]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54fa6e
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
jmp 0x54fa40
cmp edx, dword [esi + 0x6c]
ja 0x54fa53
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fabc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fabc
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
lea esp, [esp]
cmp ecx, 0x2000
ja 0x54fb2a
je case.0x54fa12.8203
cmp ecx, 0xa0
ja 0x54fb05
mov edi, edi
je case.0x54fa12.8203
cmp ecx, 9
je case.0x54fa12.8203
cmp ecx, 0x20
je case.0x54fa12.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x1680
je case.0x54fa12.8203
cmp ecx, 0x180e
je case.0x54fa12.8203
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x3000
ja case.0x5556e9.999
je case.0x54fa12.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5556e9.999
movzx eax, byte [ecx + 0x558614]
jmp dword [eax*4 + 0x55860c]
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54fbae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
jmp 0x54fb80
cmp edx, dword [esi + 0x6c]
ja 0x54fb93
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fc05
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fc05
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54fc08
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x54fc30
je case.0x5556e9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x54fc29
jmp dword [ecx*4 + 0x558674]
sub ecx, 0x2028
je case.0x5556e9.999
lea esp, [esp]
sub ecx, 1
je case.0x5556e9.999
lea eax, [edi + 2]
mov dword [edx], eax
mov edx, ebx
jmp 0x54d300
mov eax, dword ds:[ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x54fcae
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
jmp 0x54fc80
cmp edx, dword [esi + 0x6c]
ja 0x54fc93
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word ds:[edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x54fd05
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fd05
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x54fd08
mov edx, dword [ebp - 8]
cmp ecx, 0x85
ja 0x54fd30
je case.default.0x54fc29
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5556e9.999
jmp dword [ecx*4 + 0x558684]
sub ecx, 0x2028
je case.default.0x54fc29
lea esp, [esp]
sub ecx, 1
je case.default.0x54fc29
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jb 0x54fdae
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
jmp 0x54fd80
cmp ecx, dword [esi + 0x6c]
ja 0x54fd93
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx edx, word ds:[ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [eax + 0x38], ecx
je 0x54fdfa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x54fdfa
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
xor ebx, ebx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
mov cl, byte [ebp - 1]
cmp cl, 0xf
lea esi, [eax + eax*2]
sete bl
movzx eax, word [edi + 2]
cmp eax, 0xd
ja case.0x555e29.15
jmp dword [eax*4 + 0x558694]
cmp cl, 0xf
mov edi, edi
je case.0x54d323.162
mov eax, dword [ebp - 8]
add dword [eax], 6
jmp 0x54d2f9
mov al, byte [esi*4 + 0x5d7b81]
jmp 0x54fe60
cmp al, 9
je 0x54fe7f
cmp al, 5
je 0x54fe7f
cmp al, 8
je 0x54fe7f
xor eax, eax
jmp 0x54fe84
mov eax, 1
cmp eax, ebx
jne 0x54fe46
jmp case.0x54d323.162
movzx ecx, byte [esi*4 + 0x5d7b81]
xor edx, edx
movzx eax, word [edi + 4]
cmp eax, dword [ecx*4 + 0x5f2e30]
sete dl
cmp edx, ebx
jne 0x54fe46
jmp case.0x54d323.162
movzx eax, byte [esi*4 + 0x5d7b81]
xor ecx, ecx
cmp word [edi + 4], ax
sete cl
cmp ecx, ebx
jne 0x54fe46
jmp case.0x54d323.162
movzx eax, byte [esi*4 + 0x5d7b80]
jmp 0x54feb6
movzx ecx, word ds:[edi + 4]
movzx eax, byte [esi*4 + 0x5d7b80]
cmp cx, ax
je 0x54fe7f
movzx edx, word [esi*4 + 0x5d7b88]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x54ff11
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5d72f0], eax
jne 0x54fe7f
xor eax, eax
jmp 0x54fe84
movzx eax, byte [esi*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x54fe7f
cmp eax, 3
je 0x54fe7f
xor eax, eax
jmp 0x54fe84
lea esp, [esp]
cmp edx, 0x20
ja 0x54ff87
je case.0x54fe34.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x55000d.8203
jmp 0x54ff80
jmp dword [edx*4 + 0x5586cc]
cmp edx, 0x2000
ja 0x54ffed
je case.0x54fe34.0
lea esp, [esp]
cmp edx, 0x1680
ja 0x54ffe5
je case.0x54fe34.0
sub edx, 0x85
je case.0x54fe34.0
sub edx, 0x1b
je case.0x54fe34.0
movzx eax, byte [esi*4 + 0x5d7b81]
xor ecx, ecx
cmp dword [eax*4 + 0x5f2e30], 6
sete cl
cmp ecx, ebx
jmp 0x54fe3e
cmp edx, 0x180e
jmp 0x54ffc1
cmp edx, 0x3000
ja case.0x55000d.8203
je case.0x54fe34.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x55000d.8203
movzx eax, byte [edx + 0x5586e8]
jmp dword [eax*4 + 0x5586e0]
movzx eax, byte [esi*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x550047
cmp eax, 3
je 0x550047
cmp edx, 0x5f
je 0x550047
xor eax, eax
cmp eax, ebx
jmp 0x54fe3e
mov eax, 1
cmp eax, ebx
jmp 0x54fe3e
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x5d7130]
lea eax, [eax*4 + 0x5d7130]
cmp edx, ecx
jb 0x550084
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x550093
mov ecx, dword ds:[eax]
cmp edx, ecx
jae 0x550070
cmp byte [ebp - 1], 0xf
je 0x54fe46
jmp case.0x54d323.162
cmp byte [ebp - 1], 0xf
jmp 0x54fe3e
lea esp, [esp]
cmp edx, 0x24
je 0x550047
cmp edx, 0x40
je 0x550047
cmp edx, 0x60
je 0x550047
cmp edx, 0xa0
jb 0x5500cc
jmp 0x5500c0
cmp edx, 0xd7ff
jbe 0x550047
cmp edx, 0xe000
jae 0x550047
xor eax, eax
cmp eax, ebx
jmp 0x54fe3e
mov ax, word [esi*4 + 0x5d7b88]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [edi + 4]
sete cl
cmp ecx, ebx
jmp 0x54fe3e
movzx ecx, word ds:[edi + 4]
movzx edx, word [esi*4 + 0x5d7b8a]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x550131
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5d75f0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x54fe3e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jb 0x550194
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
cmp edx, dword [esi + 0x6c]
ja 0x55017f
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5501de
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5501de
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, dword [ebp + 0x18]
mov edx, esi
push 0
push ebx
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.0057a780
mov ecx, dword ds:[ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb case.0x54fa12.8203
movzx ecx, word [esi + 0x4c]
mov edx, ecx
test cx, cx
je case.0x54fa12.8203
jmp 0x550220
cmp eax, dword [esi + 0x6c]
ja 0x550233
cmp dword [esi + 0x34], 0
je case.0x54fa12.8203
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
mov edx, ebx
add dword [eax], 2
jmp 0x54d300
mov ecx, dword [ebp - 8]
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], edi
jmp 0x55034a
mov ecx, dword [ebp - 8]
xor edx, edx
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
mov dword [ecx + 0x24], eax
cmp word [edi], 0x5c
setne dl
add edi, 4
mov dword [ebp - 0x14], edx
mov dword [ecx], edi
jmp 0x550347
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x550347
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], edi
jmp 0x550347
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp - 0x14], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], edi
jmp 0x550347
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 2
mov dword [ecx + 0x20], 0
movzx eax, word [edi + 2]
add edi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx], edi
jmp 0x550347
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 8]
mov eax, dword [ecx*4 + 0x5d6728]
mov dword [edx], edi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5d66fc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5d66cc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
movzx ebx, word [edi]
lea ecx, [edi + 2]
mov dword [eax + 0x28], ebx
mov dword [eax], ecx
cmp ebx, 0x10
je 0x550371
mov edi, edi
cmp ebx, 0xf
je 0x550371
or edx, 0xffffffff
jmp 0x550389
movzx edx, word [ecx]
add ecx, 2
mov esi, dword [ebp - 8]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [esi + 0x2c], eax
lea eax, [ecx + 2]
mov dword [esi], eax
mov eax, esi
mov edi, dword [eax + 0x20]
mov dword [ebp - 0x1c], edx
test edi, edi
je 0x55139c
test edx, edx
js 0x550fd5
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [ebp - 0x10], eax
cmp edx, 0xd
ja case.0x555e29.15
jmp dword [edx*4 + 0x558748]
lea ebx, [ebx]
cmp ebx, 0xf
je case.0x54d323.162
mov esi, dword [ebp + 0x18]
mov edx, 1
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550425
mov ebx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
cmp dword [ebp - 0xc], 0
mov dword [ebx + 0x38], ecx
je 0x550415
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550415
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x5503d1
mov eax, dword ds:[ebp - 8]
jmp 0x55139f
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
cmp ecx, dword [esi + 0x6c]
ja 0x550447
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5504c5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5504c5
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5504c8
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d7b81]
cmp al, 9
je 0x55050f
cmp al, 5
je 0x55050f
nop
cmp al, 8
je 0x55050f
xor eax, eax
jmp 0x550514
mov eax, 1
cmp eax, edi
je case.0x5556e9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x550467
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
mov esi, ecx
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x5556e9.999
cmp edx, dword [esi + 0x6c]
ja 0x55055c
cmp dword [esi + 0x34], 0
je case.0x5556e9.999
mov dword [esi + 0x2c], 1
jmp 0x54d6fa
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5505d2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5505d2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5505d5
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x5556e9.999
inc esi
cmp esi, edi
jbe 0x550570
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550693
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550693
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550696
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x5556e9.999
inc esi
cmp esi, edi
jbe 0x550633
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
mov ebx, dword [ebp - 0xc]
mov esi, 1
lea ecx, [ecx]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550753
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550753
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550756
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b80]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x5556e9.999
inc esi
cmp esi, edi
jbe 0x5506f0
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x55080e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55080e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d7b80]
cmp eax, ecx
je 0x55087b
movzx edx, word [edx*4 + 0x5d7b88]
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 + 0x5d72f0], eax
jne 0x55087b
xor eax, eax
jmp 0x550880
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x55089f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x5507b0
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x5513a2
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x554f46
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550913
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550913
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550916
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x55095e
cmp eax, 3
je 0x55095e
xor eax, eax
jmp 0x550963
mov eax, 1
cmp eax, edi
je case.0x5556e9.999
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x5508b4
mov eax, dword ds:[ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
mov edi, dword [ebp - 0xc]
mov esi, 1
lea ecx, [ecx]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550adb
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x5509ee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5509ee
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x20
ja 0x550a10
je case.0x550acf.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x550acf.8203
jmp dword [eax*4 + 0x558780]
cmp ecx, 0x2000
ja 0x550aaf
lea esp, [esp]
je case.0x550acf.8193
cmp ecx, 0x1680
ja 0x550aa7
je case.0x550acf.8193
mov eax, ecx
sub eax, 0x85
je case.0x550acf.8193
sub eax, 0x1b
je case.0x550acf.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
cmp dword [eax*4 + 0x5f2e30], 6
sete cl
cmp ecx, dword [ebp - 0x10]
je 0x550b0f
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x550990
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
cmp ecx, 0x180e
jmp 0x550a4e
cmp ecx, 0x3000
ja case.0x550acf.8203
je case.0x550acf.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x550acf.8203
movzx eax, byte [eax + 0x55879c]
jmp dword [eax*4 + 0x558794]
cmp ebx, 0xf
jmp 0x550a8c
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x550b0f
cmp edx, dword [esi + 0x6c]
ja 0x550aff
cmp dword [esi + 0x34], 0
je 0x550b0f
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x554f46
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
lea esp, [esp]
mov eax, dword ds:[ebp - 8]
mov edx, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [edx + 0x64]
jae 0x550c09
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x550b8e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550b8e
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x550be5
cmp eax, 3
je 0x550be5
cmp edx, 0x5f
je 0x550be5
xor eax, eax
jmp 0x550bea
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x55089f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x550b30
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x5513a2
mov esi, edx
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x5556e9.999
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x550c33
cmp dword [esi + 0x34], 0
je case.0x5556e9.999
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
jmp 0x54d6fd
mov edi, dword [ebp - 0xc]
mov esi, 1
lea ecx, [ecx]
mov eax, dword ds:[ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550d10
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x550cb1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550cae
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x5d7130]
lea eax, [eax*4 + 0x5d7130]
cmp ecx, edx
jb 0x550ce4
lea ebx, [ebx]
lea eax, [eax + 4]
cmp ecx, edx
je 0x550d05
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x550cd0
cmp ebx, 0xf
jne 0x550b0f
mov eax, dword [ebp - 8]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x550c50
mov esi, dword ds:[ebp + 0x18]
jmp 0x5513a2
cmp ebx, 0xf
je 0x550b0f
jmp 0x550ced
mov esi, ecx
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x550b0f
cmp edx, dword [esi + 0x6c]
ja 0x550d3c
cmp dword [esi + 0x34], 0
je 0x550b0f
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
mov ebx, edi
jmp 0x554f46
mov edi, dword [ebp - 0x10]
mov esi, 1
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550dbd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550dbd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
lea ecx, [ecx]
cmp ecx, 0x24
je 0x550e13
cmp ecx, 0x40
je 0x550e13
cmp ecx, 0x60
je 0x550e13
jmp 0x550de0
cmp ecx, 0xa0
jb 0x550df8
cmp ecx, 0xd7ff
jbe 0x550e13
jmp 0x550e00
cmp ecx, 0xe000
jae 0x550e13
xor eax, eax
jmp 0x550e18
mov eax, 1
cmp eax, edi
mov eax, dword [ebp - 8]
je 0x55089f
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x550d66
mov esi, dword [ebp + 0x18]
mov edi, ebx
jmp 0x5513a2
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x64]
jae 0x550536
movzx ecx, word ds:[edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x550ea5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550ea5
movzx eax, word ds:[edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 8]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x550ea8
mov edx, dword [ebp - 8]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d7b88]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x10]
je case.0x5556e9.999
inc esi
cmp esi, edi
jbe 0x550e42
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
mov ebx, dword [ebp - 0xc]
mov esi, 1
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [edx + 0x64]
jae 0x550c09
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test ebx, ebx
je 0x550f61
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x550f5e
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 8]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d7b8a]
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 + 0x5d75f0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x10]
je case.0x5556e9.999
inc esi
cmp esi, edi
jbe 0x550f07
mov eax, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp + 0x18]
jmp 0x5513a2
cmp ebx, 0x16
jne 0x5510c5
mov esi, dword [ebp + 0x18]
lea edi, [ebx - 0x15]
mov ebx, dword [ebp - 0xc]
jmp 0x550ff0
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test ebx, ebx
je 0x55104d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55104d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, dword ds:[ebp + 0x18]
mov edx, esi
push 0
push ebx
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.0057a780
mov ecx, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
mov dword [ecx + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x5510ac
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x5510ac
cmp eax, dword [esi + 0x6c]
ja 0x55109c
cmp dword [esi + 0x34], 0
je 0x5510ac
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x550ff0
mov edi, ebx
jmp 0x5513a2
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x555e29.15
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x551c94
lea esp, [esp]
jmp dword [eax*4 + 0x5587fc]
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp - 0xc]
mov ecx, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov dword [ebp - 0x10], ecx
cmp ecx, ebx
je 0x54d2fc
cmp dword ds:[ebp - 0x14], 0
mov edx, dword [ebp - 0x1c]
je 0x557bf1
mov esi, dword [eax + 0x38]
mov dword [eax + 4], esi
mov edi, dword [eax + 0x28]
mov dword [ebp - 0x44], edi
test edx, edx
js 0x553237
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x1c], eax
cmp edx, 0xd
ja case.0x555e29.15
jmp dword [edx*4 + 0x55884c]
jmp dword [eax*4 + 0x558974]
cmp ecx, ebx
jae 0x552666
mov edx, dword [ebp - 0x10]
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov ecx, 1
cmp esi, dword [eax + 0x64]
jae 0x55267e
cmp dword [ebp - 0xc], 0
je 0x55264f
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [ebp - 0x40]
mov eax, 2
cmove ecx, eax
cmp edi, 0xf
je 0x552666
mov eax, dword [ebp - 8]
lea esi, [esi + ecx*2]
inc edx
mov dword [eax + 0x38], esi
cmp edx, ebx
jb 0x552620
mov edi, dword [ebp - 8]
mov esi, dword [ebp + 0x18]
cmp dword [ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54d300
jmp 0x55767d
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x552666
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x5526a6
cmp dword ds:[esi + 0x34], 0
je 0x5526b6
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
mov edi, dword [ebp - 8]
jmp 0x55266c
cmp ecx, ebx
jae 0x552666
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 0x18]
jmp 0x5526d0
mov edx, 1
cmp esi, dword [edi + 0x64]
jae 0x552790
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55271c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55271c
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 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d7b81]
cmp al, 9
je 0x552765
cmp al, 5
je 0x552765
cmp al, 8
je 0x552765
xor eax, eax
jmp 0x55276a
mov eax, 1
cmp eax, ebx
je 0x552666
mov eax, dword [ebp - 8]
lea esi, [esi + edx*2]
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x10], ecx
mov dword [eax + 0x38], esi
cmp ecx, dword [eax + 0x24]
jb 0x5526d0
jmp 0x552666
movzx eax, word [edi + 0x4c]
mov ecx, eax
test ax, ax
je 0x552666
cmp esi, dword [edi + 0x6c]
mov esi, edi
ja 0x5527b4
cmp dword [esi + 0x34], 0
je 0x5526b6
mov dword [esi + 0x2c], edx
jmp 0x5527c0
cmp ecx, 1
ja 0x54d57f
mov edi, dword [ebp - 8]
jmp 0x55266c
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552669
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55288d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55282f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55282f
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 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552666
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x5527e0
jmp 0x552666
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x552666
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
jmp 0x5527a4
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552669
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55288d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55290a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55290a
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 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552666
mov eax, dword [ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x5528b4
mov edi, edi
jmp 0x552666
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552669
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55288d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5529ca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5529ca
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 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b80]
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552666
mov eax, dword [ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x552970
mov edi, edi
jmp 0x552666
cmp ecx, ebx
jae 0x552666
mov ebx, dword [ebp - 0x1c]
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x552b2e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552a8a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552a8a
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 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5d7b80]
cmp eax, ecx
je 0x552afb
movzx edx, word [edx*4 + 0x5d7b88]
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 + 0x5d72f0], eax
jne 0x552afb
xor eax, eax
jmp 0x552b00
mov eax, 1
cmp eax, ebx
je 0x552666
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edi*2]
mov edi, dword [ebp - 8]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edi + 0x38], esi
cmp eax, dword [edi + 0x24]
jb 0x552a30
jmp 0x552669
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x55322d
cmp esi, dword [edx + 0x6c]
mov esi, edx
ja 0x552b52
cmp dword [esi + 0x34], 0
je 0x5526b6
mov dword [esi + 0x2c], edi
jmp 0x5527b7
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x552669
mov ebx, dword [ebp - 0x1c]
jmp 0x552b70
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x552c45
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552bca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552bca
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 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x552c19
cmp eax, 3
je 0x552c19
xor eax, eax
jmp 0x552c1e
mov eax, 1
mov edi, edi
cmp eax, ebx
je 0x552669
mov eax, dword [ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, dword [edi + 0x24]
jb 0x552b70
mov edi, edi
jmp 0x552669
movzx eax, word [eax + 0x4c]
mov ecx, eax
test ax, ax
je 0x552669
mov eax, dword ds:[ebp + 0x18]
cmp esi, dword [eax + 0x6c]
mov esi, eax
ja 0x552c70
cmp dword [esi + 0x34], 0
je 0x55266c
mov dword [esi + 0x2c], edx
cmp ecx, 1
ja 0x54d57f
lea esp, [esp]
jmp 0x55266c
cmp ecx, ebx
jae 0x552666
mov ebx, dword [ebp - 0x1c]
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x55288d
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552cea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552cea
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x20
ja 0x552d10
je case.0x552de4.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x552de4.8203
jmp dword [eax*4 + 0x558ab4]
cmp ecx, 0x2000
ja 0x552dba
lea esp, [esp]
je case.0x552de4.8193
cmp ecx, 0x1680
ja 0x552db2
je case.0x552de4.8193
mov eax, ecx
sub eax, 0x85
je case.0x552de4.8193
sub eax, 0x1b
je case.0x552de4.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
cmp dword [eax*4 + 0x5f2e30], 6
sete cl
cmp ecx, ebx
je 0x552666
mov ecx, dword [ebp - 8]
lea eax, [edx + edx]
add dword [ecx + 0x38], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [ecx + 0x38]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ecx + 0x24]
jb 0x552c90
jmp 0x552666
cmp ecx, 0x180e
jmp 0x552d4e
lea ebx, [ebx]
cmp ecx, 0x3000
ja case.0x552de4.8203
je case.0x552de4.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x552de4.8203
movzx eax, byte [eax + 0x558ad0]
jmp dword [eax*4 + 0x558ac8]
cmp edi, 0xf
jmp 0x552d8b
cmp ecx, ebx
jae 0x552666
mov ebx, dword [ebp - 0x1c]
jmp 0x552e00
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x552b2e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x552e4f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552e4f
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 + 0x5ee990]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x552ea5
cmp eax, 3
je 0x552ea5
cmp edx, 0x5f
je 0x552ea5
xor eax, eax
jmp 0x552eaa
mov eax, 1
cmp eax, ebx
je 0x552666
mov eax, dword [ebp - 0x10]
lea esi, [esi + edi*2]
mov edi, dword [ebp - 8]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edi + 0x38], esi
cmp eax, dword [edi + 0x24]
jb 0x552e00
jmp 0x552669
cmp ecx, ebx
jae 0x552666
mov ebx, dword [ebp - 0x44]
jmp 0x552ee0
mov edx, dword [ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x552b2e
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x552f2f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x552f2f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x5d7130]
lea eax, [eax*4 + 0x5d7130]
cmp ecx, edx
jb 0x552f64
jmp 0x552f50
lea eax, [eax + 4]
cmp ecx, edx
je 0x552f8e
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x552f50
cmp ebx, 0xf
jne 0x552666
lea eax, [edi + edi]
mov edi, dword [ebp - 8]
add dword [edi + 0x38], eax
mov eax, dword [ebp - 0x10]
mov esi, dword [edi + 0x38]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [edi + 0x24]
jb 0x552ee0
jmp 0x552669
cmp ebx, 0xf
je 0x552666
jmp 0x552f6d
mov edi, dword ds:[ebp - 8]
cmp ecx, ebx
jae 0x552669
mov ebx, dword [ebp - 0x1c]
jmp 0x552fb0
mov eax, dword ds:[ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x552c45
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x55300a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55300a
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 0x55305f
cmp ecx, 0x40
je 0x55305f
lea esp, [esp]
cmp ecx, 0x60
je 0x55305f
cmp ecx, 0xa0
jb 0x55304c
jmp 0x553040
cmp ecx, 0xd7ff
jbe 0x55305f
cmp ecx, 0xe000
jae 0x55305f
xor eax, eax
jmp 0x553064
mov eax, 1
cmp eax, ebx
je 0x552669
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, dword [edi + 0x24]
jb 0x552fb0
jmp 0x552669
mov edi, dword [ebp - 8]
cmp ecx, ebx
jae 0x552669
lea esp, [esp]
mov eax, dword [ebp + 0x18]
mov edx, 1
cmp esi, dword [eax + 0x64]
jae 0x552c45
cmp dword [ebp - 0xc], 0
movzx ecx, word [esi]
je 0x5530ef
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5530ef
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 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d7b88]
shr eax, 0xb
cmp eax, dword [edi + 0x2c]
sete cl
cmp ecx, dword [ebp - 0x1c]
je 0x552669
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edx*2]
inc eax
mov dword [edi + 0x38], esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
jb 0x5530a0
jmp 0x552669
cmp ecx, ebx
jae 0x552666
mov edx, dword ds:[ebp + 0x18]
mov edi, 1
cmp esi, dword [edx + 0x64]
jae 0x552b2e
cmp dword [ebp - 0xc], 0
movzx edx, word [esi]
je 0x5531aa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5531aa
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, dword ds:[ebp - 8]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d7b8a]
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 + 0x5d75f0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 0x1c]
je 0x552666
mov eax, dword ds:[ebp - 0x10]
lea esi, [esi + edi*2]
mov edi, dword [ebp - 8]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edi + 0x38], esi
cmp eax, ebx
jb 0x553155
jmp 0x552669
mov edi, dword [ebp - 8]
mov esi, edx
jmp 0x55266c
jmp 0x553240
cmp edi, 0x16
jne 0x55337c
cmp ecx, ebx
jb 0x553273
mov esi, dword [ebp + 0x18]
cmp dword ds:[ebp - 0x14], 2
mov edx, dword [ebp - 0xc]
je 0x54d300
jmp 0x557b5d
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov edx, dword [eax + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x553345
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 0xc]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5532d3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5532d3
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push ebx
mov ebx, dword [ebp + 0x18]
mov edx, esi
push dword [ebx + 0x64]
push dword [ebx + 0x5c]
call fcn.0057a780
mov esi, dword [ebp - 8]
mov dword [esi + 0x38], eax
cmp eax, dword [ebx + 0x64]
jb 0x55332c
movzx ecx, word ds:[ebx + 0x4c]
mov edx, ecx
test cx, cx
je 0x55332c
cmp eax, dword [ebx + 0x6c]
ja 0x55331c
cmp dword [ebx + 0x34], 0
je 0x55332c
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x24]
jb 0x553270
mov esi, ebx
jmp 0x553254
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x553254
cmp edx, dword [esi + 0x6c]
ja 0x553367
cmp dword [esi + 0x34], 0
je 0x553254
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp 0x553254
lea eax, ds:[edi - 6]
cmp eax, 0xf
ja case.0x555e29.15
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x553d10
jmp dword [eax*4 + 0x558b30]
jmp dword [eax*4 + 0x558be8]
mov ecx, dword [ebp - 8]
xor eax, eax
cmp bl, 0x74
sete al
mov dword [ecx + 0x28], eax
movzx ecx, word [edi + 2]
movzx eax, word [esi + 0x52]
movzx edx, word [edi + 4]
imul ecx, eax
mov eax, dword [esi + 0x54]
lea ecx, [eax + ecx*2]
lea eax, [edi + 6]
mov edi, dword [ebp - 8]
mov dword [edi], eax
test edx, edx
je 0x554708
lea esp, [esp]
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [edi + 0x14], eax
cmp eax, dword [edi + 0x50]
jae 0x5546d4
cmp dword [edi + eax*4 + 0x54], 0xffffffff
jne 0x554708
movzx eax, word [esi + 0x52]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x5546b0
nop
jmp 0x554708
mov ecx, dword [ebp - 8]
xor eax, eax
cmp bl, 0x72
sete al
mov dword [ecx + 0x28], eax
movzx eax, word [edi + 2]
lea eax, [eax*2 - 2]
mov dword [ecx + 0x14], eax
lea eax, [edi + 4]
mov edi, ecx
mov dword [edi], eax
mov esi, dword [edi]
movzx ecx, word [esi]
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x554720
movzx eax, byte [eax + 0x558d20]
jmp dword [eax*4 + 0x558d18]
mov edx, dword [ecx*4 + 0x5d66f4]
lea eax, [esi + 2]
mov ebx, dword [ecx*4 + 0x5d6698]
mov dword [edi], eax
mov eax, dword [ecx*4 + 0x5d66c8]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
mov dword [ebp - 0x14], ebx
jmp 0x55477e
movzx edx, word [esi + 2]
mov dword [edi + 0x20], edx
movzx ecx, word [esi + 4]
mov dword [edi + 0x24], ecx
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x5d6698]
mov dword [ebp - 0x14], eax
test ecx, ecx
jne 0x554779
mov dword [edi + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [edi], eax
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x50]
jae 0x5547af
mov ecx, dword [edi + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x5547af
mov esi, dword ds:[ebp + 0x18]
cmp ecx, dword [edi + eax*4 + 0x58]
je 0x54d2fc
jmp 0x5547ca
mov esi, dword [ebp + 0x18]
test edx, edx
je 0x54d2fc
test dword [esi + 0x8c], 0x200
jne 0x54d2fc
mov esi, 1
cmp edx, esi
jb 0x554804
mov edx, dword [edi + 0x28]
lea eax, [ebp - 0x48]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.0054cf00
test eax, eax
jne 0x55488a
mov eax, dword ds:[ebp - 0x48]
inc esi
add eax, eax
add dword [edi + 0x38], eax
mov edx, dword [edi + 0x20]
cmp esi, edx
jbe 0x5547d7
mov ebx, dword [edi + 0x24]
cmp edx, ebx
mov edx, dword [ebp - 0xc]
je 0x54d670
cmp dword [ebp - 0x14], 0
je 0x557cdc
mov eax, dword ds:[edi + 0x38]
mov esi, 1
mov dword [edi + 4], eax
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + ecx*4 + 0x58]
sub eax, dword [edi + ecx*4 + 0x54]
mov dword [edi + 0xc], eax
mov edi, dword [edi + 0x20]
cmp edi, ebx
jae 0x554931
mov ebx, dword [ebp - 8]
jmp 0x554850
mov edx, dword ds:[ebx + 0x28]
lea eax, [ebp - 0x4c]
mov ecx, dword [ebx + 0x14]
push eax
push dword [ebp + 0x18]
push ebx
call fcn.0054cf00
test eax, eax
jne 0x5548ee
mov eax, dword ds:[ebp - 0x4c]
xor ecx, ecx
cmp eax, dword [ebx + 0xc]
cmovne esi, ecx
add eax, eax
add dword [ebx + 0x38], eax
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x554850
jmp 0x554929
mov esi, dword [ebp + 0x18]
jle 0x554899
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x54d323.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
jmp 0x5548c0
cmp ecx, dword [esi + 0x6c]
ja 0x5548d3
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
jle 0x554929
mov edx, dword ds:[ebp + 0x18]
movzx eax, word [edx + 0x4c]
mov ecx, eax
test ax, ax
je 0x554929
mov eax, dword [edx + 0x64]
cmp eax, dword [edx + 0x6c]
jbe 0x554929
mov dword ds:[edx + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
test esi, esi
je 0x557c33
mov edi, dword [ebp - 8]
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jb case.0x54d323.162
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x15
jmp 0x55814a
mov esi, dword [ebp + 0x18]
lea eax, [ebp - 0x28]
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x14]
push eax
push esi
push edi
call fcn.0054cf00
test eax, eax
je 0x5549ce
jle 0x55497f
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x54d323.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
lea ebx, [ebx]
cmp ecx, dword [esi + 0x6c]
ja 0x5549b3
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
jmp case.0x54d323.162
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [edi + 0x38], eax
jmp 0x54d2fc
mov ecx, dword [ebp - 8]
add edi, 2
mov dword [ecx], edi
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
mov edi, eax
mov dword [ecx], eax
cmp word [edi], 0x78
je 0x5549e3
add eax, 4
mov dword [ecx], eax
jmp 0x54d300
cmp dword [esi + 0x30], 0
jne 0x554a15
mov edx, dword [ebp - 8]
cmp dword [edx + 0x18], 0
jne 0x5555e3
xor ecx, ecx
jmp 0x557f24
mov ebx, dword [ebp - 8]
lea eax, [ebp - 0x28]
push eax
mov edx, esi
mov ecx, ebx
call fcn.0054ce00
mov esi, eax
test esi, esi
jg case.0x54d323.162
js 0x554f3d
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x54d2f9
movzx eax, word [edi + 2]
mov ebx, dword [ebp - 8]
mov dword [ebx + 0xc], eax
cmp word [edi + eax*2], 0x78
je 0x554a63
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
add edi, 4
mov dword [ebx], edi
movzx eax, word [edi]
cmp eax, 0x76
je 0x554a7d
cmp eax, 0x77
jne 0x554aa9
lea eax, [ebp - 0x28]
mov edx, esi
push eax
mov ecx, ebx
call fcn.0054ce00
mov esi, eax
test esi, esi
jg case.0x54d323.162
js 0x554f3d
mov eax, dword [ebp - 0x28]
add eax, eax
add dword [ebx], eax
mov edi, dword [ebx]
mov eax, dword [ebp - 0x28]
sub dword [ebx + 0xc], eax
movzx ecx, word [edi]
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x554ac2.150
movzx eax, byte [eax + 0x558d44]
jmp dword [eax*4 + 0x558d28]
mov ecx, dword [ebx + 0x44]
cmp ecx, 0xffffffff
je case.0x554ac2.148
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
cmp eax, 0xffff
je 0x557a08
cmp eax, ecx
je 0x557a08
jmp 0x554c1d
mov ebx, dword ds:[ebx + 0x44]
cmp ebx, 0xffffffff
je case.0x554ac2.148
mov eax, dword [ebp + 0x18]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
movzx esi, word [eax + 0x52]
mov eax, dword [eax + 0x54]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x554ac2.148
lea esp, [esp]
movzx eax, word [ecx]
dec edx
cmp eax, ebx
je 0x554b65
lea ecx, ds:[ecx + esi*2]
test edx, edx
jg 0x554b30
mov eax, dword ds:[ebp - 0x18]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], edi
jmp 0x554c1d
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [edi]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
movzx eax, word [ecx]
mov dword [ebp - 8], edi
movzx eax, byte [eax + 0x5f2eb0]
jmp 0x554c22
movzx eax, word ds:[edi + 2]
mov edi, dword [ebp - 8]
lea eax, [eax*2 - 2]
cmp eax, dword [edi + 0x50]
jae 0x554c1d
cmp dword [edi + eax*4 + 0x54], 0xffffffff
je 0x554c1d
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2eb0]
jmp 0x554c22
mov eax, dword ds:[ebp + 0x18]
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
movzx esi, word [eax + 0x52]
mov eax, dword [eax + 0x54]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x554ac2.148
mov edi, dword [ebx + 0x50]
jmp 0x554bf0
movzx eax, word ds:[ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x554c13
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne case.0x554ac2.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x554bf0
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov dword [eax], edi
cmp byte [eax + 0x31], 0x8f
jne 0x54d2f9
mov edx, 0x2008f
mov byte [eax + 0x30], 0x23
mov dword [ebp - 0x20], edx
jmp 0x55814a
cmp dword [ebp - 0xc], 0
movzx edx, word [edi + 2]
mov ebx, dword [ebp - 8]
je 0x554c99
test edx, edx
je 0x554cb3
mov edi, 0xfc00
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [esi + 0x60]
jbe case.0x54d323.162
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, di
cmp ax, word [ebp - 0x2c]
jne 0x554c90
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x554c63
jmp 0x554cb3
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [esi + 0x5c]
sar eax, 1
cmp edx, eax
jg case.0x54d323.162
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x6c]
jae 0x554cc2
mov dword [esi + 0x6c], eax
add dword [ebx], 4
jmp 0x54d2fc
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov dword [eax], edi
cmp word [edi], 0x78
je case.0x54d323.120
jmp 0x54d300
movzx eax, word ds:[edi + 2]
mov ecx, 0x86
add eax, eax
sub edi, eax
movzx eax, word [edi]
cmp ax, cx
je 0x554d7f
mov ecx, 0x8a
cmp ax, cx
je 0x554d7f
mov ebx, dword ds:[ebp - 8]
mov ecx, dword [esi + 0x10]
add ecx, dword [ebx + 0x4c]
mov esi, ecx
mov dword [ebp - 0x18], ecx
sub esi, dword [ebp + 0x14]
mov eax, dword [esi + 0x4c]
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x554d87
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.00580c90
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [esi + 0x40], eax
mov eax, ebx
sub eax, esi
mov dword [ebx + 0x10], eax
mov esi, 1
jmp 0x554f3d
mov ebx, dword [ebp - 8]
xor esi, esi
mov ecx, dword [ebp - 0x18]
movzx eax, word [edi]
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x554da0.132
movzx eax, byte [eax + 0x558d74]
lea ecx, [ecx]
jmp dword [eax*4 + 0x558d58]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x554db9
mov dword [ecx + 0x70], eax
mov eax, dword ds:[esi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x554da0.132
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x554dd7
mov dword [ecx + 0x70], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
mov eax, ebx
sub eax, esi
mov dword [ebx + 0x10], eax
mov ecx, dword [esi]
movzx eax, word [ecx + 2]
add eax, eax
cmp word [eax + ecx], 0x78
jne case.0x554da0.132
add eax, ecx
mov ecx, eax
mov dword [esi], eax
movzx eax, word [eax + 2]
add eax, eax
cmp word [ecx + eax], 0x78
je 0x554df7
jmp case.0x554da0.132
mov ecx, dword [esi + 0x38]
push edx
mov edx, dword [ebx + 0x38]
call fcn.0057a320
jmp 0x554e20
test eax, eax
jne case.0x554da0.132
jmp case.0x54d323.162
movzx eax, word [edi + 4]
cmp dword [ebx + 0x44], eax
jne 0x554e74
mov esi, ecx
sub esi, dword [ebp + 0x14]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00580c90
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebx + 0x44], eax
mov eax, dword [esi]
add eax, 4
mov dword [ebx], eax
jmp 0x54d2f9
lea edx, ds:[eax + eax]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x38]
lea ecx, [edx - 2]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp + 0x18]
sub eax, dword [edx + 0x5c]
sar eax, 1
mov dword [ebx + ecx*4 + 0x54], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [edx + 0x5c]
mov edx, dword [ebp - 0x44]
sar eax, 1
mov dword [ebx + ecx*4 + 0x58], eax
cmp ecx, dword [ebx + 0x50]
jb case.0x554da0.132
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x554ed5
push dword [ebp - 0x3c]
lea eax, [ebx + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00580c90
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x554f3d
mov cl, byte ds:[ebx + 0x31]
cmp cl, 0x79
je 0x554efd
test esi, esi
je 0x557c9d
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x557c9d
mov edi, dword [ebp - 8]
add dword [edi], 4
jmp 0x54d2f9
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
jne case.0x54d323.162
test byte ds:[esi + 0x88], 1
jne case.0x54d323.162
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54d300
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [esi + 0x5c]
je 0x554f26
xor esi, esi
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0xc]
mov eax, dword [eax + 0x38]
cmp eax, dword [edx + 0x70]
jbe 0x554f55
mov dword [edx + 0x70], eax
mov edi, dword ds:[ebp - 8]
cmp dword [edi + 0x18], 0
je 0x558323
mov eax, dword ds:[ebp + 0x18]
sub edi, dword [edi + 0x10]
mov dword [ebp - 8], edi
mov eax, dword [eax + 0xa8]
or dword [eax + 0x3c], 2
movzx eax, byte [edi + 0x30]
dec eax
cmp eax, 0xe0
ja case.0x555e29.15
movzx eax, byte [eax + 0x558e80]
jmp dword [eax*4 + 0x558d88]
test byte [esi + 0x88], 2
jne case.0x54d323.162
test byte [esi + 0x8c], 0x10
je case.0x54d323.23
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x38]
cmp eax, dword [esi + 0x64]
jb case.0x54d323.162
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x554fd9
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
add dword ds:[edx], 2
jmp 0x54d2fc
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x5550e5
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
lea edi, [eax + 0x9c]
test edx, edx
je 0x55502d
push dword [ebp - 0xc]
push edi
push esi
call fcn.00579a20
mov esi, dword ds:[ebp + 0x18]
test eax, eax
je 0x555094
jmp 0x555073
mov edx, dword [edi]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
mov esi, dword [ebp + 0x18]
ja 0x55508e
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x55508e
cmp edx, 1
je 0x555073
mov ax, word ds:[ecx + 2]
cmp ax, word [esi + 0xa2]
jne 0x55508e
lea edi, [esi + 0x9c]
mov ecx, dword ds:[edi]
mov eax, dword [esi + 0x64]
add ecx, ecx
sub eax, ecx
cmp dword [ebx + 0x38], eax
je 0x5550e8
jmp 0x555094
lea edi, [esi + 0x9c]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x54d323.162
cmp dword ds:[esi + 0x98], 0
jne case.0x54d323.162
cmp dword [edi], 2
jne case.0x54d323.162
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54d323.162
nop
jmp 0x54ed4f
mov esi, dword [ebp + 0x18]
movzx eax, word [esi + 0x4c]
mov ecx, eax
test ax, ax
je 0x555109
mov dword ds:[esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
add dword [ebx], 2
jmp 0x54d2fc
test byte ds:[esi + 0x88], 1
mov ebx, dword [ebp - 8]
je 0x555132
mov eax, dword [ebx + 0x38]
cmp eax, dword [esi + 0x5c]
je case.0x54d323.162
mov ecx, dword ds:[ebx + 0x38]
mov esi, dword [esi + 0x5c]
cmp ecx, esi
je 0x5551a8
mov eax, dword [ebp + 0x18]
cmp ecx, dword [eax + 0x64]
jne 0x555166
test dword ds:[eax + 0x8c], 0x200000
je case.0x54d323.162
mov edx, dword [eax + 0x98]
test edx, edx
je 0x5551b3
cmp ecx, esi
jbe 0x55519d
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00579b00
test eax, eax
je 0x55519d
mov eax, 1
jmp 0x55519f
xor eax, eax
nop
test eax, eax
je case.0x54d323.162
mov esi, dword [ebp + 0x18]
add dword [ebx], 2
jmp 0x54d2fc
mov edi, dword ds:[eax + 0x9c]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ecx, eax
jb case.0x54d323.162
mov esi, dword [ebp + 0x18]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne case.0x54d323.162
lea ecx, [ecx]
cmp edi, 1
je 0x5551ab
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x5551ab
jmp case.0x54d323.162
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x64]
mov ecx, dword [ebx + 0x38]
cmp ecx, esi
jae 0x5552b2
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x98]
test edx, edx
je 0x555272
push dword [ebp - 0xc]
add eax, 0x9c
push eax
push esi
call fcn.00579a20
test eax, eax
jne 0x5551a8
mov esi, dword [ebp + 0x18]
movzx eax, word ds:[esi + 0x4c]
mov edx, eax
test ax, ax
je case.0x54d323.162
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [esi + 0x64]
jb case.0x54d323.162
cmp dword ds:[esi + 0x98], 0
jne case.0x54d323.162
cmp dword [esi + 0x9c], 2
jmp 0x5550c9
mov edx, dword ds:[eax + 0x9c]
lea eax, [edx + edx]
sub esi, eax
cmp ecx, esi
ja 0x555230
mov esi, dword [ebp + 0x18]
mov ax, word [ecx]
cmp ax, word [esi + 0xa0]
jne 0x555233
cmp edx, 1
je 0x5551ab
mov ax, word [ecx + 2]
cmp ax, word [esi + 0xa2]
je 0x5551ab
jmp 0x555233
mov esi, dword ds:[ebp + 0x18]
test byte [esi + 0x88], 2
jne case.0x54d323.162
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x5551ab
cmp ecx, dword [esi + 0x6c]
ja 0x5552e8
cmp dword [esi + 0x34], 0
je 0x5551ab
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
add dword ds:[ebx], 2
jmp 0x54d2fc
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x5c]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x38], eax
jmp 0x554f39
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [edi + 2]
mov dword [ecx], eax
jmp 0x54d300
mov ebx, dword [ebp - 8]
mov edx, dword [ebx + 0x38]
cmp edx, dword [esi + 0x60]
je 0x555436
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x555394
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x555365
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x555394
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 0x5553a0
mov dword [esi + 0x6c], edx
test dword [esi + 0x8c], 0x20000
je 0x555413
cmp ecx, 0x5f
jne 0x5553c5
lea edi, ds:[ecx - 0x5e]
jmp 0x555438
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x555409
lea ecx, [ecx]
cmp eax, 3
jne 0x555436
mov edi, 1
jmp 0x555438
cmp ecx, 0xff
ja 0x555436
mov eax, dword [esi + 0x40]
test byte [ecx + eax], 0x10
je 0x555436
mov edi, 1
jmp 0x555438
xor edi, edi
mov ecx, dword ds:[ebx + 0x38]
mov eax, dword [esi + 0x64]
cmp ecx, eax
jb 0x5554bc
movzx eax, word [esi + 0x4c]
mov edx, eax
test ax, ax
je 0x555489
jmp 0x555460
cmp ecx, dword [esi + 0x6c]
ja 0x555473
cmp dword [esi + 0x34], 0
je 0x555489
mov dword ds:[esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
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 0x5554ac
xor edx, 1
test edx, edx
mov edx, dword [ebp - 0xc]
je 0x54d300
jmp case.0x54d323.162
cmp dword [ebp - 0xc], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x555529
cmp edx, eax
jae 0x5554ed
mov ax, word ds:[edx]
and ax, word [ebp - 0x34]
cmp ax, word [ebp - 0x2c]
jne 0x5554ed
add edx, 2
movzx ecx, word ds:[ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55552c
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x55552c
movzx ecx, word [ecx]
mov esi, dword [ebp + 0x18]
cmp edx, dword [esi + 0x70]
jbe 0x55553b
mov dword [esi + 0x70], edx
test dword [esi + 0x8c], 0x20000
je 0x5555a7
cmp ecx, 0x5f
jne 0x55555c
lea edx, [ecx - 0x5e]
jmp 0x55548b
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x55559d
cmp eax, 3
jne 0x555489
mov edx, 1
jmp 0x55548b
cmp ecx, 0xff
ja 0x555489
mov eax, dword ds:[esi + 0x40]
test byte [ecx + eax], 0x10
je 0x555489
mov edx, 1
jmp 0x55548b
test esi, esi
jne case.0x554f92.35
mov edx, dword [ebp - 8]
mov edi, dword [edi + 4]
mov esi, dword [ebp + 0x18]
mov dword [edx], edi
movzx eax, word ds:[edi + 2]
lea ecx, [edi + eax*2]
mov dword [edx + 4], ecx
cmp word [ecx], 0x78
mov eax, dword [edx]
movzx eax, word [eax]
mov al, byte [eax + 0x5f2eb0]
movzx eax, al
je 0x557cbe
lea eax, [edi + eax*2]
mov dword [edx], eax
jmp 0x54d2fc
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x555645
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x5556e9.998
cmp word [ecx], 0x78
je 0x55564d
cmp word ds:[eax], 0x78
jmp 0x555647
test esi, esi
jne case.0x5556e9.998
mov ecx, dword ds:[edi]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov ecx, dword [ebp - 8]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x557f2c
xor esi, esi
mov eax, ecx
jmp 0x554f46
cmp esi, 0xfffffc19
je 0x557938
jmp 0x555680
test esi, esi
je 0x555697
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1f
jne case.0x5556e9.998
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov ecx, dword [ebp - 8]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x55800b
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, ecx
jmp 0x554f46
jmp 0x5556c0
test esi, esi
jg 0x5556f0
je case.0x5556e9.993
mov edx, dword ds:[ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x5556e9.998
jmp dword [eax*4 + 0x558f64]
mov edx, dword ds:[ebp + 0x18]
mov eax, esi
sub eax, 1
mov eax, dword [ebp - 8]
jne 0x554f46
xor esi, esi
jmp 0x554f46
test esi, esi
jg 0x555734
je case.0x55572d.993
mov edx, dword [ebp + 0x18]
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x5556e9.998
jmp dword [eax*4 + 0x558f80]
mov eax, esi
sub eax, 1
jne case.0x554f92.35
mov eax, dword [edi + 0x20]
test eax, eax
je 0x554c1d
mov ecx, dword [edi]
lea esp, [esp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x555750
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2eb0]
jmp 0x554c22
test esi, esi
jne case.0x554f92.35
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [edi], ecx
jmp 0x54d2f9
test esi, esi
je 0x554f00
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x554f46
lea ebx, [ebx]
cmp esi, 0xfffffc1a
jne 0x5557d5
mov dword [edi + 0x24], 1
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jne 0x557cca
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x5557c1
jmp 0x55582e
mov edx, dword ds:[ebp + 0x18]
cmp esi, 0xfffffc1f
jne 0x555811
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edx + 0x7c], eax
jae case.0x5556e9.998
cmp word [ecx], 0x78
je 0x555819
cmp word [eax], 0x78
jmp 0x555813
test esi, esi
jne case.0x5556e9.998
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x557ee8
cmp dword [edi + 0x24], 0
jne 0x555870
cmp dword ds:[edi + 0x28], 0
jne 0x555870
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
test esi, esi
jne case.0x554f92.35
mov ecx, dword [edi + 4]
mov edi, edi
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi + 4], ecx
cmp word [ecx], 0x78
je 0x555860
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x54d2f9
lea ebx, [ebx]
test esi, esi
jne case.0x554f92.35
add dword [edi], 2
jmp 0x54d2f9
mov edx, dword [edi + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x555909
mov ebx, dword ds:[ebp + 0x18]
mov eax, dword [edi + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x84], eax
jne 0x555909
cmp esi, 0xfffffc1f
jne 0x54f27b
mov eax, ebx
cmp dword [eax + 0x7c], ecx
jae 0x54f27b
cmp word [edx], 0x78
je 0x555917
cmp word [ecx], 0x78
je 0x555917
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, ebx
jmp 0x554f43
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0xc]
test esi, esi
jne case.0x5556e9.998
mov dword ds:[edi + 4], ecx
cmp word [ecx], 0x78
je 0x557fdb
jmp case.0x54d323.162
mov edx, dword [ebp + 0x18]
cmp esi, 0xfffffc1e
jne case.0x5556e9.998
mov ecx, dword [edi]
mov eax, edx
add ecx, 4
mov edx, dword [eax + 0x80]
call fcn.0057a960
mov edx, dword [ebp + 0x18]
test eax, eax
jne case.0x5556e9.998
mov eax, dword [edi + 0x38]
mov esi, 0xfffffc1d
mov dword [edx + 0x80], eax
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1c
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov eax, dword [edi + 0x38]
mov esi, edx
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1d
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov eax, dword [edi]
mov esi, edx
add eax, 4
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1e
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov eax, dword [edi]
mov esi, edx
mov dword [esi + 0x7c], eax
mov eax, dword [edi + 0x44]
mov dword [esi + 0x84], eax
mov esi, 0xfffffc1f
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword ds:[ebp + 0x18]
lea eax, [ebp - 0x50]
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x14]
push eax
push esi
push edi
call fcn.0054cf00
test eax, eax
je 0x557cd4
jle 0x555a59
mov eax, dword [esi + 0x64]
mov dword [edi + 0x38], eax
mov ecx, dword ds:[edi + 0x38]
cmp ecx, dword [esi + 0x64]
jb case.0x5556e9.999
jmp 0x550c0b
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov eax, dword ds:[edi + 0xc]
neg eax
add eax, eax
add dword [edi + 0x38], eax
jmp 0x554934
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov eax, dword [edi + 4]
cmp dword [edi + 0x38], eax
je case.0x54d323.162
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x24]
dec eax
mov dword [edi + 0x24], eax
mov esi, dword [edi + 0x20]
cmp esi, eax
jae 0x555ad3
mov edx, dword ds:[edi + 0x28]
lea eax, [ebp - 0x54]
mov ecx, dword [edi + 0x14]
push eax
push dword [ebp + 0x18]
push edi
call fcn.0054cf00
mov eax, dword [ebp - 0x54]
inc esi
add eax, eax
add dword [edi + 0x38], eax
cmp esi, dword [edi + 0x24]
jb 0x555ab1
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x16
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [edi + 0x38], eax
cmp ecx, 0xff
jbe 0x555b45
cmp byte [edi + 0x31], 0x6e
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55814a
mov edx, dword [edi + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x555b37
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
add dword [edi + 0x38], 0xfffffffe
jmp 0x54ef79
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550c0b
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je 0x555bbe
cmp dword [edi + 0x2c], eax
jne case.0x5556e9.999
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x55814a
add dword [edi + 0x38], 0xfffffffe
test esi, esi
je 0x54e34e
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x54d6d7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
jne case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x55814d
add dword ds:[edi + 0x38], 0xfffffffe
test esi, esi
je 0x54e489
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550c0b
movzx eax, word [ecx]
cmp dword [edi + 0x28], eax
je case.0x5556e9.999
cmp dword [edi + 0x2c], eax
je case.0x5556e9.999
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55814a
test esi, esi
jne case.0x554f92.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d2f9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x1e
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
cmp esi, dword [eax + 0x64]
jae 0x54d6d7
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55814a
test esi, esi
jne case.0x554f92.35
add dword [edi + 0x38], 0xfffffffe
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d2f9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x20
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x54d6d7
cmp dword [edi + 0x28], 0xc
jne 0x555e0d
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x555dc7
push ebx
push eax
push ecx
mov ecx, esi
call fcn.00579a20
test eax, eax
je 0x555e0d
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x555e0d
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x555e0d
cmp edx, 1
je 0x555e30
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x555e32
mov eax, dword ds:[edi + 0x38]
movzx ecx, word [eax]
lea esi, [eax + 2]
mov dword [edi + 0x38], esi
mov eax, dword [edi + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x555e29.15
jmp dword [eax*4 + 0x558f9c]
mov edx, ecx
mov eax, dword [ebp - 8]
xor esi, esi
jmp 0x554f46
lea esp, [esp]
cmp ecx, 0x85
ja 0x555e67
je case.0x555e60.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5556e9.999
mov edi, edi
jmp dword [ecx*4 + 0x558fdc]
sub ecx, 0x2028
je case.0x555e60.11
sub ecx, 1
jne case.0x5556e9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
jmp 0x555ea0
cmp ecx, 0x2000
ja 0x555f0a
je case.0x5556e9.999
cmp ecx, 0xa0
ja 0x555ee5
mov edi, edi
je case.0x5556e9.999
cmp ecx, 9
je case.0x5556e9.999
cmp ecx, 0x20
jne case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x1680
je case.0x5556e9.999
cmp ecx, 0x180e
jne case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x3000
ja case.0x555e29.13
je case.0x5556e9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x555e29.13
movzx eax, byte [ecx + 0x558ff4]
jmp dword [eax*4 + 0x558fec]
lea esp, [esp]
cmp ecx, 0x2000
ja 0x555faa
je case.0x555e29.13
cmp ecx, 0xa0
ja 0x555f85
mov edi, edi
je case.0x555e29.13
cmp ecx, 9
je case.0x555e29.13
cmp ecx, 0x20
je case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x1680
je case.0x555e29.13
cmp ecx, 0x180e
je case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x3000
ja case.0x5556e9.999
je case.0x555e29.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5556e9.999
movzx eax, byte [ecx + 0x55905c]
jmp dword [eax*4 + 0x559054]
lea esp, [esp]
cmp ecx, 0x85
ja 0x556007
je case.0x5556e9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x555e29.13
mov edi, edi
jmp dword [ecx*4 + 0x5590bc]
sub ecx, 0x2028
je case.0x5556e9.999
sub ecx, 1
jne case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x85
ja 0x556050
je case.0x555e29.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5556e9.999
jmp dword [ecx*4 + 0x5590cc]
sub ecx, 0x2028
je case.0x555e29.13
lea esp, [esp]
sub ecx, 1
je case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
jmp 0x556080
cmp ecx, 0xff
ja case.0x555e29.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0xff
ja case.0x5556e9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0xff
ja case.0x555e29.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
lea esp, [esp]
cmp ecx, 0xff
ja case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0xff
ja case.0x555e29.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0xff
ja case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x555e29.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
lea esp, [esp]
test esi, esi
jne case.0x554f92.35
mov eax, dword [edi + 0x38]
add eax, 0xfffffffe
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0x11
jne 0x5561c9
jmp 0x5561a0
cmp eax, dword [edi + 4]
jbe 0x5561c9
cmp word [eax], 0xa
jne 0x5561c9
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x5561c9
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
je 0x54d2f9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x22
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov eax, dword [edi + 0x44]
mov esi, 0xfffffc1b
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55627a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55627a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov edx, dword ds:[edi + 8]
push ebx
call fcn.00579ce0
test eax, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x64
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x5556e9.999
lea ebx, [ebx]
test ebx, ebx
je 0x54f162
mov ax, word ds:[edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x54f162
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x65
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55636a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
cmp ecx, 0xff
jbe 0x556394
cmp byte ds:[edi + 0x31], 0x6e
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x55814a
mov edx, dword [edi + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x556386
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov ecx, dword [edi + 0x38]
lea edx, [ecx - 2]
mov dword [edi + 0x38], edx
cmp ecx, dword [edi + 4]
jbe case.0x54d323.162
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x54eec9
lea eax, [edx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xc9
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov edi, dword [edi + 0xc]
mov edx, dword [ebp - 8]
add edi, edi
mov ecx, dword [eax + 0x64]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
mov ebx, dword [edx + 0x38]
cmp ebx, eax
ja 0x5564cd
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x556475
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55647e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x556460
cmp esi, 0xfffffffc
je 0x557d86
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5564ca
cmp esi, 0xfffffffd
je 0x557d86
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5564ca
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x557d86
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5564ca
cmp esi, 0xffffffff
je 0x557d86
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x557d86
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x55656a
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x55656a
mov edx, dword [ebp - 8]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x556515
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x55651e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x556500
cmp esi, 0xfffffffc
je 0x557d86
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x55656a
cmp esi, 0xfffffffd
je 0x557d86
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x55656a
lea ecx, [ecx]
cmp esi, 0xfffffffe
je 0x557d86
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x55656a
cmp esi, 0xffffffff
je 0x557d86
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x557d86
mov esi, dword [ebp + 0x18]
cmp ebx, dword [esi + 0x64]
jb case.0x54d323.162
movzx eax, word ds:[esi + 0x4c]
mov ecx, eax
test ax, ax
je case.0x54d323.162
cmp ebx, dword [esi + 0x6c]
ja 0x55659c
cmp dword [esi + 0x34], 0
je case.0x54d323.162
mov dword [esi + 0x2c], 1
cmp ecx, 1
ja 0x54d57f
jmp case.0x54d323.162
test esi, esi
jne case.0x554f92.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x5565e1
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d2f9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcb
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55666a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x5556e9.999
cmp dword [edi + 0x2c], ecx
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x55814a
test esi, esi
jne case.0x554f92.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x5566ba
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d2f9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcd
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word ds:[edx]
add edx, 2
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55674a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], ecx
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword ds:[eax]
mov byte [eax + 0x30], 0xce
jmp 0x55814a
test esi, esi
jne case.0x554f92.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x556795
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d2f9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xcf
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550c0b
movzx eax, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x556811
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556811
lea eax, [ecx + 2]
mov dword [edi + 0x38], eax
cmp dword [edi + 0x28], 0xf
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55689a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55689a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5d7b81]
cmp al, 9
je 0x5568e5
cmp al, 5
je 0x5568e5
cmp al, 8
je 0x5568e5
xor ecx, ecx
jmp 0x5568ea
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x55697a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55697a
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556a4b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556a4b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556b0b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556b0b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b80]
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556bcb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556bcb
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x556c19
cmp eax, 3
je 0x556c19
xor ecx, ecx
jmp 0x556c1e
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556cab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556cab
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
cmp ecx, 0x20
ja 0x556cd0
je case.0x556d90.8193
lea eax, ds:[ecx - 9]
cmp eax, 4
ja case.0x556d90.8203
jmp dword [eax*4 + 0x5590dc]
cmp ecx, 0x2000
ja 0x556d70
lea esp, [esp]
je case.0x556d90.8193
cmp ecx, 0x1680
ja 0x556d68
je case.0x556d90.8193
mov eax, ecx
sub eax, 0x85
je case.0x556d90.8193
sub eax, 0x1b
je case.0x556d90.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
cmp dword [eax*4 + 0x5f2e30], 6
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x55814a
cmp ecx, 0x180e
jmp 0x556d0e
cmp ecx, 0x3000
ja case.0x556d90.8203
je case.0x556d90.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x556d90.8203
movzx eax, byte [eax + 0x5590f8]
jmp dword [eax*4 + 0x5590f0]
cmp dword [edi + 0x28], 0xf
jne 0x556d5a
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword ds:[edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550c0b
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x556e1a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556e1a
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [edi + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ee990]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5d7b81]
mov eax, dword [eax*4 + 0x5f2e30]
cmp eax, 1
je 0x556e70
cmp eax, 3
je 0x556e70
lea ecx, [ecx]
cmp edx, 0x5f
je 0x556e70
xor ecx, ecx
jmp 0x556e75
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556f0b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556f0b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, dword ds:[edi + 0x2c]
mov edx, dword [eax*4 + 0x5d7130]
lea eax, [eax*4 + 0x5d7130]
cmp ecx, edx
jb 0x556f44
jmp 0x556f30
lea eax, [eax + 4]
cmp ecx, edx
je 0x556f5c
mov edx, dword ds:[eax]
cmp ecx, edx
jae 0x556f30
cmp dword [edi + 0x28], 0xf
jne case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x55814a
cmp dword [edi + 0x28], 0xf
jne 0x556f4e
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x556fdd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x556fdd
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
lea ecx, [ecx]
cmp ecx, 0x24
je 0x557033
cmp ecx, 0x40
je 0x557033
cmp ecx, 0x60
je 0x557033
jmp 0x557000
cmp ecx, 0xa0
jb 0x557018
cmp ecx, 0xd7ff
jbe 0x557033
jmp 0x557020
cmp ecx, 0xe000
jae 0x557033
xor ecx, ecx
jmp 0x557038
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550c0b
movzx esi, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
mov edx, ecx
test ebx, ebx
je 0x5570cd
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5570cd
movzx eax, word [ecx]
lea edx, [ecx + 2]
and esi, 0x3ff
mov dword [edi + 0x38], edx
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
mov eax, dword ds:[ebp + 0x18]
mov ecx, esi
push 0
push ebx
push dword [eax + 0x64]
push dword [eax + 0x5c]
call fcn.0057a780
mov esi, dword [ebp + 0x18]
mov dword [edi + 0x38], eax
cmp eax, dword [esi + 0x64]
jb 0x55712c
movzx ecx, word ds:[esi + 0x4c]
mov edx, ecx
test cx, cx
je 0x55712c
cmp eax, dword [esi + 0x6c]
ja 0x55711c
cmp dword [esi + 0x34], 0
je 0x55712c
mov dword [esi + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x64]
cmp esi, ecx
jae 0x54d6d7
cmp dword [edi + 0x28], 0xc
jne 0x5571ed
mov edx, dword [eax + 0x98]
add eax, 0x9c
test edx, edx
je 0x5571a7
push ebx
push eax
push ecx
mov ecx, esi
call fcn.00579a20
test eax, eax
je 0x5571ed
mov edx, dword [ebp + 0x18]
xor esi, esi
mov eax, dword [ebp - 8]
jmp 0x554f46
mov edx, dword [eax]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x5571ed
mov ecx, dword ds:[ebp + 0x18]
mov ax, word [esi]
cmp ax, word [ecx + 0xa0]
jne 0x5571ed
cmp edx, 1
je 0x555e30
mov ax, word ds:[esi + 2]
mov edx, ecx
cmp ax, word [edx + 0xa2]
je 0x555e32
mov eax, dword [edi + 0x38]
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [edi + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55722a
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [edi + 0x38], edx
mov eax, dword [edi + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x555e29.15
lea esp, [esp]
jmp dword [eax*4 + 0x559158]
cmp ecx, 0x85
ja 0x557270
je case.0x557269.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5556e9.999
jmp dword [ecx*4 + 0x559198]
sub ecx, 0x2028
je case.0x557269.11
lea esp, [esp]
sub ecx, 1
jne case.0x5556e9.999
mov eax, dword [ebp + 0x18]
cmp word [eax + 0x4e], 2
jne case.0x557240.13
mov eax, dword ds:[ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x2000
ja 0x557325
je case.0x5556e9.999
jmp 0x5572c0
cmp ecx, 0xa0
ja 0x5572f6
je case.0x5556e9.999
cmp ecx, 9
je case.0x5556e9.999
jmp 0x5572e0
cmp ecx, 0x20
jne case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
jmp 0x557300
cmp ecx, 0x1680
je case.0x5556e9.999
cmp ecx, 0x180e
jne case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x3000
ja case.0x557240.13
je case.0x5556e9.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x557240.13
movzx eax, byte [ecx + 0x5591b0]
jmp dword [eax*4 + 0x5591a8]
jmp 0x557360
cmp ecx, 0x2000
ja 0x5573ca
je case.0x557240.13
cmp ecx, 0xa0
ja 0x5573a5
mov edi, edi
je case.0x557240.13
cmp ecx, 9
je case.0x557240.13
cmp ecx, 0x20
je case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x1680
je case.0x557240.13
cmp ecx, 0x180e
je case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x3000
ja case.0x5556e9.999
je case.0x557240.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5556e9.999
movzx eax, byte [ecx + 0x559218]
jmp dword [eax*4 + 0x559210]
lea esp, [esp]
cmp ecx, 0x85
ja 0x557427
je case.0x5556e9.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x557240.13
mov edi, edi
jmp dword [ecx*4 + 0x559278]
sub ecx, 0x2028
je case.0x5556e9.999
sub ecx, 1
jne case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x85
ja 0x557470
je case.0x557240.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5556e9.999
jmp dword [ecx*4 + 0x559288]
sub ecx, 0x2028
je case.0x557240.13
lea esp, [esp]
sub ecx, 1
je case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
jmp 0x5574a0
cmp ecx, 0x100
jae case.0x557240.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
je case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x100
jae case.0x5556e9.999
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 8
jne case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x100
jae case.0x557240.13
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
lea esp, [esp]
cmp ecx, 0x100
jae case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x100
jae case.0x557240.13
mov eax, dword ds:[ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
cmp ecx, 0x100
jae case.0x5556e9.999
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne case.0x557240.13
mov eax, dword [ebp - 8]
xor esi, esi
mov edx, dword [ebp + 0x18]
jmp 0x554f46
lea esp, [esp]
test esi, esi
jne case.0x554f92.35
mov edx, dword [edi + 0x38]
add edx, 0xfffffffe
mov dword [edi + 0x38], edx
test ebx, ebx
jne 0x557a19
movzx ecx, word ds:[edx]
jmp 0x557a6a
test esi, esi
jne case.0x554f92.35
mov ecx, dword [edi + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x5575f5
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
cmp dword [edi + 0x28], 0x11
jne 0x557629
nop
cmp ecx, dword [edi + 4]
jbe 0x557629
cmp word [ecx], 0xa
jne 0x557629
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x557629
mov dword [edi + 0x38], ecx
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d2f9
mov eax, dword ds:[ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xdd
jmp 0x55814a
test esi, esi
jne case.0x554f92.35
mov ecx, dword [edi + 0x38]
add ecx, 0xfffffffe
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55767d
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x55767d
lea eax, [ecx - 2]
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 4]
jbe 0x54d2f9
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0xde
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov ecx, dword [edi + 0x38]
cmp ecx, dword [esi + 0x64]
jae 0x550c0b
movzx edx, word [ecx]
add ecx, 2
mov dword [edi + 0x38], ecx
test ebx, ebx
je 0x55770b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55770b
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [edi + 0x38], eax
mov ecx, dword [edi + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5d7b8a]
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 + 0x5d75f0]
and ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x55814a
mov edx, dword ds:[ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5577eb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5577eb
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5d7b88]
shr eax, 0xb
cmp eax, dword [edi + 0x2c]
sete cl
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x55814a
mov edx, dword [ebp + 0x18]
test esi, esi
jne case.0x5556e9.998
mov edx, dword [edi + 0x20]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
cmp edx, dword [edi + 0x24]
jae case.0x5556e9.999
mov esi, dword [ebp + 0x18]
mov edx, dword [edi + 0x38]
cmp edx, dword [esi + 0x64]
jae 0x550538
movzx ecx, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
test ebx, ebx
je 0x5578ab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5578ab
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [edi + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
mov ecx, dword [edi + 0x2c]
movzx eax, word [eax*2 + 0x5dbd90]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5d7b80]
cmp eax, ecx
je 0x557914
movzx edx, word [edx*4 + 0x5d7b88]
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 + 0x5d72f0], eax
jne 0x557914
xor ecx, ecx
jmp 0x557919
mov ecx, 1
xor eax, eax
cmp dword [edi + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x5556e9.999
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xe1
jmp 0x55814a
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00580c90
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [edi + 0x40], eax
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edi], ecx
cmp word [ecx], 0x78
je 0x557960
lea eax, [ecx + 4]
mov dword [edi], eax
jmp 0x54d2f9
mov edi, dword [edi]
mov ecx, dword [ebp - 8]
mov edi, edi
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x557980
lea eax, [edi + 4]
jmp 0x54d2f7
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
lea edi, [ecx + eax*2]
mov ecx, dword [ebp - 8]
mov dword [ecx], edi
cmp word [edi], 0x78
je 0x558035
lea eax, [edi + 4]
jmp 0x54d2f7
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00580c90
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
jmp 0x55573f
mov ecx, dword [edi + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [edi + 4], eax
cmp word [eax], 0x78
je 0x557c73
xor eax, eax
cmp dword [edi + 0x20], eax
sete al
jmp 0x555742
mov edi, dword [ebp - 8]
mov ecx, dword [edi]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2eb0]
jmp 0x554c22
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x557a39
lea esi, [edx - 2]
mov dword [edi + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557a6a
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, dword [edi + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5ee990]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x5d7b82]
cmp edx, edi
jbe 0x557b5d
lea ecx, [ecx]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [ebp - 0xc], 0
mov ecx, eax
je 0x557b05
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x557ad2
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x557b05
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 + 0x5ee990]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x5dbd90]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5d7b82]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5f2df0], eax
je 0x557b5d
mov eax, dword [ebp - 8]
mov ebx, esi
mov dword [eax + 0x38], edx
cmp edx, edi
ja 0x557aa0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x54d2f9
mov edi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x55814a
inc dword ds:[esi + 0x90]
mov ebx, dword [ebp - 8]
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x94]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2eb0]
movzx eax, word [edx + 2]
ja 0x557e37
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x54d2fc
cmp dword [ebp - 0xc], 0
jne 0x55667f
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x55814a
test ebx, ebx
jne 0x556756
mov edi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x55814a
cmp dword ds:[ebp - 0xc], 0
jne 0x556389
mov edi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x55814a
test edx, edx
js 0x557c10
lea esp, [esp]
cmp edx, 0xd
ja case.0x555e29.15
jmp dword [edx*4 + 0x559298]
cmp dword [eax + 0x28], 0x16
je 0x55712f
lea ebx, [ebx]
test edi, edi
jne 0x557e2c
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55814a
mov eax, dword [ebp - 8]
mov dword [ebx + 0x24], edi
mov edi, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x16
jmp 0x55814a
cmp ecx, 0x7e
je 0x557c65
mov eax, 0x80
cmp cx, ax
je 0x557c65
xor eax, eax
jmp 0x557c6a
mov eax, 1
mov dword [ebx + 0x20], eax
mov dword [ebx + 4], edi
mov edi, dword [ebp - 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
movzx edx, word [eax]
movzx eax, word [ecx]
or edx, 0x30000
mov dword [ebp - 0x20], edx
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 5
jmp 0x55814a
mov eax, dword [ebp - 8]
cmp cl, 0x7b
jne 0x557cb5
lea edi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x55814d
mov byte [ebx + 0x30], 7
jmp 0x55814d
lea edi, [edi + eax*2]
mov byte [edx + 0x30], 1
jmp 0x55814a
mov eax, dword [edi + 8]
mov dword [edi], eax
jmp 0x557ee8
mov eax, dword [ebp - 0x50]
add eax, eax
add dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [edi]
mov byte [eax + 0x30], 0x14
jmp 0x55814a
mov eax, dword [ebp + 0x18]
cmp esi, dword [eax + 0x64]
jae case.0x555e29.13
cmp word ds:[esi], 0xa
jne case.0x555e29.13
lea eax, [esi + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55814a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov edx, eax
test ax, ax
je case.0x555e29.13
cmp esi, dword [ebx + 0x64]
jb case.0x555e29.13
cmp dword ds:[ebx + 0x98], 0
jne case.0x555e29.13
cmp dword [ebx + 0x9c], 2
jne case.0x555e29.13
movzx eax, word ds:[ebx + 0xa0]
cmp ecx, eax
jne case.0x555e29.13
mov dword [ebx + 0x2c], 1
cmp edx, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x55814a
mov ecx, dword [ebp - 8]
lea eax, [ebx + edi]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x55814a
mov eax, dword [ebp + 0x18]
cmp edx, dword [eax + 0x64]
jae case.0x557240.13
cmp word [edx], 0xa
jne case.0x557240.13
lea eax, [edx + 2]
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55814a
mov ebx, dword [ebp + 0x18]
movzx eax, word [ebx + 0x4c]
mov esi, eax
test ax, ax
je case.0x557240.13
lea esp, [esp]
cmp edx, dword [ebx + 0x64]
jb case.0x557240.13
cmp dword [ebx + 0x98], 0
jne case.0x557240.13
cmp dword ds:[ebx + 0x9c], 2
jne case.0x557240.13
movzx eax, word [ebx + 0xa0]
cmp ecx, eax
jne case.0x557240.13
mov dword ds:[ebx + 0x2c], 1
cmp esi, 1
ja 0x54d57f
mov eax, dword [ebp - 8]
mov edi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x55814a
mov byte ds:[ebx + 0x30], 0x11
jmp 0x558145
mov eax, dword [ebp - 8]
add edi, 2
mov dword [eax + 4], edi
mov byte [eax + 0x30], 9
jmp 0x55814a
mov ecx, dword [ebp - 8]
add edi, 2
mov dword [ecx + 4], edi
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
mov edi, eax
mov dword [ecx + 4], eax
cmp word [edi], 0x78
je 0x557e60
lea edi, [eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x55814a
mov ecx, dword [ebp - 8]
add edi, 2
mov edx, 0x89
mov dword [ecx + 0x28], 1
mov dword [ecx], edi
movzx eax, word [edi]
cmp ax, dx
je 0x557ecf
mov edx, 0x8e
cmp ax, dx
jne 0x557ebb
jmp 0x557ecf
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], 0
mov eax, 0x20000
jmp 0x557ed8
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], 0
movzx eax, word [edi + 4]
or eax, 0x10000
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], 0
mov dword [ecx + 8], edi
mov edi, dword [ebp - 8]
mov eax, dword [edi + 0x38]
mov dword [edi + 4], eax
mov ecx, dword [edi]
mov edx, dword [edi + 0x20]
mov dword [ebp - 0x20], edx
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 8
jmp 0x55814a
movzx ecx, word [edi + 4]
or ecx, 0x10000
jmp 0x557f24
or ecx, 0x20000
mov eax, dword [ebp - 8]
mov dword [eax + 0x20], ecx
mov ecx, eax
movzx eax, word [edi]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x20], edx
mov byte [ecx + 0x30], 2
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [edi + eax*2]
jmp 0x55814a
mov ecx, dword [esi + 0x58]
movzx eax, word [edi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x557f65
xor edi, edi
jmp 0x557f69
movzx edi, word [ebx + 4]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x44], 0xffffffff
je 0x557fcc
mov eax, dword ds:[ecx + 0x4c]
cmp eax, 0xffffffff
je 0x557fcc
mov esi, dword [esi + 0x10]
mov edx, edi
or edx, 0x40000
add eax, esi
mov ecx, eax
sub ecx, dword [ebp + 0x14]
cmp dword [eax + 0x1c], edx
je 0x557fb6
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x557f94
jmp 0x557fc9
mov eax, dword ds:[ebp - 8]
mov eax, dword [eax + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x55832e
mov ecx, dword [ebp - 8]
or edi, 0x40000
mov dword [ecx + 4], ebx
mov dword [ecx + 0x20], edi
mov edi, dword [ebp - 8]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x20]
mov dword [ebp - 0x20], edx
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [ecx + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xb
jmp 0x55814a
mov eax, dword [ebp - 8]
or ecx, 0x20000
mov dword [eax + 0x20], ecx
mov ecx, eax
movzx eax, word [edi]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x20], edx
mov byte [ecx + 0x30], 3
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [edi + eax*2]
jmp 0x55814a
mov eax, dword [ebp - 8]
or ecx, 0x20000
mov dword [eax + 0x20], ecx
mov ecx, eax
movzx eax, word [edi]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x20], edx
mov byte [ecx + 0x30], 4
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [edi + eax*2]
jmp 0x55814a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2eb0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x558145
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xd
jmp 0x55814a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2eb0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x558145
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0xe
jmp 0x55814a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2eb0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x558145
movzx eax, word [edi]
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x10
jmp 0x55814a
movzx eax, word ds:[edi]
movzx eax, byte [eax + 0x5f2eb0]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 8]
mov byte [eax + 0x30], 0x12
jmp 0x55814a
mov ebx, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [esi + 0x78], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5f2eb0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x13
add ecx, eax
lea edi, [edx + ecx*2]
mov eax, dword [ebp - 8]
mov esi, dword ds:[ebp + 0x18]
mov ecx, dword [ebp + 0x14]
add ecx, eax
lea eax, [esi + 0x14]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], eax
cmp ecx, dword [eax]
jb 0x55822e
mov ecx, dword ds:[esi + 0xc]
mov edx, dword [esi + 0x1c]
mov dword [ebp - 0x1c], eax
lea ebx, [ecx + ecx]
mov eax, ebx
shr eax, 0xa
cmp eax, edx
jbe 0x5581a4
mov ebx, edx
xor edx, edx
shl ebx, 0xa
mov eax, ebx
div dword [ebp + 0x14]
sub ebx, edx
cmp ecx, ebx
jae 0x55833c
lea eax, [esi + 0x14]
mov dword [ebp - 0x1c], eax
lfence
push dword [esi + 8]
mov esi, dword [esi]
mov ecx, esi
push ebx
call dword [0x5a28f0]
call esi
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
je 0x55834a
mov eax, dword [ebp + 0x18]
push dword [eax + 0xc]
push dword [eax + 0x10]
push esi
call fcn.00580c90
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov edx, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
mov eax, esi
sub eax, ecx
add edx, eax
mov dword [ebp - 8], edx
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 0x18]
cmp ecx, dword [edx + 0x18]
je 0x55821d
push dword [edx + 8]
mov esi, dword [edx + 4]
push ecx
mov ecx, esi
call dword [0x5a28f0]
call esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
jmp 0x558220
mov ecx, dword [ebp - 0x10]
mov dword [edx + 0x10], esi
lea eax, [esi + ebx]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x18]
mov dword [edx + 0xc], ebx
mov ebx, dword ds:[ebp - 8]
push dword [ebp - 0x3c]
lea eax, [ebx + 0x38]
push eax
lea eax, [ecx + 0x38]
push eax
call fcn.00580c90
mov edx, dword ds:[ebp - 0x18]
add esp, 0xc
mov eax, dword [ebx + 0x18]
mov ebx, dword [ebp - 0x20]
inc eax
mov dword [ebp - 8], edx
mov dword [edx + 0x18], eax
mov eax, edx
mov edx, dword [ebp + 0x14]
jmp 0x54d293
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, ecx
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp + 0x18]
mov dword [eax + 0x68], edx
mov eax, dword [ebx + 0x50]
mov dword [ecx + 0x48], eax
mov eax, dword [ebx + 0x40]
mov dword [ecx + 0x74], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x70]
jbe 0x558296
mov dword [ecx + 0x70], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x5c]
mov edi, dword [ebp + 8]
movzx esi, word [ebp + 0xc]
sar eax, 1
mov dword [edi], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ecx + 0x5c]
sar eax, 1
mov dword [edi + 4], eax
movzx eax, word [ebp + 0x10]
inc eax
cmp eax, esi
cmovbe esi, eax
add esi, esi
lea eax, [esi*4 - 8]
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 8]
push eax
call fcn.00580c90
mov eax, dword ds:[ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x558304
jmp 0x5582f0
mov dword ds:[edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x5582f0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd4
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffcc
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffc1
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd0
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0xffffffd1
pop ebx
mov esp, ebp
pop ebp
ret 0x14