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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov ecx, dword [ebp + 0x1c]
xor eax, eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
lea eax, [ecx - 0x38]
push edi
mov edi, dword [ebp + 0x20]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], 0xfc00
mov dword [ebp - 0x18], 0xdc00
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x84]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [ebp + 8]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], eax
mov eax, ecx
mov ecx, dword [ebp + 0x20]
shr esi, 0x13
and esi, 1
mov dword [ebp - 0x44], 0xd800
mov dword [eax + 0x40], 0
xor edx, edx
mov dword [eax + 0x50], 0
mov dword [ebp - 8], esi
mov dword [eax + 0x4c], 0xffffffff
mov dword [ebp + 8], edx
mov dword [ebp - 0x40], 0xff
mov dword [ebp - 0x48], 0x2029
mov dword [ebp - 0x28], 0x180e
mov dword [ebp - 0x2c], 0x205f
mov dword [ebp - 0x30], 0x85
mov dword [ebp - 0x34], 0x2028
mov dword [ebp - 0x20], ecx
mov dword [eax + 0x1c], edx
mov dword [eax], ebx
mov ebx, dword [ebp + 0x1c]
mov dword [eax + 0x10], ebx
test edx, edx
je 0x470828
sub eax, dword [edi + 0x10]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c], eax
mov eax, edx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x470823
movzx eax, dx
mov dword [ecx + 0x44], eax
xor edx, edx
mov dword [ebp + 8], edx
mov edx, dword [edi + 0x28]
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
cmp edx, dword [edi + 0x20]
jae 0x478aeb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
cmp eax, dword [edi + 0x24]
jb 0x470861
pop edi
pop esi
mov eax, 0xffffffcb
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x20]
jmp 0x47085e
lea eax, [ecx + 4]
mov dword [ebx], eax
mov esi, dword [ebp - 8]
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dl, byte [eax]
mov eax, dword [ebp - 4]
mov byte [eax + 0x31], dl
movzx eax, dl
cmp eax, 0xa4
ja case.0x476cd4.15
movzx eax, byte [eax + 0x478c54]
jmp dword [eax*4 + 0x478af8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x44], 0xffffffff
jne 0x470902
mov eax, dword [eax]
mov ecx, dword [ebp + 0x20]
movzx edi, word [eax + 2]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x476cd4.15
mov ebx, dword [ecx + 0x10]
add ebx, eax
mov eax, edi
mov edx, ebx
mov dword [ebp - 0x10], ebx
sub edx, dword [ebp + 0x1c]
or eax, 0x10000
cmp dword [ebx + 0x1c], eax
je 0x4708c9
mov eax, dword [edx + 0x4c]
jmp 0x4708a2
mov eax, dword [ebp - 4]
lea esi, [edi + edi]
mov ebx, dword [ebp - 4]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov edi, dword [ebp + 0x20]
mov eax, dword [edx + 0x38]
sub eax, dword [edi + 0x58]
sar eax, 1
mov dword [ebx + ecx*4 + 0x54], eax
mov eax, ebx
mov eax, dword [eax + 0x38]
sub eax, dword [edi + 0x58]
sar eax, 1
mov dword [ebx + ecx*4 + 0x58], eax
mov eax, ebx
cmp ecx, dword [eax + 0x50]
jb 0x4708ff
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
jmp 0x47085b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x68]
jbe 0x470929
mov dword [edi + 0x68], eax
mov eax, dword [ebp - 4]
mov esi, 0xfffffc19
mov dword [ebp - 0x20], eax
jmp 0x47223f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x44], 0xffffffff
je 0x47098b
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x476cd4.15
mov edx, dword [edi + 0x10]
add edx, eax
mov ecx, edx
mov dword [ebp - 0x10], edx
sub ecx, ebx
mov eax, dword [edx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x47096e
mov eax, dword [ecx + 0x4c]
jmp 0x470945
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0x40]
mov dword [ecx + 0x40], eax
add dword [ecx], 4
jmp 0x470861
mov esi, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
cmp esi, edi
jne 0x4709ba
mov ebx, dword [ebp + 0x20]
mov eax, dword [ebx + 0x80]
test al, 4
jne 0x4709b3
test al, 8
je 0x4709ba
mov ecx, dword [ebx + 0x40]
mov eax, dword [ebx + 0x58]
lea eax, [eax + ecx*2]
cmp edi, eax
jne 0x4709ba
mov edi, ebx
jmp case.0x470883.160
mov eax, dword [ebp + 0x20]
cmp esi, dword [eax + 0x5c]
jae 0x478a29
mov edi, dword [ebp + 0x20]
mov eax, dword [eax + 0x84]
or eax, dword [edi + 0x80]
test eax, 0x20000000
je 0x478a27
test dl, dl
je case.0x470883.160
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
mov edi, eax
mov esi, dword [eax + 0x90]
test esi, esi
je 0x470a2b
mov eax, dword [ebp - 4]
mov edx, dword [edi + 0x5c]
mov ecx, dword [eax + 0x38]
cmp ecx, edx
jae 0x470a6c
push dword [ebp - 8]
lea eax, [edi + 0x94]
push eax
push edx
push esi
push ecx
call fcn.00485fe0
add esp, 0x14
test eax, eax
je 0x470a69
jmp case.0x470883.160
mov esi, dword [eax + 0x94]
mov eax, dword [ebp - 4]
mov ecx, dword [edi + 0x5c]
mov edx, dword [eax + 0x38]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x470a69
mov ax, word [edx]
cmp ax, word [edi + 0x98]
jne 0x470a69
cmp esi, 1
je case.0x470883.160
mov ax, word [edx + 2]
cmp ax, word [edi + 0x9a]
je case.0x470883.160
mov eax, dword [ebp - 4]
cmp word [edi + 0x48], 0
je case.0x470883.13
mov ecx, dword [eax + 0x38]
mov eax, dword [edi + 0x5c]
sub eax, 2
cmp ecx, eax
jne case.0x470883.13
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x90], 0
jne 0x470ab8
cmp dword [eax + 0x94], 2
jne 0x470ab8
mov edi, dword [ebp + 0x20]
mov ax, word [ecx]
cmp ax, word [edi + 0x98]
jne case.0x470883.13
mov eax, edi
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x47196b
mov edi, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [edi + 0x5c]
jb 0x470af0
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x470ae6
cmp ecx, dword [eax + 0x64]
jbe 0x470ae6
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x47196b
mov edi, dword [ebp + 0x20]
xor esi, esi
jmp 0x47223c
mov esi, dword [ebp - 8]
add ecx, 2
mov dword [eax + 0x38], ecx
test esi, esi
je 0x470b71
cmp ecx, dword [edi + 0x5c]
jae 0x470b71
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x470b6e
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x470861
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x470b65
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jbe case.0x470883.160
mov eax, dword [ebp + 0x20]
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x47196b
mov edi, eax
jmp case.0x470883.160
mov ecx, dword [ebp - 4]
add eax, 2
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x470861
mov eax, dword [ebp - 4]
test esi, esi
je 0x470c22
mov dword [eax + 0xc], 1
mov ecx, 0xfc00
add dword [eax], 2
mov eax, dword [eax]
mov ax, word [eax]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [ebp - 4]
jne 0x470bb0
inc dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
jmp 0x470bb6
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
mov esi, dword [edi + 0x5c]
mov eax, esi
sub eax, edx
sar eax, 1
cmp ecx, eax
jbe 0x470be4
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x470ae6
cmp edx, esi
jb 0x470ae6
cmp edx, dword [eax + 0x64]
jmp 0x470ad2
mov esi, dword [ebp - 8]
test ecx, ecx
je 0x470861
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
mov eax, dword [eax]
movzx edx, word [ecx]
movzx esi, word [eax]
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
cmp si, dx
jne case.0x470883.160
add dword [eax + 0xc], 0xffffffff
jne 0x470bf2
mov esi, dword [ebp - 8]
jmp 0x470861
mov esi, dword [eax + 0x38]
mov eax, dword [edi + 0x5c]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x470c48
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x470ae6
cmp esi, dword [eax + 0x64]
jmp 0x470ad2
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
movzx ecx, word [esi]
mov eax, dword [eax]
movzx edx, word [eax + 2]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov eax, ebx
cmp dx, cx
je 0x470f18
xor esi, esi
jmp 0x47223f
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x38]
cmp esi, dword [edi + 0x5c]
jae 0x470c32
cmp dword [ebp - 8], 0
je 0x470d87
mov dword [eax + 0xc], 1
add dword [eax], 2
mov ecx, dword [eax]
movzx esi, word [ecx]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x470cc3
movzx eax, word [ecx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov eax, dword [ebp - 4]
add esi, 0x10000
inc dword [eax + 0xc]
jmp 0x470cc6
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x470d04
mov eax, dword [edi + 0x34]
cmp edx, 0xff
ja 0x470ce3
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov eax, dword [ebp - 4]
je 0x470cf5
xor esi, esi
jmp 0x47223f
add dword [eax], 2
add dword [eax + 0x38], 2
mov esi, dword [ebp - 8]
jmp 0x470861
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x470d3a
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + 0xc]
add eax, eax
add dword [ecx], eax
cmp edx, esi
je 0x475f4b
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x4a1e0c]
add eax, esi
cmp edx, eax
je 0x475f4b
jmp case.0x470883.160
mov eax, dword [eax]
mov ecx, 0xff
movzx eax, word [eax + 2]
cmp ax, cx
ja 0x470da2
mov ecx, eax
mov eax, dword [edi + 0x34]
movzx edx, byte [eax + ecx]
jmp 0x470da4
mov edx, eax
movzx eax, word [esi]
mov ecx, eax
cmp ax, word [ebp - 0x40]
ja 0x470db6
mov eax, dword [edi + 0x34]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne case.0x470883.160
mov ecx, dword [ebp - 4]
lea eax, [esi + 2]
mov esi, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 4
jmp 0x470861
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
cmp edx, dword [edi + 0x5c]
jb 0x470df5
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x470ae6
cmp edx, dword [eax + 0x64]
jmp 0x470ad2
test esi, esi
je 0x470edd
add dword [eax], 2
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x470e3c
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
add edx, 0x10000
mov dword [ecx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
movzx esi, word [eax]
lea ecx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x470e7e
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
add esi, 0x10000
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 4]
cmp edx, esi
jne 0x470e8c
xor esi, esi
jmp 0x47223f
cmp byte [eax + 0x31], 0x20
jne 0x475f4b
cmp edx, 0x7f
jbe 0x470ec6
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x4a1e0c]
jmp 0x470ecd
mov eax, dword [edi + 0x38]
movzx edx, byte [eax + edx]
cmp edx, esi
mov esi, dword [ebp - 8]
jne 0x470861
jmp case.0x470883.160
mov eax, dword [eax]
mov ebx, dword [ebp - 4]
movzx esi, word [edx]
movzx ecx, word [eax + 2]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, esi
je case.0x470883.160
mov eax, ebx
cmp byte [eax + 0x31], 0x20
jne 0x470f18
cmp ecx, 0xff
ja 0x470f10
mov eax, dword [edi + 0x38]
movzx ecx, byte [eax + ecx]
mov eax, ebx
cmp ecx, esi
je case.0x470883.160
add dword [eax], 4
jmp 0x47085b
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
add dword [eax], 4
jmp 0x47100d
mov dword [ebp - 0xc], 2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x47100a
mov dword [ebp - 0xc], 1
jmp 0x470f43
mov dword [ebp - 0xc], 0
jmp 0x470f43
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x47100a
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x47100a
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
add dword [eax], 2
jmp 0x47100a
mov eax, dword [ebp - 4]
cmp dl, 0x2e
mov ecx, dword [eax]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
movzx edx, word [ecx]
sub edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, dword [edx*4 + 0x4a06a0]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + 0x4a06cc]
mov dword [ecx + 0x24], eax
mov eax, dword [edx*4 + 0x4a06f8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
test esi, esi
je 0x4713ac
mov dword [eax + 0xc], 1
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov eax, ecx
mov ecx, dword [eax]
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47105f
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [ebp - 4]
mov ecx, eax
add edx, 0x10000
inc dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x471062
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, ecx
cmp dword [eax + 0xc], 1
jbe 0x4713a7
cmp byte [eax + 0x31], 0x2e
jb 0x4710c0
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x4a1e0c]
add ecx, edx
cmp ecx, edx
je 0x4710c0
mov eax, dword [ebp - 4]
add eax, 0x32
push eax
push ecx
call fcn.00486170
add esp, 8
jmp 0x4710c2
xor eax, eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x24], 1
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
cmp eax, 1
jb 0x4711fd
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x38]
jmp 0x4710e9
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0x20]
add edi, edi
mov ecx, dword [eax + 0x5c]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
cmp ebx, eax
ja 0x47116a
mov eax, dword [ebp - 4]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x471121
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47112a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x471110
cmp esi, 0xfffffffc
je 0x4711dd
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x471167
cmp esi, 0xfffffffd
je 0x4711dd
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x471167
cmp esi, 0xfffffffe
je 0x4711dd
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x471167
cmp esi, 0xffffffff
je 0x4711dd
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4711dd
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x471236
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x471236
mov edx, dword [ebp - 4]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4711a7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4711ac
add ecx, 4
add edx, 4
sub esi, 4
jae 0x471196
cmp esi, 0xfffffffc
je 0x4711dd
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x471236
cmp esi, 0xfffffffd
je 0x4711dd
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x471236
cmp esi, 0xfffffffe
je 0x4711dd
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x471236
cmp esi, 0xffffffff
je 0x4711dd
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x471236
mov eax, dword [ebp - 4]
add ebx, edi
mov edx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x24], edx
mov dword [eax + 0x38], ebx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x4710e6
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp + 0x1c]
cmp eax, dword [ecx + 0x24]
je 0x470861
cmp dword [ebp - 0xc], 0
je 0x47852c
mov eax, ecx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ecx
mov eax, dword [eax + 0x20]
cmp eax, dword [ecx + 0x24]
mov dword [ebp - 0x24], eax
mov eax, ecx
jae 0x47138c
mov ebx, dword [eax + 0x38]
jmp 0x471258
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x470ae6
cmp ebx, dword [eax + 0x5c]
jb 0x470ae6
cmp ebx, dword [eax + 0x64]
jmp 0x470ad2
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp + 0x20]
add edi, edi
mov ecx, dword [eax + 0x5c]
mov eax, ecx
sub eax, edi
mov dword [ebp - 0x1c], ecx
cmp ebx, eax
ja 0x4712da
mov eax, dword [ebp - 4]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x471291
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47129a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x471280
cmp esi, 0xfffffffc
je 0x471349
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4712d7
cmp esi, 0xfffffffd
je 0x471349
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4712d7
cmp esi, 0xfffffffe
je 0x471349
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4712d7
cmp esi, 0xffffffff
je 0x471349
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x471349
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x471363
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x471363
mov edx, dword [ebp - 4]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x471317
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47131c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x471306
cmp esi, 0xfffffffc
je 0x471349
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x471363
cmp esi, 0xfffffffd
je 0x471349
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x471363
cmp esi, 0xfffffffe
je 0x471349
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x471363
cmp esi, 0xffffffff
je 0x471349
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x471363
mov eax, dword [ebp - 4]
add ebx, edi
mov edx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x24], edx
mov dword [eax + 0x38], ebx
cmp edx, dword [eax + 0x24]
jb 0x471255
jmp 0x47138c
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x471389
cmp ebx, dword [eax + 0x5c]
jb 0x471389
cmp ebx, dword [eax + 0x64]
jbe 0x471389
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
cmp dword [ebp - 0xc], 2
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
mov ebx, dword [ebp + 0x1c]
je 0x470861
mov ecx, dword [eax + 0x38]
jmp 0x4772f4
mov dword [eax + 0x28], edx
jmp 0x4713ba
mov eax, dword [eax]
movzx eax, word [eax]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 4]
add dword [eax], 2
cmp byte [eax + 0x31], 0x2e
jb 0x4714fa
test esi, esi
je 0x47140d
mov edx, dword [eax + 0x28]
cmp edx, 0x7f
jbe 0x47140d
mov eax, edx
test eax, eax
jns 0x4713d9
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4713f5
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x4a1e0c]
add ecx, edx
jmp 0x47141f
mov ecx, dword [eax + 0x28]
cmp ecx, 0xff
ja 0x47141f
mov eax, dword [edi + 0x38]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 4]
mov edx, 1
mov dword [eax + 0x2c], ecx
mov eax, dword [eax + 0x20]
cmp eax, edx
jb 0x471474
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
nop word [eax + eax]
mov eax, dword [ebp + 0x20]
cmp ecx, dword [eax + 0x5c]
jae 0x470ac8
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x471460
cmp dword [ebx + 0x2c], eax
jne 0x470ae6
mov eax, dword [ebp - 4]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x471440
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp - 4]
cmp eax, dword [ebx + 0x24]
je 0x47085e
cmp dword [ebp - 0xc], 0
je 0x476a7b
mov eax, ebx
mov ecx, ebx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebx
mov edx, dword [eax + 0x20]
cmp edx, dword [eax + 0x24]
jae 0x4714e2
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x4714c1
movzx ecx, word [eax]
cmp dword [ebx + 0x28], ecx
je 0x4714b3
cmp dword [ebx + 0x2c], ecx
jne 0x4714e2
add eax, 2
inc edx
mov dword [ebx + 0x38], eax
cmp edx, dword [ebx + 0x24]
jb 0x4714a1
jmp 0x4714e2
cmp word [edi + 0x48], 0
je 0x4714e2
cmp eax, dword [edi + 0x64]
jbe 0x4714e2
mov eax, dword [ebp + 0x20]
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x47196b
cmp dword [ebp - 0xc], 2
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x1c]
je 0x470861
mov ebx, dword [ebp - 4]
jmp 0x476a98
mov eax, dword [eax + 0x20]
mov esi, 1
cmp eax, esi
jb 0x47153a
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [ebp + 0x20]
cmp edx, dword [eax + 0x5c]
jae 0x470de2
mov ebx, dword [ebp - 4]
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
mov eax, ebx
jne 0x471590
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x471510
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x47085e
mov esi, dword [ebp - 0xc]
test esi, esi
je 0x476af9
mov eax, ebx
mov ecx, ebx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebx
mov edx, dword [eax + 0x20]
cmp edx, dword [eax + 0x24]
jae 0x4715b8
mov ecx, dword [eax + 0x38]
nop dword [eax + eax]
cmp ecx, dword [edi + 0x5c]
jae 0x47159a
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x4715bb
mov eax, ebx
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, dword [eax + 0x24]
jb 0x471570
jmp 0x4715b8
mov edi, dword [ebp + 0x20]
xor esi, esi
jmp 0x47223f
cmp word [edi + 0x48], 0
je 0x4715b8
cmp ecx, dword [edi + 0x64]
jbe 0x4715b8
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
mov ebx, dword [ebp - 4]
cmp esi, 2
mov esi, dword [ebp - 8]
je 0x47085e
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x47085b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1c
jmp 0x478951
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
add dword [eax], 4
jmp 0x47170c
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], 1
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x47170c
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], 0
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x47170c
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x47170c
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x47170c
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
add dword [eax], 2
jmp 0x47170c
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x47170c
mov eax, dword [ebp - 4]
cmp dl, 0x48
mov ecx, dword [eax]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
movzx edx, word [ecx]
sub edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, dword [edx*4 + 0x4a06a0]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + 0x4a06cc]
mov dword [ecx + 0x24], eax
mov eax, dword [edx*4 + 0x4a06f8]
mov dword [ebp - 0xc], eax
mov eax, ecx
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
movzx eax, word [eax]
mov dword [ecx + 0x28], eax
mov eax, ecx
mov edx, dword [eax]
add edx, 2
mov dword [eax], edx
test esi, esi
je 0x47175b
mov ecx, dword [eax + 0x28]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x471758
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or eax, ecx
mov ecx, dword [ebp - 4]
add eax, 0x10000
mov dword [ecx + 0x28], eax
mov eax, ecx
add dword [eax], 2
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0x48
jb 0x4719ed
test esi, esi
je 0x4717ae
mov edx, dword [eax + 0x28]
cmp edx, 0x7f
jbe 0x4717ae
mov eax, edx
test eax, eax
jns 0x47177a
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x471796
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x4a1e0c]
add ecx, edx
jmp 0x4717c0
mov ecx, dword [eax + 0x28]
cmp ecx, 0xff
ja 0x4717c0
mov eax, dword [edi + 0x38]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 4]
mov dword [eax + 0x2c], ecx
mov eax, dword [eax + 0x20]
test esi, esi
je 0x471859
mov esi, 1
cmp eax, esi
jb 0x471854
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
jmp 0x4717f3
mov eax, dword [ebp - 4]
cmp edx, dword [edi + 0x5c]
jae 0x472b9c
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x471837
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x47183a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], ecx
je case.0x470883.160
cmp dword [eax + 0x2c], ecx
je case.0x470883.160
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4717f0
mov esi, dword [ebp - 8]
jmp 0x4718a1
mov edx, 1
cmp eax, edx
jb 0x4718a1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
nop dword [eax + eax]
cmp ecx, dword [edi + 0x5c]
jae 0x473e16
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.0x470883.160
cmp dword [ebx + 0x2c], eax
je case.0x470883.160
mov eax, ebx
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x471870
mov ebx, dword [ebp - 4]
cmp eax, dword [ebx + 0x24]
je 0x47085e
cmp dword [ebp - 0xc], 0
je 0x478386
mov eax, ebx
mov ecx, ebx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebx
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test esi, esi
je 0x47197c
cmp edi, eax
jae 0x471977
mov eax, ebx
mov edx, dword [eax + 0x38]
nop
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x471954
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47191d
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 - 4]
cmp dword [eax + 0x28], ecx
je 0x471936
cmp dword [eax + 0x2c], ecx
je 0x471936
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4718e0
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x470861
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
jmp 0x4773bf
mov edi, eax
cmp word [edi + 0x48], 0
je 0x471939
cmp edx, dword [edi + 0x64]
jbe 0x471939
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
jbe 0x471939
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x20]
jmp 0x47193c
cmp edi, eax
jae 0x4719b1
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [eax + 0x38]
nop dword [eax]
mov ecx, dword [ebp + 0x20]
cmp eax, dword [ecx + 0x5c]
jae 0x4719cf
movzx ecx, word [eax]
cmp dword [edx + 0x28], ecx
je 0x4719b1
cmp dword [edx + 0x2c], ecx
je 0x4719b1
add eax, 2
inc edi
mov dword [edx + 0x38], eax
cmp edi, dword [edx + 0x24]
jb 0x471990
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x470861
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
mov eax, dword [eax + 0x38]
jmp 0x476b8a
mov edi, ecx
cmp word [edi + 0x48], 0
je 0x4719b4
cmp eax, dword [edi + 0x64]
jbe 0x4719b4
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
jmp 0x4719b4
mov eax, dword [eax + 0x20]
test esi, esi
mov esi, 1
je 0x471a6d
cmp eax, esi
jb 0x471aa8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
jmp 0x471a13
mov eax, dword [ebp - 4]
cmp edx, dword [edi + 0x5c]
jae 0x472b9c
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x471a57
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x471a5a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], ecx
je case.0x470883.160
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x471a10
jmp 0x471aa8
cmp eax, 1
jb 0x471aa8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
nop dword [eax + eax]
cmp edx, dword [edi + 0x5c]
jae 0x472b9c
mov ebx, dword [ebp - 4]
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
mov eax, ebx
je 0x470c68
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x471a80
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x47085e
cmp dword [ebp - 0xc], 0
je 0x47839c
mov eax, ebx
mov ecx, ebx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebx
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
test esi, esi
je 0x471b81
cmp edi, eax
jae 0x471b7c
mov eax, ebx
mov edx, dword [eax + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x471b5f
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x471b2d
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 - 4]
cmp dword [eax + 0x28], ecx
je 0x471b41
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x471af0
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x470861
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
jmp 0x477481
mov edi, eax
cmp word [edi + 0x48], 0
je 0x471b44
cmp edx, dword [edi + 0x64]
jbe 0x471b44
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x47196b
jmp 0x471b44
mov edi, dword [ebp + 0x20]
jmp 0x471b47
cmp edi, eax
jae 0x471bb1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
cmp ecx, dword [eax + 0x5c]
jae 0x471bcf
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x471bb1
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, dword [eax + 0x24]
jb 0x471b90
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x470861
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
mov eax, dword [eax + 0x38]
jmp 0x476c08
mov edi, eax
cmp word [edi + 0x48], 0
je 0x471bb4
cmp ecx, dword [edi + 0x64]
jbe 0x471bb4
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
jmp 0x471bb4
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [eax]
add eax, 2
mov dword [ecx + 8], eax
mov eax, ecx
add dword [eax], 0x22
mov edx, dword [eax]
movzx ecx, word [edx]
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x471c1c
movzx eax, byte [eax + 0x478d04]
jmp dword [eax*4 + 0x478cfc]
lea eax, [edx + 2]
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipResetPath]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipDrawPath]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 4]
mov edx, dword [ecx*4 + sym.imp.gdiplus.dll_GdipAddPathArc]
mov dword [ebp - 0xc], edx
mov eax, dword [eax + 0x20]
jmp 0x471ca9
mov ecx, dword [ebp - 4]
movzx eax, word [edx + 2]
mov dword [ecx + 0x20], eax
mov eax, ecx
mov ecx, 0xffffffff
mov eax, dword [eax]
movzx eax, word [eax + 4]
test eax, eax
cmove eax, ecx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov ecx, dword [eax]
movzx eax, word [ecx]
mov eax, dword [eax*4 + sym.imp.gdiplus.dll_GdipAddPathArc]
mov dword [ebp - 0xc], eax
lea eax, [ecx + 6]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, ecx
mov eax, dword [eax + 0x20]
jmp 0x471ca9
mov eax, dword [ebp - 4]
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
mov eax, 1
mov ebx, 1
test esi, esi
je 0x471d89
cmp eax, ebx
jb 0x471de7
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov edi, dword [eax + 0x38]
cmp edi, dword [ecx + 0x5c]
jae 0x471d57
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x471d0b
movzx eax, word [edi]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov eax, dword [ebp - 4]
add esi, 0x10000
add edi, 2
mov dword [eax + 0x38], edi
jmp 0x471d0e
mov eax, dword [ebp - 4]
cmp esi, 0xff
jbe 0x471d22
cmp byte [eax + 0x31], 0x6e
je 0x470ae6
jmp 0x471d43
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
mov eax, dword [ebp - 4]
je 0x471590
mov ecx, dword [ebp + 0x20]
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x471de7
mov eax, dword [ebp - 4]
jmp 0x471cc7
cmp word [ecx + 0x48], 0
je 0x471d81
cmp edi, dword [ecx + 0x64]
mov edi, dword [ebp + 0x20]
jbe case.0x470883.160
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
jmp case.0x470883.160
mov edi, dword [ebp + 0x20]
jmp case.0x470883.160
cmp eax, 1
jb 0x471de7
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov edi, dword [eax + 0x38]
cmp edi, dword [ecx + 0x5c]
jae 0x471d57
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x471db9
cmp byte [eax + 0x31], 0x6e
je 0x470ae6
jmp 0x471dda
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
mov eax, dword [ebp - 4]
je 0x471590
mov ecx, dword [ebp + 0x20]
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x471de7
mov eax, dword [ebp - 4]
jmp 0x471d97
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x470851
cmp dword [ebp - 0xc], 0
je 0x4783b2
mov eax, ebx
mov ecx, ebx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebx
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x1c], ecx
test esi, esi
je 0x471ef3
cmp ecx, eax
jae 0x471ece
mov eax, ebx
mov edi, dword [eax + 0x38]
nop word [eax + eax]
mov eax, dword [ebp + 0x20]
mov ebx, 1
cmp edi, dword [eax + 0x5c]
jae 0x471eb1
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x471e6d
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 [ebp - 4]
cmp esi, 0xff
jbe 0x471e80
cmp byte [eax + 0x31], 0x6e
je 0x471eac
jmp 0x471e9d
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 0x471eac
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
lea edi, [edi + ebx*2]
inc ecx
mov dword [eax + 0x38], edi
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [eax + 0x24]
jb 0x471e30
mov edi, dword [ebp + 0x20]
jmp 0x471ed5
cmp word [eax + 0x48], 0
je 0x471ed3
cmp edi, dword [eax + 0x64]
mov edi, eax
jbe 0x471ed5
mov dword [edi + 0x2c], ebx
cmp word [edi + 0x48], bx
ja 0x47196b
jmp 0x471ed5
mov edi, dword [ebp + 0x20]
jmp 0x471ed8
mov edi, eax
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
je 0x47085e
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xc9
jmp 0x478951
cmp ecx, eax
jae 0x471f9b
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x20]
mov edi, dword [eax + 0x38]
cmp edi, dword [edx + 0x5c]
jae 0x471f78
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x471f47
cmp byte [eax + 0x31], 0x6e
jne 0x471f67
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
je 0x47085e
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x18
jmp 0x478951
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 0x471f1a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x20]
add edi, 2
inc ecx
mov dword [eax + 0x38], edi
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [eax + 0x24]
jb 0x471f04
jmp 0x471f1a
cmp word [edx + 0x48], 0
je 0x471f1a
cmp edi, dword [edx + 0x64]
mov edi, dword [ebp + 0x20]
jbe 0x471f1d
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
jmp 0x471f1d
mov edi, dword [ebp + 0x20]
jmp 0x471f20
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [eax]
add eax, 4
mov dword [ecx + 8], eax
mov eax, ecx
mov ecx, dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov dword [eax], ecx
movzx edx, word [ecx]
lea eax, [edx - 0x62]
cmp eax, 0xb
ja case.default.0x471fd4
movzx eax, byte [eax + 0x478d18]
jmp dword [eax*4 + 0x478d10]
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipResetPath]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipDrawPath]
mov edx, dword [edx*4 + sym.imp.gdiplus.dll_GdipAddPathArc]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [eax + 0x20]
jmp 0x472060
movzx eax, word [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x20], eax
mov eax, ecx
mov ecx, 0xffffffff
mov eax, dword [eax]
movzx eax, word [eax + 4]
test eax, eax
cmove eax, ecx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov ecx, dword [eax]
movzx eax, word [ecx]
mov eax, dword [eax*4 + sym.imp.gdiplus.dll_GdipAddPathArc]
mov dword [ebp - 0xc], eax
lea eax, [ecx + 6]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, ecx
mov eax, dword [eax + 0x20]
jmp 0x472060
mov eax, dword [ebp - 4]
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
mov eax, 1
mov esi, 1
cmp eax, esi
jb 0x4720e6
nop dword [eax]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x4721d2
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x4720c4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4720c1
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
push dword [ebp - 8]
push dword [eax + 8]
push ecx
call fcn.004868c0
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 4]
je 0x470c68
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x472070
mov ebx, dword [ebp - 4]
cmp eax, dword [ebx + 0x24]
je 0x47085b
cmp dword [ebp - 0xc], 0
je 0x477040
mov eax, ebx
mov ecx, ebx
mov eax, dword [eax + 0x38]
mov dword [ecx + 4], eax
mov eax, ebx
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x47218c
mov edx, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
jmp 0x472123
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [ecx + 0x5c]
jae 0x4721aa
movzx ecx, word [edx]
test ebx, ebx
je 0x472167
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472164
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 - 4]
push ebx
push dword [eax + 8]
push ecx
call fcn.004868c0
add esp, 0xc
test eax, eax
je 0x47218c
mov ecx, dword [ebp - 4]
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 0x472120
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
je 0x47085b
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x65
jmp 0x478951
mov edi, ecx
cmp word [edi + 0x48], 0
je 0x47218f
cmp edx, dword [edi + 0x64]
jbe 0x47218f
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x47196b
jmp 0x47218f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4721e1
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x472221
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472221
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
ja 0x4722f0
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je 0x4722f0
xor esi, esi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp dword [eax + 0x18], 0
je 0x478ab2
sub eax, dword [eax + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [edi + 0xa0]
mov ebx, dword [ebp - 4]
or dword [eax + 0x3c], 2
movzx eax, byte [ebx + 0x30]
dec eax
cmp eax, 0xdd
ja case.0x476cd4.15
movzx eax, byte [eax + 0x478e10]
jmp dword [eax*4 + 0x478d24]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x472297
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x4722d7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4722d7
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
ja case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je case.0x470883.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x47085e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x472319
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x472359
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472359
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
ja 0x4722f0
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
jmp 0x472234
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x47238b
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x4723cb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4723cb
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
ja case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
je case.0x470883.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x47085e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x47240d
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x47244d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47244d
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
ja 0x4722f0
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
jmp 0x472234
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x472483
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x4724c3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4724c3
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
ja case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je case.0x470883.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x47085e
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x38]
cmp esi, dword [edi + 0x5c]
jb 0x472505
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp esi, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 8], 0
mov edx, esi
mov dword [eax + 0x38], esi
je 0x472546
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472546
movzx eax, word [esi]
lea edx, [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], edx
cmp ecx, 0xd
ja 0x4725ae
je 0x472561
cmp ecx, 0xa
je 0x4725d9
jbe case.0x470883.160
cmp ecx, 0xc
jmp 0x4725c8
cmp edx, dword [edi + 0x5c]
jb 0x472592
cmp word [edi + 0x48], 0
je 0x4725d9
cmp edx, dword [edi + 0x64]
jbe 0x4725d9
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 8]
add dword [eax], 2
jmp 0x470861
cmp word [edx], 0xa
jne 0x4725d9
mov ecx, dword [ebp - 4]
lea eax, [edx + 2]
mov esi, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x470861
cmp ecx, 0x85
je 0x4725ce
cmp ecx, 0x2027
jbe case.0x470883.160
cmp ecx, 0x2029
ja case.0x470883.160
cmp word [edi + 0x4a], 2
je case.0x470883.160
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 8]
add dword [eax], 2
jmp 0x470861
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x472605
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x472648
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472645
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
cmp ecx, 0x180e
ja 0x472692
je case.0x470883.160
cmp ecx, 0xa0
ja 0x47267e
je case.0x470883.160
cmp ecx, 9
je case.0x470883.160
cmp ecx, 0x20
je case.0x470883.160
add dword [eax], 2
jmp 0x47085e
cmp ecx, 0x1680
je case.0x470883.160
add dword [eax], 2
jmp 0x47085e
cmp ecx, 0x205f
ja 0x4726cc
je case.0x470883.160
cmp ecx, 0x2000
jb 0x4722f3
cmp ecx, 0x200a
jbe case.0x470883.160
cmp ecx, 0x202f
je case.0x470883.160
add dword [eax], 2
jmp 0x47085e
cmp ecx, 0x3000
je case.0x470883.160
add dword [eax], 2
jmp 0x47085e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4726fe
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x472741
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47273e
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
cmp ecx, 0x180e
ja 0x472773
je 0x4722f3
cmp ecx, 0xa0
ja 0x47276b
je 0x4722f3
cmp ecx, 9
je 0x4722f3
cmp ecx, 0x20
jmp 0x4727a7
cmp ecx, 0x1680
jmp 0x4727a7
cmp ecx, 0x205f
ja 0x4727a1
je 0x4722f3
cmp ecx, 0x2000
jb case.0x470883.160
cmp ecx, 0x200a
jbe 0x4722f3
cmp ecx, 0x202f
jmp 0x4727a7
cmp ecx, 0x3000
je 0x4722f3
jmp case.0x470883.160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4727d0
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x472810
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472810
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x85
ja 0x47283b
je case.0x470883.160
cmp ecx, 0xa
jb 0x4722f0
cmp ecx, 0xd
jbe case.0x470883.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x47085e
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x4722f0
jmp case.0x470883.160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x47286d
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x4728ad
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4728ad
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x85
ja 0x4728d2
je 0x4722f0
cmp ecx, 0xa
jb case.0x470883.160
cmp ecx, 0xd
jbe 0x4722f0
jmp case.0x470883.160
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x470883.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x47085e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x47290a
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx edx, word [eax]
lea ecx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], ecx
test esi, esi
je 0x47294a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47294a
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
movzx eax, word [esi + 2]
cmp eax, 0xa
ja case.0x476cd4.15
jmp dword [eax*4 + 0x478ef0]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0xf
je case.0x470883.160
add dword [eax], 6
jmp 0x47085b
mov al, byte [ecx*4 + 0x4a1e09]
cmp al, 9
je 0x4729b1
cmp al, 5
je 0x4729b1
cmp al, 8
je 0x4729b1
xor ecx, ecx
jmp 0x4729b6
mov ecx, 1
mov ebx, dword [ebp - 4]
xor eax, eax
cmp byte [ebx + 0x31], 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 4]
jne 0x472992
xor esi, esi
jmp 0x47223f
movzx ecx, byte [ecx*4 + 0x4a1e09]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x4a0ef0]
mov ecx, dword [ebp - 4]
setne dl
xor eax, eax
cmp byte [ecx + 0x31], 0x10
sete al
cmp edx, eax
mov eax, ecx
jne 0x472992
xor esi, esi
jmp 0x47223f
movzx eax, byte [ecx*4 + 0x4a1e09]
mov ebx, dword [ebp - 4]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp byte [ebx + 0x31], 0x10
jmp 0x4729bf
movzx eax, byte [ecx*4 + 0x4a1e08]
jmp 0x472a09
movzx eax, byte [ecx*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4729b1
cmp eax, 3
je 0x4729b1
xor ecx, ecx
jmp 0x4729b6
cmp edx, 0x180e
ja 0x472a82
je case.0x472a9e.8192
cmp edx, 0x85
ja 0x472a72
je case.0x472a9e.8192
cmp edx, 9
jb case.0x472a9e.8203
cmp edx, 0xd
jbe case.0x472a9e.8192
cmp edx, 0x20
jmp 0x472ab3
cmp edx, 0xa0
je case.0x472a9e.8192
cmp edx, 0x1680
jmp 0x472ab3
cmp edx, 0x202f
ja 0x472aa5
je case.0x472a9e.8192
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x472a9e.8203
movzx eax, byte [edx + 0x478f24]
jmp dword [eax*4 + 0x478f1c]
cmp edx, 0x205f
je case.0x472a9e.8192
cmp edx, 0x3000
je case.0x472a9e.8192
movzx eax, byte [ecx*4 + 0x4a1e09]
xor ecx, ecx
cmp dword [eax*4 + 0x4a0ef0], 6
sete cl
jmp 0x4729b6
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0xf
jmp 0x4729c4
movzx eax, byte [ecx*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4729b1
cmp eax, 3
je 0x4729b1
cmp edx, 0x5f
je 0x4729b1
xor ecx, ecx
jmp 0x4729b6
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x4a1a50]
lea eax, [eax*4 + 0x4a1a50]
cmp edx, ecx
jb 0x472b2f
lea eax, [eax + 4]
cmp edx, ecx
je 0x472b3b
mov ecx, dword [eax]
cmp edx, ecx
jae 0x472b22
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0x10
jmp 0x4729c4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0x10
je 0x472992
xor esi, esi
jmp 0x47223f
cmp edx, 0x24
je 0x4729b1
cmp edx, 0x40
je 0x4729b1
cmp edx, 0x60
je 0x4729b1
cmp edx, 0xa0
jb 0x472b7e
cmp edx, 0xd7ff
jbe 0x4729b1
cmp edx, 0xe000
jae 0x4729b1
xor ecx, ecx
jmp 0x4729b6
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
cmp edx, dword [edi + 0x5c]
jb 0x472baf
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp edx, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 8]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x472bf1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472bf1
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push ebx
push dword [edi + 0x5c]
push dword [edi + 0x58]
push esi
push ecx
call fcn.00485e00
mov ecx, dword [ebp - 4]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp word [edi + 0x48], 0
je 0x472c2d
cmp eax, dword [edi + 0x5c]
jb 0x472c2d
cmp eax, dword [edi + 0x64]
jbe 0x472c2d
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
mov esi, ebx
add dword [eax], 2
jmp 0x47085e
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
add dword [eax], 4
jmp 0x472d36
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp - 4]
mov ebx, ecx
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov eax, dword [eax]
cmp word [eax], 0x5c
setne dl
add eax, 4
mov dword [ebp - 0xc], edx
mov dword [ebx], eax
jmp 0x472d3b
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x472d36
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
add dword [eax], 2
jmp 0x472d36
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
add dword [eax], 2
jmp 0x472d36
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], 2
mov dword [eax + 0x20], 0
mov eax, dword [eax]
movzx eax, word [eax + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
add dword [eax], 4
jmp 0x472d36
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [eax]
movzx ecx, word [eax]
add eax, 2
mov dword [edx], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipDrawArc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov dword [ebp - 0xc], eax
mov eax, edx
mov ebx, dword [ebp - 4]
mov eax, dword [eax]
movzx eax, word [eax]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
add ecx, 2
mov dword [eax], ecx
mov eax, dword [eax + 0x28]
cmp eax, 0x10
je 0x472d60
cmp eax, 0xf
je 0x472d60
mov eax, dword [ebp - 4]
or ebx, 0xffffffff
jmp 0x472d76
movzx ebx, word [ecx]
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
movzx eax, word [eax]
mov dword [ecx + 0x2c], eax
mov eax, ecx
add dword [eax], 2
mov edx, dword [eax + 0x20]
mov dword [ebp - 0x1c], ebx
test edx, edx
je 0x472ed0
test ebx, ebx
js 0x473556
cmp ebx, 0xa
ja case.0x476cd4.15
jmp dword [ebx*4 + 0x478f50]
cmp dword [eax + 0x28], 0xf
je case.0x470883.160
mov ecx, dword [eax + 0x38]
mov esi, 1
mov ebx, dword [ebp - 8]
cmp ecx, dword [edi + 0x5c]
jae 0x472def
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x38], eax
mov ecx, eax
test ebx, ebx
je 0x472de1
and edx, 0xfc00
cmp edx, 0xd800
jne 0x472de1
lea ecx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], ecx
jmp 0x472de4
mov eax, dword [ebp - 4]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x472db1
jmp 0x472ecd
cmp word [edi + 0x48], 0
je 0x472e0d
cmp ecx, dword [edi + 0x64]
jbe 0x472e0d
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
xor esi, esi
mov edx, ebx
jmp 0x472242
mov esi, dword [eax + 0x38]
mov edi, 1
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x472f0c
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x472e6e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472e6e
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x4a1e09]
cmp al, 9
je 0x472ea5
cmp al, 5
je 0x472ea5
cmp al, 8
je 0x472ea5
xor ecx, ecx
jmp 0x472eaa
mov ecx, 1
mov ebx, dword [ebp - 4]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x471590
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x472e21
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
mov eax, dword [eax + 0x20]
cmp eax, dword [ebx + 0x24]
je 0x47085b
cmp dword [ebp - 0xc], 0
je 0x4783cb
mov eax, ebx
mov eax, dword [eax + 0x38]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x1c]
test eax, eax
js 0x474abd
cmp eax, 0xa
ja case.0x476cd4.15
jmp dword [eax*4 + 0x478f7c]
mov edi, ecx
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp esi, dword [edi + 0x64]
jmp 0x471d64
mov esi, dword [eax + 0x38]
mov edi, 1
nop dword [eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x472f0c
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x472f79
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x472f79
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x471590
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x472f30
jmp 0x472eca
mov esi, dword [eax + 0x38]
mov edi, 1
nop dword [eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x472f0c
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x47302d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47302d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x471590
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x472fe0
jmp 0x472eca
mov esi, dword [eax + 0x38]
mov edi, 1
nop word [eax + eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x472f0c
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4730dd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4730dd
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e08]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x471590
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x473090
jmp 0x472eca
mov esi, dword [eax + 0x38]
mov edi, 1
nop word [eax + eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x472f0c
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x47318d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47318d
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4731ca
cmp eax, 3
je 0x4731ca
xor ecx, ecx
jmp 0x4731cf
mov ecx, 1
mov ebx, dword [ebp - 4]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x471590
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x473140
jmp 0x472eca
mov esi, 1
nop dword [eax]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x4721d2
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x473250
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x473250
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 4]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x473253
mov edx, dword [ebp - 4]
cmp ecx, 0x180e
ja 0x473296
je case.0x4732b2.8192
cmp ecx, 0x85
ja 0x473282
je case.0x4732b2.8192
cmp ecx, 9
jb case.0x4732b2.8203
cmp ecx, 0xd
jbe case.0x4732b2.8192
cmp ecx, 0x20
jmp 0x4732c7
cmp ecx, 0xa0
je case.0x4732b2.8192
cmp ecx, 0x1680
jmp 0x4732c7
cmp ecx, 0x202f
ja 0x4732b9
je case.0x4732b2.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x4732b2.8203
movzx eax, byte [eax + 0x478fb0]
jmp dword [eax*4 + 0x478fa8]
cmp ecx, 0x205f
je case.0x4732b2.8192
cmp ecx, 0x3000
je case.0x4732b2.8192
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
cmp dword [eax*4 + 0x4a0ef0], 6
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 4]
je 0x470c68
jmp 0x473321
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
je case.0x470883.160
inc esi
cmp esi, dword [eax + 0x20]
mov eax, dword [ebp - 4]
ja 0x472ed0
jmp 0x473200
mov esi, dword [eax + 0x38]
mov edi, 1
nop dword [eax + eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x472f0c
cmp dword [ebp - 8], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x47338d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47338d
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [ebp - 4]
add edx, 0x10000
mov dword [eax + 0x38], esi
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4733d1
cmp eax, 3
je 0x4733d1
cmp edx, 0x5f
je 0x4733d1
xor ecx, ecx
jmp 0x4733d6
mov ecx, 1
mov ebx, dword [ebp - 4]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x471590
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x473340
jmp 0x472eca
mov esi, 1
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x4721d2
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x473451
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47344e
movzx eax, word [edx]
and ecx, 0x3ff
mov ebx, dword [ebp - 4]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x4a1a50]
lea eax, [eax*4 + 0x4a1a50]
cmp ecx, edx
jb 0x473473
lea eax, [eax + 4]
cmp ecx, edx
je 0x473492
mov edx, dword [eax]
cmp ecx, edx
jae 0x473466
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
jne 0x470c68
inc esi
cmp esi, dword [eax + 0x20]
mov eax, dword [ebp - 4]
ja 0x472ed0
jmp 0x473400
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
je case.0x470883.160
jmp 0x473480
mov esi, 1
nop word [eax + eax]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x4721d2
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x473500
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x473500
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [ebp - 4]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x473503
mov edx, dword [ebp - 4]
cmp ecx, 0x24
je 0x47352e
cmp ecx, 0x40
je 0x47352e
cmp ecx, 0x60
je 0x47352e
cmp ecx, 0xa0
jb 0x473522
cmp ecx, 0xd7ff
jbe 0x47352e
cmp ecx, 0xe000
jae 0x47352e
xor ecx, ecx
jmp 0x473533
mov ecx, 1
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 4]
je 0x470c68
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4734b0
jmp 0x472ecd
mov eax, dword [eax + 0x28]
cmp eax, 0x16
jne 0x473627
mov ebx, dword [ebp + 0x20]
lea edi, [eax - 0x15]
mov eax, dword [ebp - 4]
nop dword [eax + eax]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x5c]
jae 0x473612
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x4735c0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4735c0
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 4]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push dword [ebp - 8]
push dword [ebx + 0x5c]
push dword [ebx + 0x58]
push esi
push ecx
call fcn.00485e00
mov ecx, dword [ebp - 4]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp word [ebx + 0x48], 0
je 0x4735fe
cmp eax, dword [ebx + 0x5c]
jb 0x4735fe
cmp eax, dword [ebx + 0x64]
jbe 0x4735fe
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x473570
mov edi, ebx
jmp 0x472ecd
mov edi, ebx
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x476cd4.15
test esi, esi
je 0x473d19
jmp dword [eax*4 + 0x478fdc]
jmp dword [eax*4 + 0x47901c]
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp ecx, dword [edi + 0x64]
jmp 0x471d64
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x20]
cmp esi, dword [eax + 0x24]
jae 0x4743af
mov edx, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
mov ecx, 1
cmp edx, dword [edi + 0x5c]
jae 0x4742c6
test ebx, ebx
je 0x4742ab
mov eax, 0xfc00
and ax, word [edx]
cmp ax, word [ebp - 0x44]
mov eax, 2
cmove ecx, eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
je 0x4743af
lea edx, [edx + ecx*2]
inc esi
mov dword [eax + 0x38], edx
cmp esi, dword [eax + 0x24]
jb 0x474286
jmp 0x4743af
cmp word [edi + 0x48], 0
je 0x4743af
cmp edx, dword [edi + 0x64]
jbe 0x4743af
mov dword [edi + 0x2c], ecx
cmp word [edi + 0x48], cx
ja 0x47196b
jmp 0x4743af
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4743a9
mov edx, dword [eax + 0x38]
nop
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x4743c7
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x474347
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474347
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, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x4a1e09]
cmp al, 9
je 0x47437e
cmp al, 5
je 0x47437e
cmp al, 8
je 0x47437e
xor ecx, ecx
jmp 0x474383
mov ecx, 1
mov ebx, dword [ebp - 4]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4747f8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x474300
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 4]
cmp dword [ebp - 0xc], 2
mov esi, dword [ebp - 8]
mov ebx, dword [ebp + 0x1c]
je 0x470861
mov ecx, dword [eax + 0x38]
jmp 0x47833b
mov edi, eax
cmp word [edi + 0x48], 0
je 0x4743ac
cmp edx, dword [edi + 0x64]
jbe 0x4743ac
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x47196b
jmp 0x4743ac
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4743a9
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x4743c7
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x474435
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474435
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov ebx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4747f8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4743f2
jmp 0x4743a9
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4743a9
mov edx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x4743c7
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x4744f7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4744f7
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov ebx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4747f8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4744b0
jmp 0x4743a9
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4743a9
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x4743c7
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x4745ab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4745ab
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov ebx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e08]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4747f8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x474564
jmp 0x4743a9
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4743a9
mov edx, dword [eax + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x4743c7
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x474667
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474667
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, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4746a4
cmp eax, 3
je 0x4746a4
xor ecx, ecx
jmp 0x4746a9
mov ecx, 1
mov ebx, dword [ebp - 4]
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4747f8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x474620
jmp 0x4743a9
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x20]
cmp ebx, dword [eax + 0x24]
jae 0x4743ac
mov edx, dword [eax + 0x38]
mov edi, edx
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x4743c7
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x474737
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474737
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0x47477a
je case.0x47479a.8192
cmp ecx, 0x85
ja 0x474766
je case.0x47479a.8192
cmp ecx, 9
jb case.0x47479a.8203
cmp ecx, 0xd
jbe case.0x47479a.8192
cmp ecx, 0x20
jmp 0x4747af
cmp ecx, 0xa0
je case.0x47479a.8192
cmp ecx, 0x1680
jmp 0x4747af
cmp ecx, 0x202f
ja 0x4747a1
je case.0x47479a.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x47479a.8203
movzx eax, byte [eax + 0x479064]
jmp dword [eax*4 + 0x47905c]
cmp ecx, 0x205f
je case.0x47479a.8192
cmp ecx, 0x3000
je case.0x47479a.8192
mov edx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
cmp dword [eax*4 + 0x4a0ef0], 6
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
jne 0x47480f
mov edi, dword [ebp + 0x20]
jmp 0x4743af
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
je 0x4743a9
mov edi, edx
lea edx, [edi + esi*2]
inc ebx
mov dword [eax + 0x38], edx
mov edi, edx
cmp ebx, dword [eax + 0x24]
jb 0x4746f0
jmp 0x4743a9
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x20]
cmp ebx, dword [eax + 0x24]
jae 0x4743ac
mov esi, dword [eax + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov edi, 1
cmp esi, dword [eax + 0x5c]
jae 0x4748fb
cmp dword [ebp - 8], 0
movzx edx, word [esi]
je 0x474887
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474887
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 + 0x4a4988]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4748cb
cmp eax, 3
je 0x4748cb
cmp edx, 0x5f
je 0x4748cb
xor ecx, ecx
jmp 0x4748d0
mov ecx, 1
mov edx, dword [ebp - 4]
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x4747f8
lea esi, [esi + edi*2]
inc ebx
mov dword [eax + 0x38], esi
cmp ebx, dword [eax + 0x24]
jb 0x474840
jmp 0x4743a9
mov edi, eax
cmp word [edi + 0x48], 0
je 0x4743ac
cmp esi, dword [edi + 0x64]
jbe 0x4743ac
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
jmp 0x4743ac
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x4743a9
mov edx, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
nop dword [eax]
mov ecx, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [ecx + 0x5c]
jae 0x4749e4
movzx ecx, word [edx]
test ebx, ebx
je 0x474988
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474985
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 - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x4a1a50]
lea eax, [eax*4 + 0x4a1a50]
cmp ecx, edx
jb 0x4749ad
nop dword [eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4749d5
mov edx, dword [eax]
cmp ecx, edx
jae 0x4749a0
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x28], 0xf
jne 0x4743a9
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov edx, dword [ecx + 0x38]
mov eax, dword [ebp - 4]
cmp edi, dword [ecx + 0x24]
jb 0x474940
jmp 0x4743a9
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x28], 0xf
je 0x4743a9
jmp 0x4749ba
mov edi, ecx
cmp word [edi + 0x48], 0
je 0x4743ac
cmp edx, dword [edi + 0x64]
jbe 0x4743ac
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x47196b
jmp 0x4743ac
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x4743a9
mov edx, dword [ebx + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x4743c7
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x474a67
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474a67
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x474a92
cmp ecx, 0x40
je 0x474a92
cmp ecx, 0x60
je 0x474a92
cmp ecx, 0xa0
jb 0x474a86
cmp ecx, 0xd7ff
jbe 0x474a92
cmp ecx, 0xe000
jae 0x474a92
xor ecx, ecx
jmp 0x474a97
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je 0x4743a9
lea edx, [edx + esi*2]
inc edi
mov dword [ebx + 0x38], edx
cmp edi, dword [ebx + 0x24]
jb 0x474a20
jmp 0x4743a9
mov eax, dword [ebx + 0x28]
cmp eax, 0x16
jne 0x474bb4
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x474b9c
mov ecx, dword [ebp + 0x20]
nop dword [eax + eax]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x5c]
jae 0x474b79
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x474b2a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x474b2a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, dword [ebp + 0x20]
push 0
push dword [ebp - 8]
push dword [eax + 0x5c]
push dword [eax + 0x58]
push esi
push ecx
call fcn.00485e00
mov ecx, dword [ebp + 0x20]
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp word [ecx + 0x48], 0
je 0x474b6b
cmp eax, dword [ecx + 0x5c]
jb 0x474b6b
cmp eax, dword [ecx + 0x64]
jbe 0x474b6b
mov dword [ecx + 0x2c], 1
cmp word [ecx + 0x48], 1
ja 0x47196b
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x474ae0
mov edi, ecx
jmp 0x474b9f
mov edi, dword [ebp + 0x20]
cmp word [edi + 0x48], 0
je 0x474b9f
cmp eax, dword [edi + 0x64]
jbe 0x474b9f
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
jmp 0x474b9f
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
mov esi, dword [ebp - 8]
je 0x47085e
mov edx, dword [ebx + 4]
jmp 0x478321
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x476cd4.15
mov esi, dword [ebp - 8]
test esi, esi
je 0x475313
jmp dword [eax*4 + 0x479090]
jmp dword [eax*4 + 0x4790d0]
mov ebx, dword [ebp - 4]
xor eax, eax
cmp dl, 0x74
sete al
mov dword [ebx + 0x28], eax
mov edx, dword [ebx]
movzx eax, word [edi + 0x4e]
movzx ecx, word [edx + 2]
movzx esi, word [edx + 4]
imul ecx, eax
mov eax, dword [edi + 0x50]
lea ecx, [eax + ecx*2]
lea eax, [edx + 6]
mov dword [ebx], eax
test esi, esi
je 0x475968
nop dword [eax]
movzx eax, word [ecx]
dec esi
lea eax, [eax*2 - 2]
mov dword [ebx + 0x14], eax
cmp eax, dword [ebx + 0x50]
jae 0x47593a
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x475968
movzx eax, word [edi + 0x4e]
lea ecx, [ecx + eax*2]
test esi, esi
jg 0x475920
jmp 0x475968
mov ebx, dword [ebp - 4]
xor eax, eax
cmp dl, 0x72
sete al
mov dword [ebx + 0x28], eax
mov eax, dword [ebx]
movzx eax, word [eax + 2]
lea eax, [eax*2 - 2]
mov dword [ebx + 0x14], eax
add dword [ebx], 4
mov ecx, dword [ebx]
movzx edx, word [ecx]
lea eax, [edx - 0x62]
cmp eax, 7
ja case.default.0x475980
movzx eax, byte [eax + 0x479118]
jmp dword [eax*4 + 0x479110]
mov esi, dword [edx*4 + sym.imp.gdiplus.dll_GdipAddPathArc]
lea eax, [ecx + 2]
mov dword [ebx], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipResetPath]
mov dword [ebx + 0x20], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipDrawPath]
mov dword [ebx + 0x24], eax
mov dword [ebp - 0xc], esi
jmp 0x4759db
movzx eax, word [ecx + 2]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx]
movzx ecx, word [eax + 4]
mov dword [ebx + 0x24], ecx
mov edx, dword [ebx]
movzx eax, word [edx]
mov eax, dword [eax*4 + sym.imp.gdiplus.dll_GdipAddPathArc]
mov dword [ebp - 0xc], eax
test ecx, ecx
jne 0x4759d6
mov dword [ebx + 0x24], 0xffffffff
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x50]
jae 0x4759fe
mov ecx, dword [ebx + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x4759fe
mov esi, dword [ebp - 8]
cmp ecx, dword [ebx + eax*4 + 0x58]
je 0x47085e
mov eax, dword [ebx + 0x20]
jmp 0x475a1c
mov eax, dword [ebx + 0x20]
mov esi, dword [ebp - 8]
test eax, eax
je 0x47085e
test dword [edi + 0x84], 0x200
jne 0x47085e
mov esi, 1
cmp eax, esi
jb 0x475a51
lea eax, [ebp - 0x4c]
push eax
push edi
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00479260
add esp, 0x14
test eax, eax
jne 0x475ac2
mov eax, dword [ebp - 0x4c]
inc esi
add eax, eax
add dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x20]
cmp esi, eax
jbe 0x475a25
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x47085e
cmp dword [ebp - 0xc], 0
je 0x4784a9
mov eax, dword [ebx + 0x38]
mov esi, 1
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + ecx*4 + 0x58]
sub eax, dword [ebx + ecx*4 + 0x54]
mov dword [ebx + 0xc], eax
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x475b17
nop dword [eax]
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x20]
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00479260
add esp, 0x14
test eax, eax
jne 0x475ae9
mov eax, dword [ebp - 0x50]
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 0x475a90
jmp 0x475b0f
jle 0x475aca
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
jle 0x475b0f
mov ecx, dword [ebp + 0x20]
cmp word [ecx + 0x48], 0
je 0x475b0f
mov eax, dword [ecx + 0x5c]
cmp eax, dword [ecx + 0x64]
jbe 0x475b0f
mov dword [ecx + 0x2c], 1
cmp word [ecx + 0x48], 1
ja 0x47196b
test esi, esi
je 0x478404
mov edi, dword [ebp + 0x20]
jmp 0x47692d
lea eax, [ebp + 0xc]
push eax
push edi
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00479260
add esp, 0x14
test eax, eax
je 0x475b5e
jle 0x475b3f
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
mov eax, dword [ebp + 0xc]
add eax, eax
add dword [ebx + 0x38], eax
jmp 0x47085b
mov edx, dword [ebp - 4]
add dword [edx], 2
mov ecx, dword [edx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx], ecx
cmp word [ecx], 0x78
je 0x475b73
lea eax, [ecx + 4]
mov dword [edx], eax
jmp 0x470861
cmp dword [edi + 0x30], 0
mov ebx, dword [ebp - 4]
jne 0x478418
cmp dword [ebx + 0x18], 0
je 0x478418
mov ecx, dword [ebx]
jmp 0x476540
mov ebx, dword [ebp - 4]
lea eax, [ebp + 0xc]
push eax
push edi
push ebx
call fcn.00470640
mov esi, eax
add esp, 0xc
test esi, esi
jg case.0x470883.160
js 0x47223c
mov eax, dword [ebp + 0xc]
add eax, eax
add dword [ebx], eax
jmp 0x47085b
mov ebx, dword [ebp - 4]
mov eax, dword [ebx]
movzx eax, word [eax + 2]
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx]
cmp word [ecx + eax*2], 0x78
je 0x475bf2
add eax, 0xfffffffe
mov dword [ebx + 0xc], eax
add ecx, 4
mov dword [ebx], ecx
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x76
je 0x475c06
cmp eax, 0x77
jne 0x475c34
lea eax, [ebp + 0xc]
push eax
push edi
push ebx
call fcn.00470640
mov esi, eax
add esp, 0xc
test esi, esi
jg case.0x470883.160
js 0x47223c
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + ecx]
add dword [ebx], eax
sub dword [ebx + 0xc], ecx
mov ecx, dword [ebx]
movzx edx, word [ecx]
movzx eax, dx
add eax, 0xffffff72
movzx esi, dx
cmp eax, 0x12
ja case.0x475c4f.148
movzx eax, byte [eax + 0x47913c]
jmp dword [eax*4 + 0x479120]
mov edx, dword [ebx + 0x44]
cmp edx, 0xffffffff
je case.0x475c4f.146
movzx eax, word [ecx + 2]
cmp eax, 0xffff
je case.0x475c4f.147
cmp eax, edx
je case.0x475c4f.147
jmp case.0x475c4f.146
mov esi, dword [ebx + 0x44]
cmp esi, 0xffffffff
je case.0x475c4f.146
movzx edx, word [ecx + 4]
movzx ecx, word [ecx + 2]
movzx edi, word [edi + 0x4e]
mov eax, dword [ebp + 0x20]
imul ecx, edi
mov eax, dword [eax + 0x50]
lea ecx, [eax + ecx*2]
test edx, edx
je 0x475d45
nop word [eax + eax]
movzx eax, word [ecx]
xor ebx, ebx
dec edx
cmp eax, esi
sete bl
je 0x475cc4
lea ecx, [ecx + edi*2]
test edx, edx
jg 0x475cb0
mov edi, dword [ebp + 0x20]
test ebx, ebx
mov ebx, dword [ebp - 4]
je case.0x475c4f.146
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
jmp 0x475d4d
movzx eax, word [ecx + 2]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae case.0x475c4f.146
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je case.0x475c4f.146
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
jmp 0x475d4d
movzx edx, word [ecx + 4]
movzx ecx, word [ecx + 2]
movzx esi, word [edi + 0x4e]
mov eax, dword [edi + 0x50]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x475c4f.146
mov edi, dword [ebx + 0x50]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x475d3e
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x4781b4
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x475d24
mov edi, dword [ebp + 0x20]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov dword [eax], ebx
cmp byte [eax + 0x31], 0x8d
jne 0x47085b
mov edx, 0x2008d
mov byte [eax + 0x30], 0x23
mov dword [ebp + 8], edx
jmp 0x478951
mov ebx, dword [ebp - 4]
mov eax, dword [ebx]
movzx edx, word [eax + 2]
test esi, esi
je 0x475db0
test edx, edx
je 0x475dab
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [edi + 0x58]
jbe case.0x470883.160
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, word [ebp - 0x14]
cmp ax, word [ebp - 0x18]
jne 0x475da7
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x475d84
mov ecx, dword [ebx + 0x38]
jmp 0x475dca
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [edi + 0x58]
sar eax, 1
cmp edx, eax
jg case.0x470883.160
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [edi + 0x64]
jae 0x475dd2
mov dword [edi + 0x64], ecx
add dword [ebx], 4
jmp 0x47085e
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
nop
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx], ecx
cmp word [ecx], 0x78
je 0x475de0
jmp 0x470861
mov edi, dword [ebp - 4]
mov ecx, 0x84
mov ebx, dword [edi]
movzx eax, word [ebx + 2]
add eax, eax
sub ebx, eax
movzx eax, word [ebx]
cmp ax, cx
je 0x475e7c
mov ecx, 0x88
cmp ax, cx
je 0x475e7c
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx + 0x10]
add edx, dword [edi + 0x4c]
mov esi, edx
mov dword [ebp - 0x10], edx
sub esi, dword [ebp + 0x1c]
mov eax, dword [esi + 0x4c]
mov dword [edi + 0x4c], eax
mov eax, dword [edx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x475e77
mov eax, dword [edi + 0x50]
shl eax, 2
push eax
lea eax, [edi + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.0048b490
mov eax, dword [edi + 0x50]
add esp, 0xc
mov dword [esi + 0x50], eax
mov eax, edi
sub eax, esi
mov dword [edi + 0x10], eax
mov edi, dword [ebp + 0x20]
mov esi, 1
jmp 0x47223c
movzx eax, word [ebx]
jmp 0x475e84
mov ecx, dword [ebp + 0x20]
xor esi, esi
mov edx, dword [ebp - 0x10]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0xe
ja case.0x475e9a.132
movzx eax, byte [eax + 0x479168]
jmp dword [eax*4 + 0x479150]
mov eax, dword [edi + 0x38]
cmp eax, dword [ecx + 0x68]
jbe 0x475eac
mov dword [ecx + 0x68], eax
mov eax, dword [esi + 0x38]
mov dword [edi + 0x38], eax
mov eax, edi
sub eax, esi
mov dword [edi + 0x10], eax
mov ecx, dword [esi]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
jne case.0x475e9a.132
nop dword [eax]
mov dword [esi], ecx
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
je 0x475ed0
jmp case.0x475e9a.132
push dword [ebp - 8]
push dword [edi + 0x38]
push dword [esi + 0x38]
call fcn.004861c0
add esp, 0xc
test eax, eax
jne case.0x475e9a.132
mov edi, dword [ebp + 0x20]
xor esi, esi
jmp 0x47223c
movzx eax, word [ebx + 4]
cmp dword [edi + 0x44], eax
jne 0x475f53
mov ebx, dword [ebp + 0x1c]
mov esi, edx
sub esi, ebx
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.0048b490
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [edi + 0x44], eax
mov eax, dword [esi]
add eax, 4
mov dword [edi], eax
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
jmp 0x470861
lea edx, [eax + eax]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x38]
lea ecx, [edx - 2]
mov dword [ebp - 0x38], edx
mov edx, dword [ebp + 0x20]
sub eax, dword [edx + 0x58]
sar eax, 1
mov dword [edi + ecx*4 + 0x54], eax
mov eax, dword [edi + 0x38]
sub eax, dword [edx + 0x58]
mov edx, dword [ebp - 0x38]
sar eax, 1
mov dword [edi + ecx*4 + 0x58], eax
cmp ecx, dword [edi + 0x50]
jb case.0x475e9a.132
mov dword [edi + 0x50], edx
mov edx, dword [edi]
cmp word [edx], 0x7c
jne 0x475fad
push dword [ebp - 0x3c]
lea eax, [edi + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.0048b490
mov edi, dword [ebp + 0x20]
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x47223c
mov cl, byte [edi + 0x31]
cmp cl, 0x79
je 0x475fc9
test esi, esi
je 0x47846b
mov eax, dword [edi + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x47846b
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp - 4]
add dword [ebx], 4
jmp 0x47085b
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
cmp eax, dword [edi + 0x58]
jne case.0x470883.160
test byte [edi + 0x80], 1
jne case.0x470883.160
add dword [ecx], 2
jmp 0x470861
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
cmp eax, dword [edi + 0x58]
je 0x475ff3
jmp case.0x470883.160
test byte [edi + 0x80], 2
jne case.0x470883.160
test byte [edi + 0x84], 0x10
je case.0x470883.23
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x470883.160
cmp word [edi + 0x48], 0
je 0x475ff3
cmp eax, dword [edi + 0x64]
jbe 0x475ff3
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
add dword [ecx], 2
jmp 0x470861
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov edx, dword [edi + 0x38]
mov esi, dword [ecx + 0x5c]
cmp edx, esi
jae 0x4760db
mov eax, dword [ecx + 0x90]
lea ebx, [ecx + 0x94]
test eax, eax
je 0x4760a1
push dword [ebp - 8]
push ebx
push esi
push eax
push edx
call fcn.00485fe0
add esp, 0x14
test eax, eax
je 0x476107
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp - 4]
mov edi, dword [ebx]
mov esi, dword [ecx + 0x5c]
mov edx, dword [eax + 0x38]
jmp 0x4760cf
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x476104
mov ecx, dword [ebp + 0x20]
mov ax, word [edx]
cmp ax, word [ecx + 0x98]
jne 0x476104
cmp edi, 1
je 0x4760cf
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x9a]
jne 0x476104
lea eax, [edi + edi]
mov edi, dword [ebp - 4]
sub esi, eax
cmp edx, esi
jne 0x476107
cmp word [ecx + 0x48], 0
je 0x4760f9
cmp edx, dword [ecx + 0x64]
jbe 0x4760f9
mov dword [ecx + 0x2c], 1
cmp word [ecx + 0x48], 1
ja 0x47196b
add dword [edi], 2
mov edi, dword [ebp + 0x20]
jmp 0x47085b
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x470b5e
mov ecx, dword [edi + 0x38]
mov edi, dword [ebp + 0x20]
lea eax, [ecx + 2]
cmp eax, dword [edi + 0x5c]
jb case.0x470883.160
cmp dword [edi + 0x90], 0
jne case.0x470883.160
cmp dword [ebx], 2
jne case.0x470883.160
mov ax, word [ecx]
cmp ax, word [edi + 0x98]
jne case.0x470883.160
jmp 0x471d6a
test byte [edi + 0x80], 1
mov ebx, dword [ebp - 4]
je 0x47616a
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x58]
je case.0x470883.160
mov ecx, dword [ebx + 0x38]
mov edx, dword [edi + 0x58]
cmp ecx, edx
je 0x4762ea
cmp ecx, dword [edi + 0x5c]
jne 0x47618d
test dword [edi + 0x84], 0x200000
je case.0x470883.160
mov esi, dword [edi + 0x90]
test esi, esi
je 0x4761c4
cmp ecx, edx
jbe case.0x470883.160
push dword [ebp - 8]
lea eax, [edi + 0x94]
push eax
push edx
push esi
push ecx
call fcn.00486090
add esp, 0x14
test eax, eax
je case.0x470883.160
add dword [ebx], 2
jmp 0x47085b
mov edi, dword [edi + 0x94]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb 0x471d81
mov edx, dword [ebp + 0x20]
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [edx + 0x98]
jne 0x47620a
cmp edi, 1
mov edi, edx
je 0x4762ea
mov ax, word [ecx + 2]
cmp ax, word [edi + 0x9a]
je 0x4762ea
jmp case.0x470883.160
mov edi, edx
jmp case.0x470883.160
mov ebx, dword [ebp - 4]
mov ecx, dword [edi + 0x5c]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x4762b5
mov eax, dword [edi + 0x90]
add edi, 0x94
test eax, eax
je 0x47624e
push esi
push edi
push ecx
push eax
push edx
call fcn.00485fe0
add esp, 0x14
test eax, eax
je 0x47627e
mov edi, dword [ebp + 0x20]
add dword [ebx], 2
jmp 0x47085b
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x47627e
mov ecx, dword [ebp + 0x20]
mov ax, word [edx]
cmp ax, word [ecx + 0x98]
jne 0x47627e
cmp esi, 1
je 0x4762e8
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x9a]
je 0x4762e8
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x470b5e
mov ecx, dword [ebx + 0x38]
mov ebx, dword [ebp + 0x20]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x5c]
jb 0x4709b3
cmp dword [ebx + 0x90], 0
jne 0x4709b3
cmp dword [edi], 2
mov edi, ebx
jmp 0x476137
test byte [edi + 0x80], 2
jne case.0x470883.160
cmp word [edi + 0x48], 0
je 0x4762ea
cmp edx, dword [edi + 0x64]
jbe 0x4762ea
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
add dword [ebx], 2
jmp 0x47085b
mov edi, ecx
add dword [ebx], 2
jmp 0x47085b
mov ecx, dword [edi + 0x40]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x38], eax
je 0x475ff3
jmp case.0x470883.160
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
add dword [ecx], 2
jmp 0x470861
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x38]
cmp esi, dword [edi + 0x58]
je 0x476400
cmp dword [ebp - 8], 0
lea edx, [esi - 2]
je 0x4763a3
movzx eax, word [edx]
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x476351
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47637c
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, dword [ebp - 4]
cmp edx, dword [edi + 0x64]
jae 0x47638a
mov dword [edi + 0x64], edx
mov esi, dword [eax + 0x38]
test dword [edi + 0x84], 0x20000
je 0x4763e8
cmp ecx, 0x5f
jne 0x4763a8
lea ebx, [ecx - 0x5e]
jmp 0x476402
movzx ecx, word [edx]
jmp 0x47637f
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4763e1
cmp eax, 3
jne 0x476400
mov ebx, 1
jmp 0x476402
cmp ecx, 0xff
ja 0x476400
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je 0x476400
mov ebx, 1
jmp 0x476402
xor ebx, ebx
mov eax, dword [edi + 0x5c]
cmp esi, eax
jb 0x476450
cmp word [edi + 0x48], 0
je 0x476427
cmp esi, dword [edi + 0x64]
jbe 0x476427
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
xor edx, edx
mov esi, dword [ebp - 4]
xor edx, ebx
mov eax, dword [esi]
movzx ecx, word [eax]
add eax, 2
mov dword [esi], eax
cmp ecx, 5
jne 0x476440
xor edx, 1
mov ebx, dword [ebp + 0x1c]
test edx, edx
je 0x475f4b
jmp case.0x470883.160
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
je 0x4764a2
cmp edx, eax
jae 0x476475
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x476475
add edx, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4764a5
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x4764a5
movzx ecx, word [esi]
mov edi, dword [ebp + 0x20]
cmp edx, dword [edi + 0x68]
jbe 0x4764b0
mov dword [edi + 0x68], edx
test dword [edi + 0x84], 0x20000
je 0x476510
cmp ecx, 0x5f
jne 0x4764c9
lea edx, [ecx - 0x5e]
jmp 0x476429
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x476506
cmp eax, 3
jne 0x476427
mov edx, 1
jmp 0x476429
cmp ecx, 0xff
ja 0x476427
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je 0x476427
mov edx, 1
jmp 0x476429
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx + 4]
mov dword [ebx], ecx
movzx eax, word [ecx + 2]
lea edx, [ecx + eax*2]
mov dword [ebx + 4], edx
cmp word [edx], 0x78
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
je 0x47848e
mov dword [eax], ebx
jmp 0x47085b
cmp esi, 0xfffffc1f
jne 0x476593
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edi + 0x74], eax
jae case.0x472276.35
cmp word [ecx], 0x78
je 0x47659b
cmp word [eax], 0x78
jmp 0x476595
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x478742
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x472242
cmp esi, 0xfffffc19
je 0x4780f9
test esi, esi
je 0x4765d6
cmp esi, 0xfffffc1f
jne case.0x472276.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x478804
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x472242
cmp esi, 0xfffffc1f
jg 0x476639
je 0x478135
cmp esi, 0xfffffc19
je 0x476650
cmp esi, 0xfffffc1a
jle case.0x472276.35
cmp esi, 0xfffffc1d
jg case.0x472276.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x476625
jmp 0x470856
mov eax, esi
sub eax, 0
je 0x478135
sub eax, 1
mov eax, dword [ebp - 4]
jne 0x472242
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x472242
cmp esi, 0xfffffc1f
jg 0x476694
je 0x478177
cmp esi, 0xfffffc19
je 0x47814f
cmp esi, 0xfffffc1a
jle case.0x472276.35
cmp esi, 0xfffffc1d
jle 0x47818e
mov eax, dword [ebp - 4]
jmp 0x472242
mov eax, esi
sub eax, 0
je 0x478177
sub eax, 1
je 0x47816f
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebx], ecx
jmp 0x47085b
test esi, esi
je 0x475fcf
mov eax, dword [ebp - 4]
jmp 0x472242
cmp esi, 0xfffffc1a
jne 0x476707
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x478497
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4766f6
jmp 0x47674a
cmp esi, 0xfffffc1f
jne 0x47672d
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edi + 0x74], eax
jae case.0x472276.35
cmp word [ecx], 0x78
je 0x476735
cmp word [eax], 0x78
jmp 0x47672f
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4786fb
cmp dword [ebx + 0x24], 0
jne 0x470856
cmp dword [ebx + 0x28], 0
jne 0x470856
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x476773
jmp 0x470856
test esi, esi
je 0x4762ea
mov eax, dword [ebp - 4]
jmp 0x472242
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x4767e0
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [edi + 0x7c], eax
jne 0x4767e0
cmp esi, 0xfffffc1f
jne case.0x470883.160
cmp dword [edi + 0x74], ecx
jae case.0x470883.160
cmp word [edx], 0x78
je 0x4767eb
cmp word [ecx], 0x78
je 0x4767eb
jmp case.0x470883.160
mov edx, dword [ebp - 8]
test esi, esi
jne case.0x472276.35
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x4787d2
jmp case.0x470883.160
cmp esi, 0xfffffc1e
jne case.0x472276.35
mov eax, dword [ebx]
push dword [edi + 0x78]
add eax, 4
push eax
call fcn.00486700
mov edx, dword [ebp - 8]
add esp, 8
test eax, eax
jne case.0x472276.35
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [edi + 0x78], eax
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [edi + 0x78], eax
mov eax, dword [ebx + 0x44]
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx]
mov esi, 0xfffffc1e
add eax, 4
mov dword [edi + 0x78], eax
mov eax, dword [ebx + 0x44]
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx]
mov esi, 0xfffffc1f
mov dword [edi + 0x74], eax
mov eax, dword [ebx + 0x44]
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
lea eax, [ebp - 0x54]
push eax
push edi
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00479260
add esp, 0x14
test eax, eax
je 0x4784a1
jle 0x476900
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx + 0xc]
neg eax
add eax, eax
add dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x15
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx + 4]
cmp dword [ebx + 0x38], eax
je case.0x470883.160
mov dword [ebx + 0x38], eax
dec dword [ebx + 0x24]
mov esi, dword [ebx + 0x20]
cmp esi, dword [ebx + 0x24]
jae 0x476998
mov edi, dword [ebx + 0x38]
nop dword [eax]
lea eax, [ebp - 0x58]
push eax
push dword [ebp + 0x20]
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00479260
mov eax, dword [ebp - 0x58]
inc esi
add esp, 0x14
lea edi, [edi + eax*2]
mov dword [ebx + 0x38], edi
cmp esi, dword [ebx + 0x24]
jb 0x476970
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x16
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4769da
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
add eax, 2
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x476a03
cmp byte [ebx + 0x31], 0x6e
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x17
jmp 0x478951
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4769f5
jmp case.0x470883.160
test esi, esi
jne case.0x472276.35
add dword [ebx + 0x38], 0xfffffffe
jmp 0x471f2d
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [edi + 0x5c]
jb 0x476a64
cmp word [edi + 0x48], si
je case.0x470883.160
cmp ecx, dword [edi + 0x64]
jmp 0x471d64
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x476a75
cmp dword [ebx + 0x2c], eax
jne case.0x470883.160
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x19
jmp 0x478951
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
jne case.0x472276.35
mov esi, dword [ebp - 8]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x47085e
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1a
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov esi, dword [ebx + 0x38]
cmp esi, dword [edi + 0x5c]
jb 0x476ae7
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp esi, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1b
jmp 0x478951
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x4715c7
mov eax, dword [ebp - 4]
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [edi + 0x5c]
jb 0x476b4f
cmp word [edi + 0x48], si
je case.0x470883.160
cmp ecx, dword [edi + 0x64]
jmp 0x471d64
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.0x470883.160
cmp dword [ebx + 0x2c], eax
je case.0x470883.160
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1d
jmp 0x478951
test esi, esi
jne case.0x472276.35
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 4]
je 0x47085e
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1e
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov esi, dword [ebx + 0x38]
cmp esi, dword [edi + 0x5c]
jb 0x476bd6
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp esi, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1f
jmp 0x478951
test esi, esi
jne case.0x472276.35
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 4]
je 0x47085e
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x20
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov edx, dword [ebx + 0x38]
mov ecx, dword [edi + 0x5c]
cmp edx, ecx
jb 0x476c55
cmp word [edi + 0x48], si
je case.0x470883.160
cmp edx, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebx + 0x28], 0xc
jne 0x476cbc
mov eax, dword [edi + 0x90]
lea esi, [edi + 0x94]
test eax, eax
je 0x476c8b
push dword [ebp - 8]
push esi
push ecx
push eax
push edx
call fcn.00485fe0
add esp, 0x14
test eax, eax
jne case.0x470883.160
mov edx, dword [ebx + 0x38]
jmp 0x476cbc
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x476cbc
mov ax, word [edx]
cmp ax, word [edi + 0x98]
jne 0x476cbc
cmp esi, 1
je case.0x470883.160
mov ax, word [edx + 2]
cmp ax, word [edi + 0x9a]
je case.0x470883.160
movzx ecx, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
mov eax, dword [ebx + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x476cd4.15
jmp dword [eax*4 + 0x479178]
cmp ecx, 0xd
ja 0x476cff
je 0x4784b7
cmp ecx, 0xa
je case.0x476cd4.13
jbe case.0x470883.160
cmp ecx, 0xc
jbe 0x476d1f
jmp case.0x470883.160
cmp ecx, 0x85
je 0x476d1f
cmp ecx, 0x2027
jbe case.0x470883.160
cmp ecx, 0x2029
ja case.0x470883.160
cmp word [edi + 0x4a], 2
jne case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x180e
ja 0x476d73
je case.0x470883.160
cmp ecx, 0xa0
ja 0x476d62
je case.0x470883.160
cmp ecx, 9
je case.0x470883.160
cmp ecx, 0x20
jne case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x1680
jne case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x205f
ja 0x476daa
je case.0x470883.160
cmp ecx, 0x2000
jb case.0x476cd4.13
cmp ecx, 0x200a
jbe case.0x470883.160
cmp ecx, 0x202f
jne case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x3000
jne case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x180e
ja 0x476dff
je case.0x476cd4.13
cmp ecx, 0xa0
ja 0x476dee
je case.0x476cd4.13
cmp ecx, 9
je case.0x476cd4.13
cmp ecx, 0x20
je case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x1680
je case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x205f
ja 0x476e36
je case.0x476cd4.13
cmp ecx, 0x2000
jb case.0x470883.160
cmp ecx, 0x200a
jbe case.0x476cd4.13
cmp ecx, 0x202f
je case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x3000
je case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x85
ja 0x476e66
je case.0x470883.160
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x476cd4.13
jmp case.0x470883.160
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x85
ja 0x476e9f
je case.0x476cd4.13
cmp ecx, 0xa
jb case.0x470883.160
cmp ecx, 0xd
jbe case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0x2028
jb case.0x470883.160
cmp ecx, 0x2029
jbe case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0xff
ja case.0x476cd4.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0xff
ja case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
jne case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0xff
ja case.0x476cd4.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
je case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0xff
ja case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
jne case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0xff
ja case.0x476cd4.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je case.0x476cd4.13
jmp case.0x470883.160
cmp ecx, 0xff
ja case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
jne case.0x476cd4.13
jmp case.0x470883.160
test esi, esi
jne case.0x472276.35
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x476fa3
cmp eax, dword [ebx + 4]
jbe 0x476fa3
cmp word [eax], 0xa
jne 0x476fa3
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x476fa3
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x47085b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x22
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x476fee
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
mov esi, dword [ebp - 8]
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x47702b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47702b
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
push esi
push dword [ebx + 8]
push ecx
call fcn.004868c0
add esp, 0xc
test eax, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x64
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.0x470883.160
cmp dword [ebp - 8], esi
je 0x47219c
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x47219c
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x65
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4770d2
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477108
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x477128
cmp byte [ebx + 0x31], 0x6e
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xc8
jmp 0x478951
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x47711a
jmp case.0x470883.160
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.0x470883.160
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x471ee5
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xc9
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebp + 0x20]
mov edi, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x38]
mov ecx, dword [eax + 0x5c]
mov eax, ecx
lea esi, [edi + edi]
mov dword [ebp - 0x1c], ecx
sub eax, esi
cmp ebx, eax
ja 0x47722a
mov eax, dword [ebp - 4]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4771e1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4771ea
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4771d0
cmp esi, 0xfffffffc
je 0x478523
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x477227
cmp esi, 0xfffffffd
je 0x478523
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x477227
cmp esi, 0xfffffffe
je 0x478523
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x477227
cmp esi, 0xffffffff
je 0x478523
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x478523
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov edi, dword [edx + 0x14]
test edi, edi
je 0x4772a8
lea esi, [edi + edi]
mov eax, ecx
sub eax, esi
cmp ebx, eax
ja 0x4772a8
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x477262
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47726b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x477251
cmp esi, 0xfffffffc
je 0x478523
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4772a8
cmp esi, 0xfffffffd
je 0x478523
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4772a8
cmp esi, 0xfffffffe
je 0x478523
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4772a8
cmp esi, 0xffffffff
je 0x478523
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x478523
mov edi, dword [ebp + 0x20]
cmp word [edi + 0x48], 0
je case.0x470883.160
cmp ebx, dword [edi + 0x5c]
jb case.0x470883.160
cmp ebx, dword [edi + 0x64]
jmp 0x471d64
test esi, esi
jne case.0x472276.35
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 4]
jne 0x4772f4
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x47085b
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x478954
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x47733c
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477372
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.0x470883.160
cmp dword [ebx + 0x2c], ecx
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xcc
jmp 0x478951
test esi, esi
jne case.0x472276.35
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 4]
jne 0x4773bf
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x47085b
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477407
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47743d
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xce
jmp 0x478951
test esi, esi
jne case.0x472276.35
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 4]
jne 0x477481
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x47085b
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcf
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4774c9
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 8]
mov dword [ebx + 0x38], eax
test edx, edx
je 0x4774ed
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4774ed
add eax, 2
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x4783db.0
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x472242
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477535
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x477571
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477571
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x4a1e09]
cmp al, 9
je 0x4775a8
cmp al, 5
je 0x4775a8
cmp al, 8
je 0x4775a8
xor ecx, ecx
jmp 0x4775ad
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd1
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477600
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x47763c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x47763c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd2
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4776c6
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x477702
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477702
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd3
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477785
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x4777c1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4777c1
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e08]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd4
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477844
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x477880
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477880
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x4778bd
cmp eax, 3
je 0x4778bd
xor ecx, ecx
jmp 0x4778c2
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd5
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477915
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x477951
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477951
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x180e
ja 0x477998
je case.0x4779b8.8192
cmp ecx, 0x85
ja 0x477984
je case.0x4779b8.8192
cmp ecx, 9
jb case.0x4779b8.8203
cmp ecx, 0xd
jbe case.0x4779b8.8192
cmp ecx, 0x20
jmp 0x4779d1
cmp ecx, 0xa0
je case.0x4779b8.8192
cmp ecx, 0x1680
jmp 0x4779d1
cmp ecx, 0x202f
ja 0x4779bf
je case.0x4779b8.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x4779b8.8203
movzx eax, byte [eax + 0x4791c0]
jmp dword [eax*4 + 0x4791b8]
cmp ecx, 0x205f
je case.0x4779b8.8192
cmp ecx, 0x3000
je case.0x4779b8.8192
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
cmp dword [eax*4 + 0x4a0ef0], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd6
jmp 0x478951
cmp dword [ebx + 0x28], 0xf
jne case.0x4783db.6
jmp case.0x470883.160
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477a6a
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea ecx, [eax + 2]
movzx edx, word [eax]
mov dword [ebx + 0x38], ecx
je 0x477aa6
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477aa6
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 [ebx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x4a4988]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e09]
mov eax, dword [eax*4 + 0x4a0ef0]
cmp eax, 1
je 0x477aea
cmp eax, 3
je 0x477aea
cmp edx, 0x5f
je 0x477aea
xor ecx, ecx
jmp 0x477aef
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd7
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477b42
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x477b7e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477b7e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax*4 + 0x4a1a50]
lea eax, [eax*4 + 0x4a1a50]
cmp ecx, edx
jb 0x477ba0
lea eax, [eax + 4]
cmp ecx, edx
je 0x477bb8
mov edx, dword [eax]
cmp ecx, edx
jae 0x477b93
cmp dword [ebx + 0x28], 0xf
jne case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd8
jmp 0x478951
cmp dword [ebx + 0x28], 0xf
jne case.0x4783db.9
jmp case.0x470883.160
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x477bf7
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x477c33
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477c33
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x24
je 0x477c5e
cmp ecx, 0x40
je 0x477c5e
cmp ecx, 0x60
je 0x477c5e
cmp ecx, 0xa0
jb 0x477c52
cmp ecx, 0xd7ff
jbe 0x477c5e
cmp ecx, 0xe000
jae 0x477c5e
xor ecx, ecx
jmp 0x477c63
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x470883.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd9
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x47854b
cmp word [edi + 0x48], si
je case.0x470883.160
cmp eax, dword [edi + 0x64]
jmp 0x471d64
test esi, esi
jne case.0x472276.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x470883.160
mov edx, dword [ebx + 0x38]
mov ecx, dword [edi + 0x5c]
cmp edx, ecx
jb 0x477cf0
cmp word [edi + 0x48], si
je case.0x470883.160
cmp edx, dword [edi + 0x64]
jmp 0x471d64
cmp dword [ebx + 0x28], 0xc
jne 0x477d57
mov eax, dword [edi + 0x90]
lea esi, [edi + 0x94]
test eax, eax
je 0x477d26
push dword [ebp - 8]
push esi
push ecx
push eax
push edx
call fcn.00485fe0
add esp, 0x14
test eax, eax
jne case.0x470883.160
mov edx, dword [ebx + 0x38]
jmp 0x477d57
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x477d57
mov ax, word [edx]
cmp ax, word [edi + 0x98]
jne 0x477d57
cmp esi, 1
je case.0x470883.160
mov ax, word [edx + 2]
cmp ax, word [edi + 0x9a]
je case.0x470883.160
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x477d8d
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebx + 0x38], edx
mov eax, dword [ebx + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x476cd4.15
jmp dword [eax*4 + 0x4791ec]
cmp ecx, 0xd
ja 0x477dc7
je 0x4785d2
cmp ecx, 0xa
je case.0x477d9c.13
jbe case.0x470883.160
cmp ecx, 0xc
jbe 0x477de7
jmp case.0x470883.160
cmp ecx, 0x85
je 0x477de7
cmp ecx, 0x2027
jbe case.0x470883.160
cmp ecx, 0x2029
ja case.0x470883.160
cmp word [edi + 0x4a], 2
jne case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x180e
ja 0x477e3b
je case.0x470883.160
cmp ecx, 0xa0
ja 0x477e2a
je case.0x470883.160
cmp ecx, 9
je case.0x470883.160
cmp ecx, 0x20
jne case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x1680
jne case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x205f
ja 0x477e72
je case.0x470883.160
cmp ecx, 0x2000
jb case.0x477d9c.13
cmp ecx, 0x200a
jbe case.0x470883.160
cmp ecx, 0x202f
jne case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x3000
jne case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x180e
ja 0x477ec7
je case.0x477d9c.13
cmp ecx, 0xa0
ja 0x477eb6
je case.0x477d9c.13
cmp ecx, 9
je case.0x477d9c.13
cmp ecx, 0x20
je case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x1680
je case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x205f
ja 0x477efe
je case.0x477d9c.13
cmp ecx, 0x2000
jb case.0x470883.160
cmp ecx, 0x200a
jbe case.0x477d9c.13
cmp ecx, 0x202f
je case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x3000
je case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x85
ja 0x477f2e
je case.0x470883.160
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x477d9c.13
jmp case.0x470883.160
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x85
ja 0x477f67
je case.0x477d9c.13
cmp ecx, 0xa
jb case.0x470883.160
cmp ecx, 0xd
jbe case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x2028
jb case.0x470883.160
cmp ecx, 0x2029
jbe case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x100
jae case.0x477d9c.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x100
jae case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
jne case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x100
jae case.0x477d9c.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
je case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x100
jae case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
jne case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x100
jae case.0x477d9c.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je case.0x477d9c.13
jmp case.0x470883.160
cmp ecx, 0x100
jae case.0x470883.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
jne case.0x477d9c.13
jmp case.0x470883.160
test esi, esi
jne case.0x472276.35
mov esi, dword [ebx + 0x38]
add esi, 0xfffffffe
mov dword [ebx + 0x38], esi
test edx, edx
jne 0x4781d0
movzx ecx, word [esi]
jmp 0x478219
test esi, esi
jne case.0x472276.35
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x478083
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x4780a5
cmp ecx, dword [ebx + 4]
jbe 0x4780a5
cmp word [ecx], 0xa
jne 0x4780a5
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x4780a5
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x47085b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xdd
jmp 0x478951
test esi, esi
jne case.0x472276.35
mov ecx, dword [ebx + 0x38]
mov esi, dword [ebp - 8]
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov edx, ecx
test esi, esi
je 0x478338
mov ax, word [edx]
and ax, word [ebp - 0x14]
cmp ax, word [ebp - 0x18]
mov eax, dword [ebp - 4]
jne 0x47833b
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
jmp 0x47833b
mov esi, dword [ebp - 0x20]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.0048b490
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x478121
jmp 0x470856
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x478833
jmp 0x470856
mov esi, dword [ebp - 0x20]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.0048b490
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov ebx, dword [ebx + 0x20]
mov edx, dword [ebp - 4]
jmp 0x478199
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebx + 4], eax
cmp word [eax], 0x78
je 0x478441
mov edx, dword [ebp - 4]
xor ebx, ebx
cmp dword [edx + 0x20], ebx
sete bl
test ebx, ebx
je 0x4781c8
mov ecx, dword [edx]
nop
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx], ecx
cmp word [ecx], 0x78
je 0x4781a0
jmp 0x475cc7
mov edi, dword [ebp + 0x20]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
jmp 0x475d4d
mov ebx, dword [ebp - 4]
jmp case.0x475c4f.146
movzx eax, word [esi]
mov edx, esi
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4781ec
lea edx, [esi - 2]
mov dword [ebx + 0x38], edx
movzx ecx, word [edx]
movzx ecx, cx
mov esi, edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x478219
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edx, dword [ebx + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x4a1e0a]
mov dword [ebp - 0x24], eax
cmp esi, edx
jbe 0x478321
mov edi, edx
mov dword [ebp - 0x1c], edx
mov ebx, edx
mov dword [ebp - 0x38], edx
mov eax, edx
nop dword [eax + eax]
add esi, 0xfffffffe
mov edx, eax
cmp dword [ebp - 8], 0
movzx eax, word [esi]
mov ecx, eax
je 0x4782c0
and eax, 0xfc00
mov edx, edi
cmp eax, 0xdc00
jne 0x478290
movzx ecx, word [esi - 2]
sub esi, 2
mov edx, ebx
mov ebx, dword [ebp - 0x38]
jmp 0x478293
mov ebx, dword [ebp - 0x1c]
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4782c0
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, ebx
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4a4988]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x24]
movzx eax, word [eax*2 + 0x4a8d88]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x4a1e0a]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x4a0eb0], eax
je 0x47831b
mov eax, dword [ebp - 4]
mov dword [ebp - 0x24], edi
mov dword [eax + 0x38], esi
mov edx, dword [eax + 4]
mov edi, edx
mov dword [ebp - 0x1c], edx
mov ebx, edx
mov dword [ebp - 0x38], edx
mov eax, edx
cmp esi, edx
ja 0x478260
mov ebx, dword [ebp - 4]
mov edi, dword [ebp + 0x20]
cmp dword [ebx + 0x38], edx
jbe 0x47085b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xdc
jmp 0x478951
mov eax, dword [ebp - 4]
cmp ecx, dword [eax + 4]
jbe 0x47085e
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xde
jmp 0x478951
inc dword [edi + 0x88]
mov eax, dword [edi + 0x88]
cmp eax, dword [edi + 0x8c]
ja 0x47863e
mov ebx, dword [ebp - 4]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x4a0d50]
movzx eax, word [edx + 2]
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x47085e
test esi, esi
jne 0x477384
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1d
jmp 0x478951
test esi, esi
jne 0x477446
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1f
jmp 0x478951
mov edi, dword [ebp + 0x20]
test esi, esi
jne 0x47711a
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x17
jmp 0x478951
mov eax, dword [ebp - 0x1c]
test eax, eax
js 0x4783e2
cmp eax, 0xa
ja case.0x476cd4.15
jmp dword [eax*4 + 0x47922c]
cmp dword [ebx + 0x28], 0x16
je 0x4785c4
cmp dword [ebp - 8], 0
jne case.0x477d9c.13
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x21
jmp 0x478951
mov eax, dword [ebp - 4]
mov dword [ebx + 0x24], edi
mov ebx, dword [ebx]
mov edi, dword [ebp + 0x20]
mov byte [eax + 0x30], 0x16
jmp 0x478951
xor eax, eax
jmp 0x47873d
mov eax, esi
cmp eax, 0x7e
je 0x478434
mov ecx, 0x80
cmp ax, cx
je 0x478434
xor eax, eax
jmp 0x478439
mov eax, 1
mov dword [ebx + 0x20], eax
mov eax, dword [ebx]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
movzx edx, word [eax]
movzx eax, word [ecx]
or edx, 0x30000
mov dword [ebp + 8], edx
movzx eax, byte [eax + 0x4a0d50]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 5
jmp 0x478951
mov eax, dword [ebp - 4]
cmp cl, 0x7b
jne 0x478482
mov byte [edi + 0x30], 6
lea ebx, [edx + 4]
mov edi, dword [ebp + 0x20]
jmp 0x478954
mov byte [edi + 0x30], 7
mov edi, dword [ebp + 0x20]
jmp 0x478954
mov byte [eax + 0x30], 1
jmp 0x478951
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x4786fb
mov eax, dword [ebp - 0x54]
add eax, eax
add dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x14
jmp 0x478951
cmp edx, dword [edi + 0x5c]
jae case.0x476cd4.13
cmp word [edx], 0xa
jne case.0x476cd4.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x21
jmp 0x478951
cmp word [edi + 0x48], 0
je case.0x476cd4.13
cmp edx, dword [edi + 0x5c]
jb case.0x476cd4.13
cmp dword [edi + 0x90], 0
jne case.0x476cd4.13
cmp dword [edi + 0x94], 2
jne case.0x476cd4.13
movzx eax, word [edi + 0x98]
cmp ecx, eax
jne case.0x476cd4.13
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x21
jmp 0x478951
mov ecx, dword [ebp - 4]
lea eax, [ebx + edi*2]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 4]
mov edi, dword [ebp + 0x20]
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x478951
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd0
jmp 0x478951
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x478589
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x478589
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [ebp - 8]
push dword [edi + 0x5c]
push dword [edi + 0x58]
push esi
push ecx
call fcn.00485e00
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je 0x4785c4
cmp eax, dword [edi + 0x5c]
jb 0x4785c4
cmp eax, dword [edi + 0x64]
jbe 0x4785c4
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xda
jmp 0x478951
cmp edx, dword [edi + 0x5c]
jae case.0x477d9c.13
cmp word [edx], 0xa
jne case.0x477d9c.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xdb
jmp 0x478951
cmp word [edi + 0x48], 0
je case.0x477d9c.13
cmp edx, dword [edi + 0x5c]
jb case.0x477d9c.13
cmp dword [edi + 0x90], 0
jne case.0x477d9c.13
cmp dword [edi + 0x94], 2
jne case.0x477d9c.13
movzx eax, word [edi + 0x98]
cmp ecx, eax
jne case.0x477d9c.13
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x47196b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xdb
jmp 0x478951
mov esi, dword [ebp - 4]
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x4a0d50]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x11
jmp 0x47894c
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx]
add ebx, 2
mov dword [ecx + 4], ebx
mov byte [ecx + 0x30], 9
jmp 0x478951
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
add ecx, 2
mov dword [edx + 4], ecx
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx + 4], ecx
cmp word [ecx], 0x78
je 0x478680
lea ebx, [ecx + 4]
mov byte [edx + 0x30], 0xa
jmp 0x478951
mov ebx, dword [ebp - 4]
mov edx, 0x87
mov dword [ebx + 0x28], 1
mov eax, dword [ebx]
add eax, 2
mov dword [ebx], eax
movzx ecx, word [eax]
cmp cx, dx
je 0x4786e3
mov edx, 0x8c
cmp cx, dx
jne 0x4786d0
jmp 0x4786e3
mov ebx, dword [ebp - 4]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x4786ec
mov ebx, dword [ebp - 4]
mov dword [ebx + 0x28], 0
mov eax, dword [ebx]
movzx eax, word [eax + 4]
or eax, 0x10000
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], 0
mov eax, dword [ebx]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x20]
mov dword [ebp + 8], edx
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 8
jmp 0x478951
mov ebx, dword [ebp - 4]
mov eax, dword [ebx]
movzx eax, word [eax + 4]
or eax, 0x10000
jmp 0x47873d
mov ebx, dword [ebp - 4]
movzx eax, dl
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov ecx, dword [ebx]
movzx eax, word [ecx]
mov edx, dword [ebx + 0x20]
mov dword [ebp + 8], edx
movzx eax, byte [eax + 0x4a0d50]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 2
jmp 0x478951
mov edx, dword [ebp - 4]
mov ecx, dword [edi + 0x54]
mov eax, dword [edx]
movzx eax, word [eax + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x478778
xor edi, edi
jmp 0x47877c
movzx edi, word [ebx + 4]
cmp dword [edx + 0x44], 0xffffffff
je 0x4787c0
mov eax, dword [edx + 0x4c]
cmp eax, 0xffffffff
je 0x4787c0
mov ecx, dword [ebp + 0x20]
mov edx, edi
or edx, 0x40000
mov esi, dword [ecx + 0x10]
add eax, esi
mov ecx, eax
sub ecx, dword [ebp + 0x1c]
cmp dword [eax + 0x1c], edx
je 0x4787b1
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x478798
mov edx, dword [ebp - 4]
jmp 0x4787c0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x478abb
mov dword [edx + 4], ebx
or edi, 0x40000
mov ebx, dword [ebp - 4]
mov dword [ebx + 0x20], edi
mov edi, dword [ebp + 0x20]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x20]
mov dword [ebp + 8], edx
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 0xb
jmp 0x478951
mov ebx, dword [ebp - 4]
movzx eax, dl
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov ecx, dword [ebx]
movzx eax, word [ecx]
mov edx, dword [ebx + 0x20]
mov dword [ebp + 8], edx
movzx eax, byte [eax + 0x4a0d50]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 3
jmp 0x478951
mov ebx, dword [ebp - 4]
movzx eax, dl
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov ecx, dword [ebx]
movzx eax, word [ecx]
mov edx, dword [ebx + 0x20]
mov dword [ebp + 8], edx
movzx eax, byte [eax + 0x4a0d50]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 4
jmp 0x478951
mov esi, dword [ebp - 4]
mov eax, dword [esi]
add eax, 4
mov dword [edi + 0x70], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x4a0d50]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0xc
jmp 0x47894c
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
mov byte [edx + 0x30], 0xd
lea ebx, [ecx + eax*2]
jmp 0x478951
mov esi, dword [ebp - 4]
mov eax, dword [esi]
add eax, 4
mov dword [edi + 0x70], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x4a0d50]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x24
jmp 0x47894c
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
mov byte [edx + 0x30], 0xe
lea ebx, [ecx + eax*2]
jmp 0x478951
mov esi, dword [ebp - 4]
mov eax, dword [esi]
add eax, 4
mov dword [edi + 0x70], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x4a0d50]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0xf
jmp 0x47894c
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
mov byte [edx + 0x30], 0x10
lea ebx, [ecx + eax*2]
jmp 0x478951
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x4a0d50]
mov byte [edx + 0x30], 0x12
lea ebx, [ecx + eax*2]
jmp 0x478951
mov esi, dword [ebp - 4]
mov eax, dword [esi]
add eax, 4
mov dword [edi + 0x70], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x4a0d50]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x13
add ecx, eax
lea ebx, [edx + ecx*2]
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 0x1c]
add esi, eax
mov dword [ebp - 0x10], esi
cmp esi, dword [edi + 0x14]
jb 0x4789fa
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x1c]
lea esi, [ecx + ecx]
mov eax, esi
shr eax, 0xa
cmp eax, edx
jbe 0x47898d
mov esi, edx
xor edx, edx
shl esi, 0xa
mov eax, esi
div dword [ebp + 0x1c]
sub esi, edx
cmp ecx, esi
jae 0x478ac7
push dword [edi + 8]
mov eax, dword [edi]
push esi
call eax
mov edi, eax
add esp, 8
test edi, edi
je 0x478ad3
mov eax, dword [ebp + 0x20]
push dword [eax + 0xc]
push dword [eax + 0x10]
push edi
call fcn.0048b490
mov eax, dword [ebp + 0x20]
add esp, 0xc
mov edx, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov eax, edi
sub eax, ecx
add edx, eax
mov eax, dword [ebp + 0x1c]
add eax, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x20]
cmp ecx, dword [eax + 0x18]
je 0x4789e5
push dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
call eax
mov eax, dword [ebp + 0x20]
add esp, 8
mov dword [eax + 0x10], edi
lea eax, [edi + esi]
mov edi, dword [ebp + 0x20]
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 4]
mov dword [edi + 0xc], esi
mov esi, dword [ebp - 0x10]
push dword [ebp - 0x3c]
add eax, 0x38
push eax
lea eax, [esi + 0x38]
push eax
call fcn.0048b490
mov eax, dword [ebp - 4]
add esp, 0xc
mov edx, dword [ebp + 8]
mov dword [ebp - 4], esi
mov eax, dword [eax + 0x18]
inc eax
mov dword [esi + 0x18], eax
mov eax, esi
mov esi, dword [ebp - 8]
jmp 0x4707f7
mov eax, edi
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov dword [eax + 0x60], esi
mov eax, dword [ebx + 0x50]
mov dword [ecx + 0x44], eax
mov eax, dword [ebx + 0x40]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x68]
jbe 0x478a49
mov dword [ecx + 0x68], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x58]
mov edi, dword [ebp + 0x10]
movzx esi, word [ebp + 0x14]
sar eax, 1
mov dword [edi], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ecx + 0x58]
sar eax, 1
mov dword [edi + 4], eax
movzx eax, word [ebp + 0x18]
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.0048b490
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x478aa6
mov dword [edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x478a94
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffcc
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffc1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffd0
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffd4
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffd1
pop ebx
mov esp, ebp
pop ebp
ret