Function at 0x450600
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 0x4506e8
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 0x4506e3
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 0x4589ab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
cmp eax, dword [edi + 0x24]
jb 0x450721
pop edi
pop esi
mov eax, 0xffffffcb
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x20]
jmp 0x45071e
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.0x456b94.15
movzx eax, byte [eax + 0x458b14]
jmp dword [eax*4 + 0x4589b8]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x44], 0xffffffff
jne 0x4507c2
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.0x456b94.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 0x450789
mov eax, dword [edx + 0x4c]
jmp 0x450762
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 0x4507bf
mov dword [eax + 0x50], esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
jmp 0x45071b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x68]
jbe 0x4507e9
mov dword [edi + 0x68], eax
mov eax, dword [ebp - 4]
mov esi, 0xfffffc19
mov dword [ebp - 0x20], eax
jmp 0x4520ff
mov eax, dword [ebp - 4]
cmp dword [eax + 0x44], 0xffffffff
je 0x45084b
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x456b94.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 0x45082e
mov eax, dword [ecx + 0x4c]
jmp 0x450805
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 0x450721
mov esi, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
cmp esi, edi
jne 0x45087a
mov ebx, dword [ebp + 0x20]
mov eax, dword [ebx + 0x80]
test al, 4
jne 0x450873
test al, 8
je 0x45087a
mov ecx, dword [ebx + 0x40]
mov eax, dword [ebx + 0x58]
lea eax, [eax + ecx*2]
cmp edi, eax
jne 0x45087a
mov edi, ebx
jmp case.0x450743.160
mov eax, dword [ebp + 0x20]
cmp esi, dword [eax + 0x5c]
jae 0x4588e9
mov edi, dword [ebp + 0x20]
mov eax, dword [eax + 0x84]
or eax, dword [edi + 0x80]
test eax, 0x20000000
je 0x4588e7
test dl, dl
je case.0x450743.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 0x4508eb
mov eax, dword [ebp - 4]
mov edx, dword [edi + 0x5c]
mov ecx, dword [eax + 0x38]
cmp ecx, edx
jae 0x45092c
push dword [ebp - 8]
lea eax, [edi + 0x94]
push eax
push edx
push esi
push ecx
call fcn.00465ea0
add esp, 0x14
test eax, eax
je 0x450929
jmp case.0x450743.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 0x450929
mov ax, word [edx]
cmp ax, word [edi + 0x98]
jne 0x450929
cmp esi, 1
je case.0x450743.160
mov ax, word [edx + 2]
cmp ax, word [edi + 0x9a]
je case.0x450743.160
mov eax, dword [ebp - 4]
cmp word [edi + 0x48], 0
je case.0x450743.13
mov ecx, dword [eax + 0x38]
mov eax, dword [edi + 0x5c]
sub eax, 2
cmp ecx, eax
jne case.0x450743.13
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x90], 0
jne 0x450978
cmp dword [eax + 0x94], 2
jne 0x450978
mov edi, dword [ebp + 0x20]
mov ax, word [ecx]
cmp ax, word [edi + 0x98]
jne case.0x450743.13
mov eax, edi
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x45182b
mov edi, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [edi + 0x5c]
jb 0x4509b0
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x4509a6
cmp ecx, dword [eax + 0x64]
jbe 0x4509a6
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x45182b
mov edi, dword [ebp + 0x20]
xor esi, esi
jmp 0x4520fc
mov esi, dword [ebp - 8]
add ecx, 2
mov dword [eax + 0x38], ecx
test esi, esi
je 0x450a31
cmp ecx, dword [edi + 0x5c]
jae 0x450a31
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x450a2e
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x450721
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x450a25
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jbe case.0x450743.160
mov eax, dword [ebp + 0x20]
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x45182b
mov edi, eax
jmp case.0x450743.160
mov ecx, dword [ebp - 4]
add eax, 2
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x450721
mov eax, dword [ebp - 4]
test esi, esi
je 0x450ae2
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 0x450a70
inc dword [eax + 0xc]
mov ecx, dword [eax + 0xc]
jmp 0x450a76
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 0x450aa4
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x4509a6
cmp edx, esi
jb 0x4509a6
cmp edx, dword [eax + 0x64]
jmp 0x450992
mov esi, dword [ebp - 8]
test ecx, ecx
je 0x450721
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.0x450743.160
add dword [eax + 0xc], 0xffffffff
jne 0x450ab2
mov esi, dword [ebp - 8]
jmp 0x450721
mov esi, dword [eax + 0x38]
mov eax, dword [edi + 0x5c]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jge 0x450b08
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x4509a6
cmp esi, dword [eax + 0x64]
jmp 0x450992
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 0x450dd8
xor esi, esi
jmp 0x4520ff
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x38]
cmp esi, dword [edi + 0x5c]
jae 0x450af2
cmp dword [ebp - 8], 0
je 0x450c47
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 0x450b83
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 0x450b86
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
movzx edx, word [ecx]
cmp esi, 0x80
jae 0x450bc4
mov eax, dword [edi + 0x34]
cmp edx, 0xff
ja 0x450ba3
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov eax, dword [ebp - 4]
je 0x450bb5
xor esi, esi
jmp 0x4520ff
add dword [eax], 2
add dword [eax + 0x38], 2
mov esi, dword [ebp - 8]
jmp 0x450721
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x450bfa
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 0x455e0b
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x4839e8]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x480e6c]
add eax, esi
cmp edx, eax
je 0x455e0b
jmp case.0x450743.160
mov eax, dword [eax]
mov ecx, 0xff
movzx eax, word [eax + 2]
cmp ax, cx
ja 0x450c62
mov ecx, eax
mov eax, dword [edi + 0x34]
movzx edx, byte [eax + ecx]
jmp 0x450c64
mov edx, eax
movzx eax, word [esi]
mov ecx, eax
cmp ax, word [ebp - 0x40]
ja 0x450c76
mov eax, dword [edi + 0x34]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne case.0x450743.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 0x450721
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
cmp edx, dword [edi + 0x5c]
jb 0x450cb5
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x4509a6
cmp edx, dword [eax + 0x64]
jmp 0x450992
test esi, esi
je 0x450d9d
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 0x450cfc
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 0x450d3e
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 0x450d4c
xor esi, esi
jmp 0x4520ff
cmp byte [eax + 0x31], 0x20
jne 0x455e0b
cmp edx, 0x7f
jbe 0x450d86
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x4839e8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x480e6c]
jmp 0x450d8d
mov eax, dword [edi + 0x38]
movzx edx, byte [eax + edx]
cmp edx, esi
mov esi, dword [ebp - 8]
jne 0x450721
jmp case.0x450743.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.0x450743.160
mov eax, ebx
cmp byte [eax + 0x31], 0x20
jne 0x450dd8
cmp ecx, 0xff
ja 0x450dd0
mov eax, dword [edi + 0x38]
movzx ecx, byte [eax + ecx]
mov eax, ebx
cmp ecx, esi
je case.0x450743.160
add dword [eax], 4
jmp 0x45071b
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 0x450ecd
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 0x450eca
mov dword [ebp - 0xc], 1
jmp 0x450e03
mov dword [ebp - 0xc], 0
jmp 0x450e03
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 0x450eca
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 0x450eca
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 0x450eca
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 + 0x47f700]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + 0x47f72c]
mov dword [ecx + 0x24], eax
mov eax, dword [edx*4 + 0x47f758]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
test esi, esi
je 0x45126c
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 0x450f1f
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 0x450f22
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 0x451267
cmp byte [eax + 0x31], 0x2e
jb 0x450f80
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x4839e8]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x480e6c]
add ecx, edx
cmp ecx, edx
je 0x450f80
mov eax, dword [ebp - 4]
add eax, 0x32
push eax
push ecx
call fcn.00466030
add esp, 8
jmp 0x450f82
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 0x4510bd
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x38]
jmp 0x450fa9
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 0x45102a
mov eax, dword [ebp - 4]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x450fe1
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x450fea
add ecx, 4
add edx, 4
sub esi, 4
jae 0x450fd0
cmp esi, 0xfffffffc
je 0x45109d
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x451027
cmp esi, 0xfffffffd
je 0x45109d
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x451027
cmp esi, 0xfffffffe
je 0x45109d
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x451027
cmp esi, 0xffffffff
je 0x45109d
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45109d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4510f6
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x4510f6
mov edx, dword [ebp - 4]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x451067
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45106c
add ecx, 4
add edx, 4
sub esi, 4
jae 0x451056
cmp esi, 0xfffffffc
je 0x45109d
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4510f6
cmp esi, 0xfffffffd
je 0x45109d
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4510f6
cmp esi, 0xfffffffe
je 0x45109d
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4510f6
cmp esi, 0xffffffff
je 0x45109d
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4510f6
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 0x450fa6
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 0x450721
cmp dword [ebp - 0xc], 0
je 0x4583ec
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 0x45124c
mov ebx, dword [eax + 0x38]
jmp 0x451118
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x4509a6
cmp ebx, dword [eax + 0x5c]
jb 0x4509a6
cmp ebx, dword [eax + 0x64]
jmp 0x450992
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 0x45119a
mov eax, dword [ebp - 4]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x451151
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45115a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x451140
cmp esi, 0xfffffffc
je 0x451209
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x451197
cmp esi, 0xfffffffd
je 0x451209
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x451197
cmp esi, 0xfffffffe
je 0x451209
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x451197
cmp esi, 0xffffffff
je 0x451209
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x451209
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x451223
lea edi, [eax + eax]
mov eax, ecx
sub eax, edi
cmp ebx, eax
ja 0x451223
mov edx, dword [ebp - 4]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4511d7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4511dc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4511c6
cmp esi, 0xfffffffc
je 0x451209
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x451223
cmp esi, 0xfffffffd
je 0x451209
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x451223
cmp esi, 0xfffffffe
je 0x451209
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x451223
cmp esi, 0xffffffff
je 0x451209
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x451223
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 0x451115
jmp 0x45124c
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x451249
cmp ebx, dword [eax + 0x5c]
jb 0x451249
cmp ebx, dword [eax + 0x64]
jbe 0x451249
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x45182b
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 0x450721
mov ecx, dword [eax + 0x38]
jmp 0x4571b4
mov dword [eax + 0x28], edx
jmp 0x45127a
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 0x4513ba
test esi, esi
je 0x4512cd
mov edx, dword [eax + 0x28]
cmp edx, 0x7f
jbe 0x4512cd
mov eax, edx
test eax, eax
jns 0x451299
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4839e8]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4512b5
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x480e6c]
add ecx, edx
jmp 0x4512df
mov ecx, dword [eax + 0x28]
cmp ecx, 0xff
ja 0x4512df
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 0x451334
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 0x450988
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x451320
cmp dword [ebx + 0x2c], eax
jne 0x4509a6
mov eax, dword [ebp - 4]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x451300
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp - 4]
cmp eax, dword [ebx + 0x24]
je 0x45071e
cmp dword [ebp - 0xc], 0
je 0x45693b
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 0x4513a2
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x451381
movzx ecx, word [eax]
cmp dword [ebx + 0x28], ecx
je 0x451373
cmp dword [ebx + 0x2c], ecx
jne 0x4513a2
add eax, 2
inc edx
mov dword [ebx + 0x38], eax
cmp edx, dword [ebx + 0x24]
jb 0x451361
jmp 0x4513a2
cmp word [edi + 0x48], 0
je 0x4513a2
cmp eax, dword [edi + 0x64]
jbe 0x4513a2
mov eax, dword [ebp + 0x20]
mov dword [eax + 0x2c], 1
cmp word [eax + 0x48], 1
ja 0x45182b
cmp dword [ebp - 0xc], 2
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x1c]
je 0x450721
mov ebx, dword [ebp - 4]
jmp 0x456958
mov eax, dword [eax + 0x20]
mov esi, 1
cmp eax, esi
jb 0x4513fa
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [ebp + 0x20]
cmp edx, dword [eax + 0x5c]
jae 0x450ca2
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 0x451450
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4513d0
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x45071e
mov esi, dword [ebp - 0xc]
test esi, esi
je 0x4569b9
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 0x451478
mov ecx, dword [eax + 0x38]
nop dword [eax + eax]
cmp ecx, dword [edi + 0x5c]
jae 0x45145a
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x45147b
mov eax, ebx
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, dword [eax + 0x24]
jb 0x451430
jmp 0x451478
mov edi, dword [ebp + 0x20]
xor esi, esi
jmp 0x4520ff
cmp word [edi + 0x48], 0
je 0x451478
cmp ecx, dword [edi + 0x64]
jbe 0x451478
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
mov ebx, dword [ebp - 4]
cmp esi, 2
mov esi, dword [ebp - 8]
je 0x45071e
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x45071b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1c
jmp 0x458811
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 0x4515cc
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 0x4515cc
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 0x4515cc
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 0x4515cc
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 0x4515cc
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 0x4515cc
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 0x4515cc
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 + 0x47f700]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + 0x47f72c]
mov dword [ecx + 0x24], eax
mov eax, dword [edx*4 + 0x47f758]
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 0x45161b
mov ecx, dword [eax + 0x28]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x451618
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 0x4518ad
test esi, esi
je 0x45166e
mov edx, dword [eax + 0x28]
cmp edx, 0x7f
jbe 0x45166e
mov eax, edx
test eax, eax
jns 0x45163a
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x4839e8]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x451656
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x480e6c]
add ecx, edx
jmp 0x451680
mov ecx, dword [eax + 0x28]
cmp ecx, 0xff
ja 0x451680
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 0x451719
mov esi, 1
cmp eax, esi
jb 0x451714
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
jmp 0x4516b3
mov eax, dword [ebp - 4]
cmp edx, dword [edi + 0x5c]
jae 0x452a5c
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4516f7
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 0x4516fa
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], ecx
je case.0x450743.160
cmp dword [eax + 0x2c], ecx
je case.0x450743.160
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4516b0
mov esi, dword [ebp - 8]
jmp 0x451761
mov edx, 1
cmp eax, edx
jb 0x451761
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
nop dword [eax + eax]
cmp ecx, dword [edi + 0x5c]
jae 0x453cd6
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.0x450743.160
cmp dword [ebx + 0x2c], eax
je case.0x450743.160
mov eax, ebx
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x451730
mov ebx, dword [ebp - 4]
cmp eax, dword [ebx + 0x24]
je 0x45071e
cmp dword [ebp - 0xc], 0
je 0x458246
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 0x45183c
cmp edi, eax
jae 0x451837
mov eax, ebx
mov edx, dword [eax + 0x38]
nop
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x451814
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4517dd
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 0x4517f6
cmp dword [eax + 0x2c], ecx
je 0x4517f6
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4517a0
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x450721
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
jmp 0x45727f
mov edi, eax
cmp word [edi + 0x48], 0
je 0x4517f9
cmp edx, dword [edi + 0x64]
jbe 0x4517f9
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
jbe 0x4517f9
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x20]
jmp 0x4517fc
cmp edi, eax
jae 0x451871
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 0x45188f
movzx ecx, word [eax]
cmp dword [edx + 0x28], ecx
je 0x451871
cmp dword [edx + 0x2c], ecx
je 0x451871
add eax, 2
inc edi
mov dword [edx + 0x38], eax
cmp edi, dword [edx + 0x24]
jb 0x451850
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x450721
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
mov eax, dword [eax + 0x38]
jmp 0x456a4a
mov edi, ecx
cmp word [edi + 0x48], 0
je 0x451874
cmp eax, dword [edi + 0x64]
jbe 0x451874
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
jmp 0x451874
mov eax, dword [eax + 0x20]
test esi, esi
mov esi, 1
je 0x45192d
cmp eax, esi
jb 0x451968
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
jmp 0x4518d3
mov eax, dword [ebp - 4]
cmp edx, dword [edi + 0x5c]
jae 0x452a5c
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x451917
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 0x45191a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], ecx
je case.0x450743.160
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x4518d0
jmp 0x451968
cmp eax, 1
jb 0x451968
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
nop dword [eax + eax]
cmp edx, dword [edi + 0x5c]
jae 0x452a5c
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 0x450b28
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x451940
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x45071e
cmp dword [ebp - 0xc], 0
je 0x45825c
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 0x451a41
cmp edi, eax
jae 0x451a3c
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 0x451a1f
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4519ed
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 0x451a01
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4519b0
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x450721
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
jmp 0x457341
mov edi, eax
cmp word [edi + 0x48], 0
je 0x451a04
cmp edx, dword [edi + 0x64]
jbe 0x451a04
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x45182b
jmp 0x451a04
mov edi, dword [ebp + 0x20]
jmp 0x451a07
cmp edi, eax
jae 0x451a71
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 0x451a8f
mov ebx, dword [ebp - 4]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x451a71
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, dword [eax + 0x24]
jb 0x451a50
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
mov ebx, dword [ebp + 0x1c]
je 0x450721
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 4]
mov eax, dword [eax + 0x38]
jmp 0x456ac8
mov edi, eax
cmp word [edi + 0x48], 0
je 0x451a74
cmp ecx, dword [edi + 0x64]
jbe 0x451a74
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
jmp 0x451a74
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.0x451adc
movzx eax, byte [eax + 0x458bc4]
jmp dword [eax*4 + 0x458bbc]
lea eax, [edx + 2]
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipDrawImageRect]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipFillEllipse]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 4]
mov edx, dword [ecx*4 + sym.imp.gdiplus.dll_GdipDrawArc]
mov dword [ebp - 0xc], edx
mov eax, dword [eax + 0x20]
jmp 0x451b69
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_GdipDrawArc]
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 0x451b69
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 0x451c49
cmp eax, ebx
jb 0x451ca7
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov edi, dword [eax + 0x38]
cmp edi, dword [ecx + 0x5c]
jae 0x451c17
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x451bcb
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 0x451bce
mov eax, dword [ebp - 4]
cmp esi, 0xff
jbe 0x451be2
cmp byte [eax + 0x31], 0x6e
je 0x4509a6
jmp 0x451c03
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 0x451450
mov ecx, dword [ebp + 0x20]
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x451ca7
mov eax, dword [ebp - 4]
jmp 0x451b87
cmp word [ecx + 0x48], 0
je 0x451c41
cmp edi, dword [ecx + 0x64]
mov edi, dword [ebp + 0x20]
jbe case.0x450743.160
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
jmp case.0x450743.160
mov edi, dword [ebp + 0x20]
jmp case.0x450743.160
cmp eax, 1
jb 0x451ca7
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov edi, dword [eax + 0x38]
cmp edi, dword [ecx + 0x5c]
jae 0x451c17
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x451c79
cmp byte [eax + 0x31], 0x6e
je 0x4509a6
jmp 0x451c9a
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 0x451450
mov ecx, dword [ebp + 0x20]
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x451ca7
mov eax, dword [ebp - 4]
jmp 0x451c57
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x450711
cmp dword [ebp - 0xc], 0
je 0x458272
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 0x451db3
cmp ecx, eax
jae 0x451d8e
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 0x451d71
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x451d2d
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 0x451d40
cmp byte [eax + 0x31], 0x6e
je 0x451d6c
jmp 0x451d5d
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 0x451d6c
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 0x451cf0
mov edi, dword [ebp + 0x20]
jmp 0x451d95
cmp word [eax + 0x48], 0
je 0x451d93
cmp edi, dword [eax + 0x64]
mov edi, eax
jbe 0x451d95
mov dword [edi + 0x2c], ebx
cmp word [edi + 0x48], bx
ja 0x45182b
jmp 0x451d95
mov edi, dword [ebp + 0x20]
jmp 0x451d98
mov edi, eax
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
je 0x45071e
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xc9
jmp 0x458811
cmp ecx, eax
jae 0x451e5b
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x20]
mov edi, dword [eax + 0x38]
cmp edi, dword [edx + 0x5c]
jae 0x451e38
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x451e07
cmp byte [eax + 0x31], 0x6e
jne 0x451e27
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp - 8]
cmp dword [ebp - 0xc], 2
je 0x45071e
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x18
jmp 0x458811
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 0x451dda
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 0x451dc4
jmp 0x451dda
cmp word [edx + 0x48], 0
je 0x451dda
cmp edi, dword [edx + 0x64]
mov edi, dword [ebp + 0x20]
jbe 0x451ddd
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
jmp 0x451ddd
mov edi, dword [ebp + 0x20]
jmp 0x451de0
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.0x451e94
movzx eax, byte [eax + 0x458bd8]
jmp dword [eax*4 + 0x458bd0]
lea eax, [ecx + 2]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipDrawImageRect]
mov dword [ecx + 0x20], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipFillEllipse]
mov edx, dword [edx*4 + sym.imp.gdiplus.dll_GdipDrawArc]
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [ebp - 0xc], edx
mov eax, dword [eax + 0x20]
jmp 0x451f20
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_GdipDrawArc]
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 0x451f20
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 0x451fa6
nop dword [eax]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x452092
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x451f84
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x451f81
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.00466780
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 4]
je 0x450b28
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x451f30
mov ebx, dword [ebp - 4]
cmp eax, dword [ebx + 0x24]
je 0x45071b
cmp dword [ebp - 0xc], 0
je 0x456f00
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 0x45204c
mov edx, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
jmp 0x451fe3
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [ecx + 0x5c]
jae 0x45206a
movzx ecx, word [edx]
test ebx, ebx
je 0x452027
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452024
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.00466780
add esp, 0xc
test eax, eax
je 0x45204c
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 0x451fe0
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
je 0x45071b
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x65
jmp 0x458811
mov edi, ecx
cmp word [edi + 0x48], 0
je 0x45204f
cmp edx, dword [edi + 0x64]
jbe 0x45204f
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x45182b
jmp 0x45204f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4520a1
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x4520e1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4520e1
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 0x4521b0
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je 0x4521b0
xor esi, esi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp dword [eax + 0x18], 0
je 0x458972
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.0x456b94.15
movzx eax, byte [eax + 0x458cd0]
jmp dword [eax*4 + 0x458be4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x452157
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x452197
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452197
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.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je case.0x450743.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x45071e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4521d9
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x452219
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452219
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 0x4521b0
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
jmp 0x4520f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x45224b
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x45228b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45228b
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.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
je case.0x450743.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x45071e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4522cd
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x45230d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45230d
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 0x4521b0
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
jmp 0x4520f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x452343
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x452383
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452383
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.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je case.0x450743.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x45071e
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x38]
cmp esi, dword [edi + 0x5c]
jb 0x4523c5
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp esi, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 8], 0
mov edx, esi
mov dword [eax + 0x38], esi
je 0x452406
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452406
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 0x45246e
je 0x452421
cmp ecx, 0xa
je 0x452499
jbe case.0x450743.160
cmp ecx, 0xc
jmp 0x452488
cmp edx, dword [edi + 0x5c]
jb 0x452452
cmp word [edi + 0x48], 0
je 0x452499
cmp edx, dword [edi + 0x64]
jbe 0x452499
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 8]
add dword [eax], 2
jmp 0x450721
cmp word [edx], 0xa
jne 0x452499
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 0x450721
cmp ecx, 0x85
je 0x45248e
cmp ecx, 0x2027
jbe case.0x450743.160
cmp ecx, 0x2029
ja case.0x450743.160
cmp word [edi + 0x4a], 2
je case.0x450743.160
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 8]
add dword [eax], 2
jmp 0x450721
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4524c5
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x452508
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452505
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 0x452552
je case.0x450743.160
cmp ecx, 0xa0
ja 0x45253e
je case.0x450743.160
cmp ecx, 9
je case.0x450743.160
cmp ecx, 0x20
je case.0x450743.160
add dword [eax], 2
jmp 0x45071e
cmp ecx, 0x1680
je case.0x450743.160
add dword [eax], 2
jmp 0x45071e
cmp ecx, 0x205f
ja 0x45258c
je case.0x450743.160
cmp ecx, 0x2000
jb 0x4521b3
cmp ecx, 0x200a
jbe case.0x450743.160
cmp ecx, 0x202f
je case.0x450743.160
add dword [eax], 2
jmp 0x45071e
cmp ecx, 0x3000
je case.0x450743.160
add dword [eax], 2
jmp 0x45071e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4525be
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x452601
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4525fe
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 0x452633
je 0x4521b3
cmp ecx, 0xa0
ja 0x45262b
je 0x4521b3
cmp ecx, 9
je 0x4521b3
cmp ecx, 0x20
jmp 0x452667
cmp ecx, 0x1680
jmp 0x452667
cmp ecx, 0x205f
ja 0x452661
je 0x4521b3
cmp ecx, 0x2000
jb case.0x450743.160
cmp ecx, 0x200a
jbe 0x4521b3
cmp ecx, 0x202f
jmp 0x452667
cmp ecx, 0x3000
je 0x4521b3
jmp case.0x450743.160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x452690
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x4526d0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4526d0
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 0x4526fb
je case.0x450743.160
cmp ecx, 0xa
jb 0x4521b0
cmp ecx, 0xd
jbe case.0x450743.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x45071e
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x4521b0
jmp case.0x450743.160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x45272d
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
test esi, esi
je 0x45276d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45276d
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 0x452792
je 0x4521b0
cmp ecx, 0xa
jb case.0x450743.160
cmp ecx, 0xd
jbe 0x4521b0
jmp case.0x450743.160
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x450743.160
mov eax, dword [ebp - 4]
add dword [eax], 2
jmp 0x45071e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4527ca
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx edx, word [eax]
lea ecx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], ecx
test esi, esi
je 0x45280a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45280a
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 + 0x4839e8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
movzx eax, word [esi + 2]
cmp eax, 0xa
ja case.0x456b94.15
jmp dword [eax*4 + 0x458db0]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0xf
je case.0x450743.160
add dword [eax], 6
jmp 0x45071b
mov al, byte [ecx*4 + 0x480e69]
cmp al, 9
je 0x452871
cmp al, 5
je 0x452871
cmp al, 8
je 0x452871
xor ecx, ecx
jmp 0x452876
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 0x452852
xor esi, esi
jmp 0x4520ff
movzx ecx, byte [ecx*4 + 0x480e69]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x47ff50]
mov ecx, dword [ebp - 4]
setne dl
xor eax, eax
cmp byte [ecx + 0x31], 0x10
sete al
cmp edx, eax
mov eax, ecx
jne 0x452852
xor esi, esi
jmp 0x4520ff
movzx eax, byte [ecx*4 + 0x480e69]
mov ebx, dword [ebp - 4]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor eax, eax
cmp byte [ebx + 0x31], 0x10
jmp 0x45287f
movzx eax, byte [ecx*4 + 0x480e68]
jmp 0x4528c9
movzx eax, byte [ecx*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x452871
cmp eax, 3
je 0x452871
xor ecx, ecx
jmp 0x452876
cmp edx, 0x180e
ja 0x452942
je case.0x45295e.8192
cmp edx, 0x85
ja 0x452932
je case.0x45295e.8192
cmp edx, 9
jb case.0x45295e.8203
cmp edx, 0xd
jbe case.0x45295e.8192
cmp edx, 0x20
jmp 0x452973
cmp edx, 0xa0
je case.0x45295e.8192
cmp edx, 0x1680
jmp 0x452973
cmp edx, 0x202f
ja 0x452965
je case.0x45295e.8192
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x45295e.8203
movzx eax, byte [edx + 0x458de4]
jmp dword [eax*4 + 0x458ddc]
cmp edx, 0x205f
je case.0x45295e.8192
cmp edx, 0x3000
je case.0x45295e.8192
movzx eax, byte [ecx*4 + 0x480e69]
xor ecx, ecx
cmp dword [eax*4 + 0x47ff50], 6
sete cl
jmp 0x452876
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0xf
jmp 0x452884
movzx eax, byte [ecx*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x452871
cmp eax, 3
je 0x452871
cmp edx, 0x5f
je 0x452871
xor ecx, ecx
jmp 0x452876
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x480ab0]
lea eax, [eax*4 + 0x480ab0]
cmp edx, ecx
jb 0x4529ef
lea eax, [eax + 4]
cmp edx, ecx
je 0x4529fb
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4529e2
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0x10
jmp 0x452884
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31], 0x10
je 0x452852
xor esi, esi
jmp 0x4520ff
cmp edx, 0x24
je 0x452871
cmp edx, 0x40
je 0x452871
cmp edx, 0x60
je 0x452871
cmp edx, 0xa0
jb 0x452a3e
cmp edx, 0xd7ff
jbe 0x452871
cmp edx, 0xe000
jae 0x452871
xor ecx, ecx
jmp 0x452876
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
cmp edx, dword [edi + 0x5c]
jb 0x452a6f
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp edx, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [ebp - 8]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x452ab1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452ab1
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.00465cc0
mov ecx, dword [ebp - 4]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp word [edi + 0x48], 0
je 0x452aed
cmp eax, dword [edi + 0x5c]
jb 0x452aed
cmp eax, dword [edi + 0x64]
jbe 0x452aed
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
mov eax, dword [ebp - 4]
mov esi, ebx
add dword [eax], 2
jmp 0x45071e
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 0x452bf6
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 0x452bfb
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 0x452bf6
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 0x452bf6
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 0x452bf6
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 0x452bf6
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_GdipDeleteBrush]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipDeleteFont]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + sym.imp.gdiplus.dll_GdipAlloc]
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 0x452c20
cmp eax, 0xf
je 0x452c20
mov eax, dword [ebp - 4]
or ebx, 0xffffffff
jmp 0x452c36
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 0x452d90
test ebx, ebx
js 0x453416
cmp ebx, 0xa
ja case.0x456b94.15
jmp dword [ebx*4 + 0x458e10]
cmp dword [eax + 0x28], 0xf
je case.0x450743.160
mov ecx, dword [eax + 0x38]
mov esi, 1
mov ebx, dword [ebp - 8]
cmp ecx, dword [edi + 0x5c]
jae 0x452caf
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 0x452ca1
and edx, 0xfc00
cmp edx, 0xd800
jne 0x452ca1
lea ecx, [eax + 2]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], ecx
jmp 0x452ca4
mov eax, dword [ebp - 4]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x452c71
jmp 0x452d8d
cmp word [edi + 0x48], 0
je 0x452ccd
cmp ecx, dword [edi + 0x64]
jbe 0x452ccd
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
mov eax, dword [ebp - 4]
xor esi, esi
mov edx, ebx
jmp 0x452102
mov esi, dword [eax + 0x38]
mov edi, 1
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x452dcc
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x452d2e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452d2e
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 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x480e69]
cmp al, 9
je 0x452d65
cmp al, 5
je 0x452d65
cmp al, 8
je 0x452d65
xor ecx, ecx
jmp 0x452d6a
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 0x451450
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x452ce1
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 0x45071b
cmp dword [ebp - 0xc], 0
je 0x45828b
mov eax, ebx
mov eax, dword [eax + 0x38]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x1c]
test eax, eax
js 0x45497d
cmp eax, 0xa
ja case.0x456b94.15
jmp dword [eax*4 + 0x458e3c]
mov edi, ecx
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp esi, dword [edi + 0x64]
jmp 0x451c24
mov esi, dword [eax + 0x38]
mov edi, 1
nop dword [eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x452dcc
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x452e39
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452e39
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x451450
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x452df0
jmp 0x452d8a
mov esi, dword [eax + 0x38]
mov edi, 1
nop dword [eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x452dcc
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x452eed
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452eed
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x451450
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x452ea0
jmp 0x452d8a
mov esi, dword [eax + 0x38]
mov edi, 1
nop word [eax + eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x452dcc
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x452f9d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x452f9d
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e68]
cmp eax, dword [edx + 0x2c]
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
je 0x451450
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x452f50
jmp 0x452d8a
mov esi, dword [eax + 0x38]
mov edi, 1
nop word [eax + eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x452dcc
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x45304d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45304d
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 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x45308a
cmp eax, 3
je 0x45308a
xor ecx, ecx
jmp 0x45308f
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 0x451450
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x453000
jmp 0x452d8a
mov esi, 1
nop dword [eax]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x452092
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x453110
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x453110
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 0x453113
mov edx, dword [ebp - 4]
cmp ecx, 0x180e
ja 0x453156
je case.0x453172.8192
cmp ecx, 0x85
ja 0x453142
je case.0x453172.8192
cmp ecx, 9
jb case.0x453172.8203
cmp ecx, 0xd
jbe case.0x453172.8192
cmp ecx, 0x20
jmp 0x453187
cmp ecx, 0xa0
je case.0x453172.8192
cmp ecx, 0x1680
jmp 0x453187
cmp ecx, 0x202f
ja 0x453179
je case.0x453172.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x453172.8203
movzx eax, byte [eax + 0x458e70]
jmp dword [eax*4 + 0x458e68]
cmp ecx, 0x205f
je case.0x453172.8192
cmp ecx, 0x3000
je case.0x453172.8192
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
cmp dword [eax*4 + 0x47ff50], 6
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 4]
je 0x450b28
jmp 0x4531e1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
je case.0x450743.160
inc esi
cmp esi, dword [eax + 0x20]
mov eax, dword [ebp - 4]
ja 0x452d90
jmp 0x4530c0
mov esi, dword [eax + 0x38]
mov edi, 1
nop dword [eax + eax]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x5c]
jae 0x452dcc
cmp dword [ebp - 8], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x45324d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45324d
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 + 0x4839e8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x453291
cmp eax, 3
je 0x453291
cmp edx, 0x5f
je 0x453291
xor ecx, ecx
jmp 0x453296
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 0x451450
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x453200
jmp 0x452d8a
mov esi, 1
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x452092
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x453311
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45330e
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 + 0x480ab0]
lea eax, [eax*4 + 0x480ab0]
cmp ecx, edx
jb 0x453333
lea eax, [eax + 4]
cmp ecx, edx
je 0x453352
mov edx, dword [eax]
cmp ecx, edx
jae 0x453326
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
jne 0x450b28
inc esi
cmp esi, dword [eax + 0x20]
mov eax, dword [ebp - 4]
ja 0x452d90
jmp 0x4532c0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
je case.0x450743.160
jmp 0x453340
mov esi, 1
nop word [eax + eax]
mov eax, dword [eax + 0x38]
cmp eax, dword [edi + 0x5c]
jae 0x452092
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov eax, dword [ebp - 4]
mov dword [eax + 0x38], edx
je 0x4533c0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4533c0
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 0x4533c3
mov edx, dword [ebp - 4]
cmp ecx, 0x24
je 0x4533ee
cmp ecx, 0x40
je 0x4533ee
cmp ecx, 0x60
je 0x4533ee
cmp ecx, 0xa0
jb 0x4533e2
cmp ecx, 0xd7ff
jbe 0x4533ee
cmp ecx, 0xe000
jae 0x4533ee
xor ecx, ecx
jmp 0x4533f3
mov ecx, 1
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, dword [ebp - 4]
je 0x450b28
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x453370
jmp 0x452d8d
mov eax, dword [eax + 0x28]
cmp eax, 0x16
jne 0x4534e7
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 0x4534d2
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 0x453480
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x453480
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.00465cc0
mov ecx, dword [ebp - 4]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp word [ebx + 0x48], 0
je 0x4534be
cmp eax, dword [ebx + 0x5c]
jb 0x4534be
cmp eax, dword [ebx + 0x64]
jbe 0x4534be
mov dword [ebx + 0x2c], 1
cmp word [ebx + 0x48], 1
ja 0x45182b
mov eax, dword [ebp - 4]
inc edi
cmp edi, dword [eax + 0x20]
jbe 0x453430
mov edi, ebx
jmp 0x452d8d
mov edi, ebx
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x456b94.15
test esi, esi
je 0x453bd9
jmp dword [eax*4 + 0x458e9c]
jmp dword [eax*4 + 0x458edc]
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp ecx, dword [edi + 0x64]
jmp 0x451c24
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x20]
cmp esi, dword [eax + 0x24]
jae 0x45426f
mov edx, dword [eax + 0x38]
mov ebx, dword [ebp - 8]
mov ecx, 1
cmp edx, dword [edi + 0x5c]
jae 0x454186
test ebx, ebx
je 0x45416b
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 0x45426f
lea edx, [edx + ecx*2]
inc esi
mov dword [eax + 0x38], edx
cmp esi, dword [eax + 0x24]
jb 0x454146
jmp 0x45426f
cmp word [edi + 0x48], 0
je 0x45426f
cmp edx, dword [edi + 0x64]
jbe 0x45426f
mov dword [edi + 0x2c], ecx
cmp word [edi + 0x48], cx
ja 0x45182b
jmp 0x45426f
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x454269
mov edx, dword [eax + 0x38]
nop
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x454287
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x454207
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x454207
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 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x480e69]
cmp al, 9
je 0x45423e
cmp al, 5
je 0x45423e
cmp al, 8
je 0x45423e
xor ecx, ecx
jmp 0x454243
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 0x4546b8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4541c0
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 0x450721
mov ecx, dword [eax + 0x38]
jmp 0x4581fb
mov edi, eax
cmp word [edi + 0x48], 0
je 0x45426c
cmp edx, dword [edi + 0x64]
jbe 0x45426c
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x45182b
jmp 0x45426c
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x454269
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x454287
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x4542f5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4542f5
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4546b8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4542b2
jmp 0x454269
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x454269
mov edx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x454287
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x4543b7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4543b7
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4546b8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x454370
jmp 0x454269
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x454269
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x454287
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x45446b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45446b
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e68]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, ebx
je 0x4546b8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x454424
jmp 0x454269
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x454269
mov edx, dword [eax + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x454287
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x454527
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x454527
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 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x454564
cmp eax, 3
je 0x454564
xor ecx, ecx
jmp 0x454569
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 0x4546b8
lea edx, [edx + esi*2]
inc edi
mov dword [eax + 0x38], edx
cmp edi, dword [eax + 0x24]
jb 0x4544e0
jmp 0x454269
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x20]
cmp ebx, dword [eax + 0x24]
jae 0x45426c
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 0x454287
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x4545f7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4545f7
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 0x45463a
je case.0x45465a.8192
cmp ecx, 0x85
ja 0x454626
je case.0x45465a.8192
cmp ecx, 9
jb case.0x45465a.8203
cmp ecx, 0xd
jbe case.0x45465a.8192
cmp ecx, 0x20
jmp 0x45466f
cmp ecx, 0xa0
je case.0x45465a.8192
cmp ecx, 0x1680
jmp 0x45466f
cmp ecx, 0x202f
ja 0x454661
je case.0x45465a.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x45465a.8203
movzx eax, byte [eax + 0x458f24]
jmp dword [eax*4 + 0x458f1c]
cmp ecx, 0x205f
je case.0x45465a.8192
cmp ecx, 0x3000
je case.0x45465a.8192
mov edx, dword [ebp - 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
cmp dword [eax*4 + 0x47ff50], 6
sete cl
xor eax, eax
cmp dword [edx + 0x28], 0xf
sete al
cmp ecx, eax
mov eax, edx
jne 0x4546cf
mov edi, dword [ebp + 0x20]
jmp 0x45426f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x28], 0xf
je 0x454269
mov edi, edx
lea edx, [edi + esi*2]
inc ebx
mov dword [eax + 0x38], edx
mov edi, edx
cmp ebx, dword [eax + 0x24]
jb 0x4545b0
jmp 0x454269
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x20]
cmp ebx, dword [eax + 0x24]
jae 0x45426c
mov esi, dword [eax + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov edi, 1
cmp esi, dword [eax + 0x5c]
jae 0x4547bb
cmp dword [ebp - 8], 0
movzx edx, word [esi]
je 0x454747
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x454747
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 + 0x4839e8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x45478b
cmp eax, 3
je 0x45478b
cmp edx, 0x5f
je 0x45478b
xor ecx, ecx
jmp 0x454790
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 0x4546b8
lea esi, [esi + edi*2]
inc ebx
mov dword [eax + 0x38], esi
cmp ebx, dword [eax + 0x24]
jb 0x454700
jmp 0x454269
mov edi, eax
cmp word [edi + 0x48], 0
je 0x45426c
cmp esi, dword [edi + 0x64]
jbe 0x45426c
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
jmp 0x45426c
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x20]
cmp edi, dword [eax + 0x24]
jae 0x454269
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 0x4548a4
movzx ecx, word [edx]
test ebx, ebx
je 0x454848
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x454845
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 + 0x480ab0]
lea eax, [eax*4 + 0x480ab0]
cmp ecx, edx
jb 0x45486d
nop dword [eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x454895
mov edx, dword [eax]
cmp ecx, edx
jae 0x454860
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x28], 0xf
jne 0x454269
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 0x454800
jmp 0x454269
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x28], 0xf
je 0x454269
jmp 0x45487a
mov edi, ecx
cmp word [edi + 0x48], 0
je 0x45426c
cmp edx, dword [edi + 0x64]
jbe 0x45426c
mov dword [edi + 0x2c], esi
cmp word [edi + 0x48], si
ja 0x45182b
jmp 0x45426c
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x454269
mov edx, dword [ebx + 0x38]
nop dword [eax + eax]
mov eax, dword [ebp + 0x20]
mov esi, 1
cmp edx, dword [eax + 0x5c]
jae 0x454287
cmp dword [ebp - 8], 0
movzx ecx, word [edx]
je 0x454927
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x454927
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 0x454952
cmp ecx, 0x40
je 0x454952
cmp ecx, 0x60
je 0x454952
cmp ecx, 0xa0
jb 0x454946
cmp ecx, 0xd7ff
jbe 0x454952
cmp ecx, 0xe000
jae 0x454952
xor ecx, ecx
jmp 0x454957
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je 0x454269
lea edx, [edx + esi*2]
inc edi
mov dword [ebx + 0x38], edx
cmp edi, dword [ebx + 0x24]
jb 0x4548e0
jmp 0x454269
mov eax, dword [ebx + 0x28]
cmp eax, 0x16
jne 0x454a74
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x454a5c
mov ecx, dword [ebp + 0x20]
nop dword [eax + eax]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x5c]
jae 0x454a39
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x4549ea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4549ea
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.00465cc0
mov ecx, dword [ebp + 0x20]
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp word [ecx + 0x48], 0
je 0x454a2b
cmp eax, dword [ecx + 0x5c]
jb 0x454a2b
cmp eax, dword [ecx + 0x64]
jbe 0x454a2b
mov dword [ecx + 0x2c], 1
cmp word [ecx + 0x48], 1
ja 0x45182b
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x4549a0
mov edi, ecx
jmp 0x454a5f
mov edi, dword [ebp + 0x20]
cmp word [edi + 0x48], 0
je 0x454a5f
cmp eax, dword [edi + 0x64]
jbe 0x454a5f
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
jmp 0x454a5f
mov edi, dword [ebp + 0x20]
cmp dword [ebp - 0xc], 2
mov esi, dword [ebp - 8]
je 0x45071e
mov edx, dword [ebx + 4]
jmp 0x4581e1
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x456b94.15
mov esi, dword [ebp - 8]
test esi, esi
je 0x4551d3
jmp dword [eax*4 + 0x458f50]
jmp dword [eax*4 + 0x458f90]
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 0x455828
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 0x4557fa
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x455828
movzx eax, word [edi + 0x4e]
lea ecx, [ecx + eax*2]
test esi, esi
jg 0x4557e0
jmp 0x455828
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.0x455840
movzx eax, byte [eax + 0x458fd8]
jmp dword [eax*4 + 0x458fd0]
mov esi, dword [edx*4 + sym.imp.gdiplus.dll_GdipDrawArc]
lea eax, [ecx + 2]
mov dword [ebx], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipDrawImageRect]
mov dword [ebx + 0x20], eax
mov eax, dword [edx*4 + sym.imp.gdiplus.dll_GdipFillEllipse]
mov dword [ebx + 0x24], eax
mov dword [ebp - 0xc], esi
jmp 0x45589b
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_GdipDrawArc]
mov dword [ebp - 0xc], eax
test ecx, ecx
jne 0x455896
mov dword [ebx + 0x24], 0xffffffff
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x50]
jae 0x4558be
mov ecx, dword [ebx + eax*4 + 0x54]
cmp ecx, 0xffffffff
je 0x4558be
mov esi, dword [ebp - 8]
cmp ecx, dword [ebx + eax*4 + 0x58]
je 0x45071e
mov eax, dword [ebx + 0x20]
jmp 0x4558dc
mov eax, dword [ebx + 0x20]
mov esi, dword [ebp - 8]
test eax, eax
je 0x45071e
test dword [edi + 0x84], 0x200
jne 0x45071e
mov esi, 1
cmp eax, esi
jb 0x455911
lea eax, [ebp - 0x4c]
push eax
push edi
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00459120
add esp, 0x14
test eax, eax
jne 0x455982
mov eax, dword [ebp - 0x4c]
inc esi
add eax, eax
add dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x20]
cmp esi, eax
jbe 0x4558e5
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 0x24]
je 0x45071e
cmp dword [ebp - 0xc], 0
je 0x458369
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 0x4559d7
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.00459120
add esp, 0x14
test eax, eax
jne 0x4559a9
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 0x455950
jmp 0x4559cf
jle 0x45598a
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
jle 0x4559cf
mov ecx, dword [ebp + 0x20]
cmp word [ecx + 0x48], 0
je 0x4559cf
mov eax, dword [ecx + 0x5c]
cmp eax, dword [ecx + 0x64]
jbe 0x4559cf
mov dword [ecx + 0x2c], 1
cmp word [ecx + 0x48], 1
ja 0x45182b
test esi, esi
je 0x4582c4
mov edi, dword [ebp + 0x20]
jmp 0x4567ed
lea eax, [ebp + 0xc]
push eax
push edi
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00459120
add esp, 0x14
test eax, eax
je 0x455a1e
jle 0x4559ff
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
mov eax, dword [ebp + 0xc]
add eax, eax
add dword [ebx + 0x38], eax
jmp 0x45071b
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 0x455a33
lea eax, [ecx + 4]
mov dword [edx], eax
jmp 0x450721
cmp dword [edi + 0x30], 0
mov ebx, dword [ebp - 4]
jne 0x4582d8
cmp dword [ebx + 0x18], 0
je 0x4582d8
mov ecx, dword [ebx]
jmp 0x456400
mov ebx, dword [ebp - 4]
lea eax, [ebp + 0xc]
push eax
push edi
push ebx
call fcn.00450500
mov esi, eax
add esp, 0xc
test esi, esi
jg case.0x450743.160
js 0x4520fc
mov eax, dword [ebp + 0xc]
add eax, eax
add dword [ebx], eax
jmp 0x45071b
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 0x455ab2
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 0x455ac6
cmp eax, 0x77
jne 0x455af4
lea eax, [ebp + 0xc]
push eax
push edi
push ebx
call fcn.00450500
mov esi, eax
add esp, 0xc
test esi, esi
jg case.0x450743.160
js 0x4520fc
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.0x455b0f.148
movzx eax, byte [eax + 0x458ffc]
jmp dword [eax*4 + 0x458fe0]
mov edx, dword [ebx + 0x44]
cmp edx, 0xffffffff
je case.0x455b0f.146
movzx eax, word [ecx + 2]
cmp eax, 0xffff
je case.0x455b0f.147
cmp eax, edx
je case.0x455b0f.147
jmp case.0x455b0f.146
mov esi, dword [ebx + 0x44]
cmp esi, 0xffffffff
je case.0x455b0f.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 0x455c05
nop word [eax + eax]
movzx eax, word [ecx]
xor ebx, ebx
dec edx
cmp eax, esi
sete bl
je 0x455b84
lea ecx, [ecx + edi*2]
test edx, edx
jg 0x455b70
mov edi, dword [ebp + 0x20]
test ebx, ebx
mov ebx, dword [ebp - 4]
je case.0x455b0f.146
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
jmp 0x455c0d
movzx eax, word [ecx + 2]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae case.0x455b0f.146
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je case.0x455b0f.146
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
jmp 0x455c0d
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.0x455b0f.146
mov edi, dword [ebx + 0x50]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x455bfe
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x458074
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x455be4
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 0x45071b
mov edx, 0x2008d
mov byte [eax + 0x30], 0x23
mov dword [ebp + 8], edx
jmp 0x458811
mov ebx, dword [ebp - 4]
mov eax, dword [ebx]
movzx edx, word [eax + 2]
test esi, esi
je 0x455c70
test edx, edx
je 0x455c6b
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [edi + 0x58]
jbe case.0x450743.160
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, word [ebp - 0x14]
cmp ax, word [ebp - 0x18]
jne 0x455c67
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x455c44
mov ecx, dword [ebx + 0x38]
jmp 0x455c8a
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [edi + 0x58]
sar eax, 1
cmp edx, eax
jg case.0x450743.160
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [edi + 0x64]
jae 0x455c92
mov dword [edi + 0x64], ecx
add dword [ebx], 4
jmp 0x45071e
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 0x455ca0
jmp 0x450721
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 0x455d3c
mov ecx, 0x88
cmp ax, cx
je 0x455d3c
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 0x455d37
mov eax, dword [edi + 0x50]
shl eax, 2
push eax
lea eax, [edi + 0x54]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.0046b4c0
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 0x4520fc
movzx eax, word [ebx]
jmp 0x455d44
mov ecx, dword [ebp + 0x20]
xor esi, esi
mov edx, dword [ebp - 0x10]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0xe
ja case.0x455d5a.132
movzx eax, byte [eax + 0x459028]
jmp dword [eax*4 + 0x459010]
mov eax, dword [edi + 0x38]
cmp eax, dword [ecx + 0x68]
jbe 0x455d6c
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.0x455d5a.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 0x455d90
jmp case.0x455d5a.132
push dword [ebp - 8]
push dword [edi + 0x38]
push dword [esi + 0x38]
call fcn.00466080
add esp, 0xc
test eax, eax
jne case.0x455d5a.132
mov edi, dword [ebp + 0x20]
xor esi, esi
jmp 0x4520fc
movzx eax, word [ebx + 4]
cmp dword [edi + 0x44], eax
jne 0x455e13
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.0046b4c0
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 0x450721
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.0x455d5a.132
mov dword [edi + 0x50], edx
mov edx, dword [edi]
cmp word [edx], 0x7c
jne 0x455e6d
push dword [ebp - 0x3c]
lea eax, [edi + 0x38]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.0046b4c0
mov edi, dword [ebp + 0x20]
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x4520fc
mov cl, byte [edi + 0x31]
cmp cl, 0x79
je 0x455e89
test esi, esi
je 0x45832b
mov eax, dword [edi + 0x38]
cmp eax, dword [esi + 0x38]
jne 0x45832b
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp - 4]
add dword [ebx], 4
jmp 0x45071b
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
cmp eax, dword [edi + 0x58]
jne case.0x450743.160
test byte [edi + 0x80], 1
jne case.0x450743.160
add dword [ecx], 2
jmp 0x450721
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
cmp eax, dword [edi + 0x58]
je 0x455eb3
jmp case.0x450743.160
test byte [edi + 0x80], 2
jne case.0x450743.160
test byte [edi + 0x84], 0x10
je case.0x450743.23
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x450743.160
cmp word [edi + 0x48], 0
je 0x455eb3
cmp eax, dword [edi + 0x64]
jbe 0x455eb3
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
add dword [ecx], 2
jmp 0x450721
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x20]
mov edx, dword [edi + 0x38]
mov esi, dword [ecx + 0x5c]
cmp edx, esi
jae 0x455f9b
mov eax, dword [ecx + 0x90]
lea ebx, [ecx + 0x94]
test eax, eax
je 0x455f61
push dword [ebp - 8]
push ebx
push esi
push eax
push edx
call fcn.00465ea0
add esp, 0x14
test eax, eax
je 0x455fc7
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 0x455f8f
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x455fc4
mov ecx, dword [ebp + 0x20]
mov ax, word [edx]
cmp ax, word [ecx + 0x98]
jne 0x455fc4
cmp edi, 1
je 0x455f8f
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x9a]
jne 0x455fc4
lea eax, [edi + edi]
mov edi, dword [ebp - 4]
sub esi, eax
cmp edx, esi
jne 0x455fc7
cmp word [ecx + 0x48], 0
je 0x455fb9
cmp edx, dword [ecx + 0x64]
jbe 0x455fb9
mov dword [ecx + 0x2c], 1
cmp word [ecx + 0x48], 1
ja 0x45182b
add dword [edi], 2
mov edi, dword [ebp + 0x20]
jmp 0x45071b
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x450a1e
mov ecx, dword [edi + 0x38]
mov edi, dword [ebp + 0x20]
lea eax, [ecx + 2]
cmp eax, dword [edi + 0x5c]
jb case.0x450743.160
cmp dword [edi + 0x90], 0
jne case.0x450743.160
cmp dword [ebx], 2
jne case.0x450743.160
mov ax, word [ecx]
cmp ax, word [edi + 0x98]
jne case.0x450743.160
jmp 0x451c2a
test byte [edi + 0x80], 1
mov ebx, dword [ebp - 4]
je 0x45602a
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x58]
je case.0x450743.160
mov ecx, dword [ebx + 0x38]
mov edx, dword [edi + 0x58]
cmp ecx, edx
je 0x4561aa
cmp ecx, dword [edi + 0x5c]
jne 0x45604d
test dword [edi + 0x84], 0x200000
je case.0x450743.160
mov esi, dword [edi + 0x90]
test esi, esi
je 0x456084
cmp ecx, edx
jbe case.0x450743.160
push dword [ebp - 8]
lea eax, [edi + 0x94]
push eax
push edx
push esi
push ecx
call fcn.00465f50
add esp, 0x14
test eax, eax
je case.0x450743.160
add dword [ebx], 2
jmp 0x45071b
mov edi, dword [edi + 0x94]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb 0x451c41
mov edx, dword [ebp + 0x20]
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [edx + 0x98]
jne 0x4560ca
cmp edi, 1
mov edi, edx
je 0x4561aa
mov ax, word [ecx + 2]
cmp ax, word [edi + 0x9a]
je 0x4561aa
jmp case.0x450743.160
mov edi, edx
jmp case.0x450743.160
mov ebx, dword [ebp - 4]
mov ecx, dword [edi + 0x5c]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x456175
mov eax, dword [edi + 0x90]
add edi, 0x94
test eax, eax
je 0x45610e
push esi
push edi
push ecx
push eax
push edx
call fcn.00465ea0
add esp, 0x14
test eax, eax
je 0x45613e
mov edi, dword [ebp + 0x20]
add dword [ebx], 2
jmp 0x45071b
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x45613e
mov ecx, dword [ebp + 0x20]
mov ax, word [edx]
cmp ax, word [ecx + 0x98]
jne 0x45613e
cmp esi, 1
je 0x4561a8
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x9a]
je 0x4561a8
mov eax, dword [ebp + 0x20]
cmp word [eax + 0x48], 0
je 0x450a1e
mov ecx, dword [ebx + 0x38]
mov ebx, dword [ebp + 0x20]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x5c]
jb 0x450873
cmp dword [ebx + 0x90], 0
jne 0x450873
cmp dword [edi], 2
mov edi, ebx
jmp 0x455ff7
test byte [edi + 0x80], 2
jne case.0x450743.160
cmp word [edi + 0x48], 0
je 0x4561aa
cmp edx, dword [edi + 0x64]
jbe 0x4561aa
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
add dword [ebx], 2
jmp 0x45071b
mov edi, ecx
add dword [ebx], 2
jmp 0x45071b
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 0x455eb3
jmp case.0x450743.160
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
add dword [ecx], 2
jmp 0x450721
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x38]
cmp esi, dword [edi + 0x58]
je 0x4562c0
cmp dword [ebp - 8], 0
lea edx, [esi - 2]
je 0x456263
movzx eax, word [edx]
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x456211
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45623c
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 0x45624a
mov dword [edi + 0x64], edx
mov esi, dword [eax + 0x38]
test dword [edi + 0x84], 0x20000
je 0x4562a8
cmp ecx, 0x5f
jne 0x456268
lea ebx, [ecx - 0x5e]
jmp 0x4562c2
movzx ecx, word [edx]
jmp 0x45623f
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x4562a1
cmp eax, 3
jne 0x4562c0
mov ebx, 1
jmp 0x4562c2
cmp ecx, 0xff
ja 0x4562c0
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je 0x4562c0
mov ebx, 1
jmp 0x4562c2
xor ebx, ebx
mov eax, dword [edi + 0x5c]
cmp esi, eax
jb 0x456310
cmp word [edi + 0x48], 0
je 0x4562e7
cmp esi, dword [edi + 0x64]
jbe 0x4562e7
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
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 0x456300
xor edx, 1
mov ebx, dword [ebp + 0x1c]
test edx, edx
je 0x455e0b
jmp case.0x450743.160
cmp dword [ebp - 8], 0
lea edx, [esi + 2]
je 0x456362
cmp edx, eax
jae 0x456335
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x456335
add edx, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x456365
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x456365
movzx ecx, word [esi]
mov edi, dword [ebp + 0x20]
cmp edx, dword [edi + 0x68]
jbe 0x456370
mov dword [edi + 0x68], edx
test dword [edi + 0x84], 0x20000
je 0x4563d0
cmp ecx, 0x5f
jne 0x456389
lea edx, [ecx - 0x5e]
jmp 0x4562e9
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x4563c6
cmp eax, 3
jne 0x4562e7
mov edx, 1
jmp 0x4562e9
cmp ecx, 0xff
ja 0x4562e7
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je 0x4562e7
mov edx, 1
jmp 0x4562e9
test esi, esi
jne case.0x452136.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 + 0x47fdb0]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
je 0x45834e
mov dword [eax], ebx
jmp 0x45071b
cmp esi, 0xfffffc1f
jne 0x456453
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edi + 0x74], eax
jae case.0x452136.35
cmp word [ecx], 0x78
je 0x45645b
cmp word [eax], 0x78
jmp 0x456455
test esi, esi
jne case.0x452136.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x458602
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x452102
cmp esi, 0xfffffc19
je 0x457fb9
test esi, esi
je 0x456496
cmp esi, 0xfffffc1f
jne case.0x452136.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4586c4
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x452102
cmp esi, 0xfffffc1f
jg 0x4564f9
je 0x457ff5
cmp esi, 0xfffffc19
je 0x456510
cmp esi, 0xfffffc1a
jle case.0x452136.35
cmp esi, 0xfffffc1d
jg case.0x452136.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4564e5
jmp 0x450716
mov eax, esi
sub eax, 0
je 0x457ff5
sub eax, 1
mov eax, dword [ebp - 4]
jne 0x452102
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x452102
cmp esi, 0xfffffc1f
jg 0x456554
je 0x458037
cmp esi, 0xfffffc19
je 0x45800f
cmp esi, 0xfffffc1a
jle case.0x452136.35
cmp esi, 0xfffffc1d
jle 0x45804e
mov eax, dword [ebp - 4]
jmp 0x452102
mov eax, esi
sub eax, 0
je 0x458037
sub eax, 1
je 0x45802f
mov eax, dword [ebp - 4]
jmp 0x452102
test esi, esi
jne case.0x452136.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebx], ecx
jmp 0x45071b
test esi, esi
je 0x455e8f
mov eax, dword [ebp - 4]
jmp 0x452102
cmp esi, 0xfffffc1a
jne 0x4565c7
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x458357
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4565b6
jmp 0x45660a
cmp esi, 0xfffffc1f
jne 0x4565ed
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [edi + 0x74], eax
jae case.0x452136.35
cmp word [ecx], 0x78
je 0x4565f5
cmp word [eax], 0x78
jmp 0x4565ef
test esi, esi
jne case.0x452136.35
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4585bb
cmp dword [ebx + 0x24], 0
jne 0x450716
cmp dword [ebx + 0x28], 0
jne 0x450716
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x452102
test esi, esi
jne case.0x452136.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 0x456633
jmp 0x450716
test esi, esi
je 0x4561aa
mov eax, dword [ebp - 4]
jmp 0x452102
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x4566a0
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [edi + 0x7c], eax
jne 0x4566a0
cmp esi, 0xfffffc1f
jne case.0x450743.160
cmp dword [edi + 0x74], ecx
jae case.0x450743.160
cmp word [edx], 0x78
je 0x4566ab
cmp word [ecx], 0x78
je 0x4566ab
jmp case.0x450743.160
mov edx, dword [ebp - 8]
test esi, esi
jne case.0x452136.35
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x458692
jmp case.0x450743.160
cmp esi, 0xfffffc1e
jne case.0x452136.35
mov eax, dword [ebx]
push dword [edi + 0x78]
add eax, 4
push eax
call fcn.004665c0
mov edx, dword [ebp - 8]
add esp, 8
test eax, eax
jne case.0x452136.35
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [edi + 0x78], eax
mov eax, dword [ebp - 4]
jmp 0x452102
test esi, esi
jne case.0x452136.35
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 4]
jmp 0x452102
test esi, esi
jne case.0x452136.35
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 4]
jmp 0x452102
test esi, esi
jne case.0x452136.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 0x452102
test esi, esi
jne case.0x452136.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 0x452102
test esi, esi
jne case.0x452136.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 0x452102
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
lea eax, [ebp - 0x54]
push eax
push edi
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00459120
add esp, 0x14
test eax, eax
je 0x458361
jle 0x4567c0
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
test esi, esi
jne case.0x452136.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.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x15
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov eax, dword [ebx + 4]
cmp dword [ebx + 0x38], eax
je case.0x450743.160
mov dword [ebx + 0x38], eax
dec dword [ebx + 0x24]
mov esi, dword [ebx + 0x20]
cmp esi, dword [ebx + 0x24]
jae 0x456858
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.00459120
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 0x456830
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x16
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x45689a
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
add eax, 2
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x4568c3
cmp byte [ebx + 0x31], 0x6e
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x17
jmp 0x458811
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 0x4568b5
jmp case.0x450743.160
test esi, esi
jne case.0x452136.35
add dword [ebx + 0x38], 0xfffffffe
jmp 0x451ded
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [edi + 0x5c]
jb 0x456924
cmp word [edi + 0x48], si
je case.0x450743.160
cmp ecx, dword [edi + 0x64]
jmp 0x451c24
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x456935
cmp dword [ebx + 0x2c], eax
jne case.0x450743.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 0x458811
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
jne case.0x452136.35
mov esi, dword [ebp - 8]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x45071e
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1a
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov esi, dword [ebx + 0x38]
cmp esi, dword [edi + 0x5c]
jb 0x4569a7
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp esi, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1b
jmp 0x458811
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x451487
mov eax, dword [ebp - 4]
jmp 0x452102
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [edi + 0x5c]
jb 0x456a0f
cmp word [edi + 0x48], si
je case.0x450743.160
cmp ecx, dword [edi + 0x64]
jmp 0x451c24
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.0x450743.160
cmp dword [ebx + 0x2c], eax
je case.0x450743.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 0x458811
test esi, esi
jne case.0x452136.35
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 4]
je 0x45071e
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1e
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov esi, dword [ebx + 0x38]
cmp esi, dword [edi + 0x5c]
jb 0x456a96
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp esi, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1f
jmp 0x458811
test esi, esi
jne case.0x452136.35
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
mov esi, dword [ebp - 8]
cmp eax, dword [ebx + 4]
je 0x45071e
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x20
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov edx, dword [ebx + 0x38]
mov ecx, dword [edi + 0x5c]
cmp edx, ecx
jb 0x456b15
cmp word [edi + 0x48], si
je case.0x450743.160
cmp edx, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebx + 0x28], 0xc
jne 0x456b7c
mov eax, dword [edi + 0x90]
lea esi, [edi + 0x94]
test eax, eax
je 0x456b4b
push dword [ebp - 8]
push esi
push ecx
push eax
push edx
call fcn.00465ea0
add esp, 0x14
test eax, eax
jne case.0x450743.160
mov edx, dword [ebx + 0x38]
jmp 0x456b7c
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x456b7c
mov ax, word [edx]
cmp ax, word [edi + 0x98]
jne 0x456b7c
cmp esi, 1
je case.0x450743.160
mov ax, word [edx + 2]
cmp ax, word [edi + 0x9a]
je case.0x450743.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.0x456b94.15
jmp dword [eax*4 + 0x459038]
cmp ecx, 0xd
ja 0x456bbf
je 0x458377
cmp ecx, 0xa
je case.0x456b94.13
jbe case.0x450743.160
cmp ecx, 0xc
jbe 0x456bdf
jmp case.0x450743.160
cmp ecx, 0x85
je 0x456bdf
cmp ecx, 0x2027
jbe case.0x450743.160
cmp ecx, 0x2029
ja case.0x450743.160
cmp word [edi + 0x4a], 2
jne case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x180e
ja 0x456c33
je case.0x450743.160
cmp ecx, 0xa0
ja 0x456c22
je case.0x450743.160
cmp ecx, 9
je case.0x450743.160
cmp ecx, 0x20
jne case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x1680
jne case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x205f
ja 0x456c6a
je case.0x450743.160
cmp ecx, 0x2000
jb case.0x456b94.13
cmp ecx, 0x200a
jbe case.0x450743.160
cmp ecx, 0x202f
jne case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x3000
jne case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x180e
ja 0x456cbf
je case.0x456b94.13
cmp ecx, 0xa0
ja 0x456cae
je case.0x456b94.13
cmp ecx, 9
je case.0x456b94.13
cmp ecx, 0x20
je case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x1680
je case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x205f
ja 0x456cf6
je case.0x456b94.13
cmp ecx, 0x2000
jb case.0x450743.160
cmp ecx, 0x200a
jbe case.0x456b94.13
cmp ecx, 0x202f
je case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x3000
je case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x85
ja 0x456d26
je case.0x450743.160
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x456b94.13
jmp case.0x450743.160
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x85
ja 0x456d5f
je case.0x456b94.13
cmp ecx, 0xa
jb case.0x450743.160
cmp ecx, 0xd
jbe case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0x2028
jb case.0x450743.160
cmp ecx, 0x2029
jbe case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0xff
ja case.0x456b94.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0xff
ja case.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
jne case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0xff
ja case.0x456b94.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
je case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0xff
ja case.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
jne case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0xff
ja case.0x456b94.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je case.0x456b94.13
jmp case.0x450743.160
cmp ecx, 0xff
ja case.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
jne case.0x456b94.13
jmp case.0x450743.160
test esi, esi
jne case.0x452136.35
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x456e63
cmp eax, dword [ebx + 4]
jbe 0x456e63
cmp word [eax], 0xa
jne 0x456e63
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x456e63
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x45071b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x22
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x456eae
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
mov esi, dword [ebp - 8]
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x456eeb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x456eeb
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.00466780
add esp, 0xc
test eax, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x64
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.0x450743.160
cmp dword [ebp - 8], esi
je 0x45205c
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x45205c
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x65
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x456f92
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x456fc8
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 0x456fe8
cmp byte [ebx + 0x31], 0x6e
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xc8
jmp 0x458811
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 0x456fda
jmp case.0x450743.160
test esi, esi
jne case.0x452136.35
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.0x450743.160
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x451da5
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xc9
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.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 0x4570ea
mov eax, dword [ebp - 4]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4570a1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4570aa
add ecx, 4
add edx, 4
sub esi, 4
jae 0x457090
cmp esi, 0xfffffffc
je 0x4583e3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4570e7
cmp esi, 0xfffffffd
je 0x4583e3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4570e7
cmp esi, 0xfffffffe
je 0x4583e3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4570e7
cmp esi, 0xffffffff
je 0x4583e3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4583e3
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov edi, dword [edx + 0x14]
test edi, edi
je 0x457168
lea esi, [edi + edi]
mov eax, ecx
sub eax, esi
cmp ebx, eax
ja 0x457168
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x457122
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45712b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x457111
cmp esi, 0xfffffffc
je 0x4583e3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x457168
cmp esi, 0xfffffffd
je 0x4583e3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x457168
cmp esi, 0xfffffffe
je 0x4583e3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x457168
cmp esi, 0xffffffff
je 0x4583e3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4583e3
mov edi, dword [ebp + 0x20]
cmp word [edi + 0x48], 0
je case.0x450743.160
cmp ebx, dword [edi + 0x5c]
jb case.0x450743.160
cmp ebx, dword [edi + 0x64]
jmp 0x451c24
test esi, esi
jne case.0x452136.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 0x4571b4
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x45071b
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x458814
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4571fc
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457232
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.0x450743.160
cmp dword [ebx + 0x2c], ecx
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xcc
jmp 0x458811
test esi, esi
jne case.0x452136.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 0x45727f
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x45071b
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4572c7
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4572fd
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.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xce
jmp 0x458811
test esi, esi
jne case.0x452136.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 0x457341
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x45071b
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xcf
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x457389
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 8]
mov dword [ebx + 0x38], eax
test edx, edx
je 0x4573ad
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4573ad
add eax, 2
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x45829b.0
mov eax, dword [ebp - 4]
xor esi, esi
jmp 0x452102
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4573f5
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x457431
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457431
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 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x480e69]
cmp al, 9
je 0x457468
cmp al, 5
je 0x457468
cmp al, 8
je 0x457468
xor ecx, ecx
jmp 0x45746d
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd1
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4574c0
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x4574fc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4574fc
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd2
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x457586
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x4575c2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4575c2
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd3
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x457645
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x457681
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457681
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 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e68]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd4
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x457704
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x457740
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457740
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 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x45777d
cmp eax, 3
je 0x45777d
xor ecx, ecx
jmp 0x457782
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd5
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x4577d5
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x457811
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457811
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 0x457858
je case.0x457878.8192
cmp ecx, 0x85
ja 0x457844
je case.0x457878.8192
cmp ecx, 9
jb case.0x457878.8203
cmp ecx, 0xd
jbe case.0x457878.8192
cmp ecx, 0x20
jmp 0x457891
cmp ecx, 0xa0
je case.0x457878.8192
cmp ecx, 0x1680
jmp 0x457891
cmp ecx, 0x202f
ja 0x45787f
je case.0x457878.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x457878.8203
movzx eax, byte [eax + 0x459080]
jmp dword [eax*4 + 0x459078]
cmp ecx, 0x205f
je case.0x457878.8192
cmp ecx, 0x3000
je case.0x457878.8192
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x4839e8]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
cmp dword [eax*4 + 0x47ff50], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd6
jmp 0x458811
cmp dword [ebx + 0x28], 0xf
jne case.0x45829b.6
jmp case.0x450743.160
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x45792a
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea ecx, [eax + 2]
movzx edx, word [eax]
mov dword [ebx + 0x38], ecx
je 0x457966
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457966
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 + 0x4839e8]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e69]
mov eax, dword [eax*4 + 0x47ff50]
cmp eax, 1
je 0x4579aa
cmp eax, 3
je 0x4579aa
cmp edx, 0x5f
je 0x4579aa
xor ecx, ecx
jmp 0x4579af
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd7
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x457a02
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x457a3e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457a3e
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 + 0x480ab0]
lea eax, [eax*4 + 0x480ab0]
cmp ecx, edx
jb 0x457a60
lea eax, [eax + 4]
cmp ecx, edx
je 0x457a78
mov edx, dword [eax]
cmp ecx, edx
jae 0x457a53
cmp dword [ebx + 0x28], 0xf
jne case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd8
jmp 0x458811
cmp dword [ebx + 0x28], 0xf
jne case.0x45829b.9
jmp case.0x450743.160
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x457ab7
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov dword [ebx + 0x38], edx
je 0x457af3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457af3
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 0x457b1e
cmp ecx, 0x40
je 0x457b1e
cmp ecx, 0x60
je 0x457b1e
cmp ecx, 0xa0
jb 0x457b12
cmp ecx, 0xd7ff
jbe 0x457b1e
cmp ecx, 0xe000
jae 0x457b1e
xor ecx, ecx
jmp 0x457b23
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x450743.160
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd9
jmp 0x458811
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x5c]
jb 0x45840b
cmp word [edi + 0x48], si
je case.0x450743.160
cmp eax, dword [edi + 0x64]
jmp 0x451c24
test esi, esi
jne case.0x452136.35
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.0x450743.160
mov edx, dword [ebx + 0x38]
mov ecx, dword [edi + 0x5c]
cmp edx, ecx
jb 0x457bb0
cmp word [edi + 0x48], si
je case.0x450743.160
cmp edx, dword [edi + 0x64]
jmp 0x451c24
cmp dword [ebx + 0x28], 0xc
jne 0x457c17
mov eax, dword [edi + 0x90]
lea esi, [edi + 0x94]
test eax, eax
je 0x457be6
push dword [ebp - 8]
push esi
push ecx
push eax
push edx
call fcn.00465ea0
add esp, 0x14
test eax, eax
jne case.0x450743.160
mov edx, dword [ebx + 0x38]
jmp 0x457c17
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x457c17
mov ax, word [edx]
cmp ax, word [edi + 0x98]
jne 0x457c17
cmp esi, 1
je case.0x450743.160
mov ax, word [edx + 2]
cmp ax, word [edi + 0x9a]
je case.0x450743.160
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x457c4d
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.0x456b94.15
jmp dword [eax*4 + 0x4590ac]
cmp ecx, 0xd
ja 0x457c87
je 0x458492
cmp ecx, 0xa
je case.0x457c5c.13
jbe case.0x450743.160
cmp ecx, 0xc
jbe 0x457ca7
jmp case.0x450743.160
cmp ecx, 0x85
je 0x457ca7
cmp ecx, 0x2027
jbe case.0x450743.160
cmp ecx, 0x2029
ja case.0x450743.160
cmp word [edi + 0x4a], 2
jne case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x180e
ja 0x457cfb
je case.0x450743.160
cmp ecx, 0xa0
ja 0x457cea
je case.0x450743.160
cmp ecx, 9
je case.0x450743.160
cmp ecx, 0x20
jne case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x1680
jne case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x205f
ja 0x457d32
je case.0x450743.160
cmp ecx, 0x2000
jb case.0x457c5c.13
cmp ecx, 0x200a
jbe case.0x450743.160
cmp ecx, 0x202f
jne case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x3000
jne case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x180e
ja 0x457d87
je case.0x457c5c.13
cmp ecx, 0xa0
ja 0x457d76
je case.0x457c5c.13
cmp ecx, 9
je case.0x457c5c.13
cmp ecx, 0x20
je case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x1680
je case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x205f
ja 0x457dbe
je case.0x457c5c.13
cmp ecx, 0x2000
jb case.0x450743.160
cmp ecx, 0x200a
jbe case.0x457c5c.13
cmp ecx, 0x202f
je case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x3000
je case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x85
ja 0x457dee
je case.0x450743.160
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x457c5c.13
jmp case.0x450743.160
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x85
ja 0x457e27
je case.0x457c5c.13
cmp ecx, 0xa
jb case.0x450743.160
cmp ecx, 0xd
jbe case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x2028
jb case.0x450743.160
cmp ecx, 0x2029
jbe case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x100
jae case.0x457c5c.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
je case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x100
jae case.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 8
jne case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x100
jae case.0x457c5c.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
je case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x100
jae case.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 1
jne case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x100
jae case.0x457c5c.13
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
je case.0x457c5c.13
jmp case.0x450743.160
cmp ecx, 0x100
jae case.0x450743.160
mov eax, dword [edi + 0x3c]
test byte [ecx + eax], 0x10
jne case.0x457c5c.13
jmp case.0x450743.160
test esi, esi
jne case.0x452136.35
mov esi, dword [ebx + 0x38]
add esi, 0xfffffffe
mov dword [ebx + 0x38], esi
test edx, edx
jne 0x458090
movzx ecx, word [esi]
jmp 0x4580d9
test esi, esi
jne case.0x452136.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 0x457f43
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x457f65
cmp ecx, dword [ebx + 4]
jbe 0x457f65
cmp word [ecx], 0xa
jne 0x457f65
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x457f65
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x45071b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xdd
jmp 0x458811
test esi, esi
jne case.0x452136.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 0x4581f8
mov ax, word [edx]
and ax, word [ebp - 0x14]
cmp ax, word [ebp - 0x18]
mov eax, dword [ebp - 4]
jne 0x4581fb
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
jmp 0x4581fb
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.0046b4c0
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 0x457fe1
jmp 0x450716
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x4586f3
jmp 0x450716
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.0046b4c0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov ebx, dword [ebx + 0x20]
mov edx, dword [ebp - 4]
jmp 0x458059
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 0x458301
mov edx, dword [ebp - 4]
xor ebx, ebx
cmp dword [edx + 0x20], ebx
sete bl
test ebx, ebx
je 0x458088
mov ecx, dword [edx]
nop
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [edx], ecx
cmp word [ecx], 0x78
je 0x458060
jmp 0x455b87
mov edi, dword [ebp + 0x20]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
jmp 0x455c0d
mov ebx, dword [ebp - 4]
jmp case.0x455b0f.146
movzx eax, word [esi]
mov edx, esi
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4580ac
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 0x4580d9
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 + 0x4839e8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x480e6a]
mov dword [ebp - 0x24], eax
cmp esi, edx
jbe 0x4581e1
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 0x458180
and eax, 0xfc00
mov edx, edi
cmp eax, 0xdc00
jne 0x458150
movzx ecx, word [esi - 2]
sub esi, 2
mov edx, ebx
mov ebx, dword [ebp - 0x38]
jmp 0x458153
mov ebx, dword [ebp - 0x1c]
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x458180
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 + 0x4839e8]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x24]
movzx eax, word [eax*2 + 0x487de8]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x480e6a]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x47ff10], eax
je 0x4581db
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 0x458120
mov ebx, dword [ebp - 4]
mov edi, dword [ebp + 0x20]
cmp dword [ebx + 0x38], edx
jbe 0x45071b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xdc
jmp 0x458811
mov eax, dword [ebp - 4]
cmp ecx, dword [eax + 4]
jbe 0x45071e
mov ebx, dword [eax]
mov byte [eax + 0x30], 0xde
jmp 0x458811
inc dword [edi + 0x88]
mov eax, dword [edi + 0x88]
cmp eax, dword [edi + 0x8c]
ja 0x4584fe
mov ebx, dword [ebp - 4]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x47fdb0]
movzx eax, word [edx + 2]
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x45071e
test esi, esi
jne 0x457244
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1d
jmp 0x458811
test esi, esi
jne 0x457306
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x1f
jmp 0x458811
mov edi, dword [ebp + 0x20]
test esi, esi
jne 0x456fda
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x17
jmp 0x458811
mov eax, dword [ebp - 0x1c]
test eax, eax
js 0x4582a2
cmp eax, 0xa
ja case.0x456b94.15
jmp dword [eax*4 + 0x4590ec]
cmp dword [ebx + 0x28], 0x16
je 0x458484
cmp dword [ebp - 8], 0
jne case.0x457c5c.13
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x21
jmp 0x458811
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 0x458811
xor eax, eax
jmp 0x4585fd
mov eax, esi
cmp eax, 0x7e
je 0x4582f4
mov ecx, 0x80
cmp ax, cx
je 0x4582f4
xor eax, eax
jmp 0x4582f9
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 + 0x47fdb0]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 5
jmp 0x458811
mov eax, dword [ebp - 4]
cmp cl, 0x7b
jne 0x458342
mov byte [edi + 0x30], 6
lea ebx, [edx + 4]
mov edi, dword [ebp + 0x20]
jmp 0x458814
mov byte [edi + 0x30], 7
mov edi, dword [ebp + 0x20]
jmp 0x458814
mov byte [eax + 0x30], 1
jmp 0x458811
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x4585bb
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 0x458811
cmp edx, dword [edi + 0x5c]
jae case.0x456b94.13
cmp word [edx], 0xa
jne case.0x456b94.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 0x458811
cmp word [edi + 0x48], 0
je case.0x456b94.13
cmp edx, dword [edi + 0x5c]
jb case.0x456b94.13
cmp dword [edi + 0x90], 0
jne case.0x456b94.13
cmp dword [edi + 0x94], 2
jne case.0x456b94.13
movzx eax, word [edi + 0x98]
cmp ecx, eax
jne case.0x456b94.13
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0x21
jmp 0x458811
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 0x458811
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xd0
jmp 0x458811
cmp dword [ebp - 8], 0
lea edx, [eax + 2]
movzx ecx, word [eax]
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x458449
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x458449
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.00465cc0
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp word [edi + 0x48], 0
je 0x458484
cmp eax, dword [edi + 0x5c]
jb 0x458484
cmp eax, dword [edi + 0x64]
jbe 0x458484
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xda
jmp 0x458811
cmp edx, dword [edi + 0x5c]
jae case.0x457c5c.13
cmp word [edx], 0xa
jne case.0x457c5c.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 0x458811
cmp word [edi + 0x48], 0
je case.0x457c5c.13
cmp edx, dword [edi + 0x5c]
jb case.0x457c5c.13
cmp dword [edi + 0x90], 0
jne case.0x457c5c.13
cmp dword [edi + 0x94], 2
jne case.0x457c5c.13
movzx eax, word [edi + 0x98]
cmp ecx, eax
jne case.0x457c5c.13
mov dword [edi + 0x2c], 1
cmp word [edi + 0x48], 1
ja 0x45182b
mov eax, dword [ebp - 4]
mov ebx, dword [ebx]
mov byte [eax + 0x30], 0xdb
jmp 0x458811
mov esi, dword [ebp - 4]
mov edx, dword [esi]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x47fdb0]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x11
jmp 0x45880c
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx]
add ebx, 2
mov dword [ecx + 4], ebx
mov byte [ecx + 0x30], 9
jmp 0x458811
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 0x458540
lea ebx, [ecx + 4]
mov byte [edx + 0x30], 0xa
jmp 0x458811
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 0x4585a3
mov edx, 0x8c
cmp cx, dx
jne 0x458590
jmp 0x4585a3
mov ebx, dword [ebp - 4]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x4585ac
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 + 0x47fdb0]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 8
jmp 0x458811
mov ebx, dword [ebp - 4]
mov eax, dword [ebx]
movzx eax, word [eax + 4]
or eax, 0x10000
jmp 0x4585fd
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 + 0x47fdb0]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 2
jmp 0x458811
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 0x458638
xor edi, edi
jmp 0x45863c
movzx edi, word [ebx + 4]
cmp dword [edx + 0x44], 0xffffffff
je 0x458680
mov eax, dword [edx + 0x4c]
cmp eax, 0xffffffff
je 0x458680
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 0x458671
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x458658
mov edx, dword [ebp - 4]
jmp 0x458680
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x45897b
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 + 0x47fdb0]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 0xb
jmp 0x458811
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 + 0x47fdb0]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 3
jmp 0x458811
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 + 0x47fdb0]
lea ebx, [ecx + eax*2]
mov eax, dword [ebp - 4]
mov byte [eax + 0x30], 4
jmp 0x458811
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 + 0x47fdb0]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0xc
jmp 0x45880c
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
mov byte [edx + 0x30], 0xd
lea ebx, [ecx + eax*2]
jmp 0x458811
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 + 0x47fdb0]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0x24
jmp 0x45880c
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
mov byte [edx + 0x30], 0xe
lea ebx, [ecx + eax*2]
jmp 0x458811
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 + 0x47fdb0]
movzx eax, word [edx + 2]
mov byte [esi + 0x30], 0xf
jmp 0x45880c
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
mov byte [edx + 0x30], 0x10
lea ebx, [ecx + eax*2]
jmp 0x458811
mov edx, dword [ebp - 4]
mov ecx, dword [edx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x47fdb0]
mov byte [edx + 0x30], 0x12
lea ebx, [ecx + eax*2]
jmp 0x458811
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 + 0x47fdb0]
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 0x4588ba
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x1c]
lea esi, [ecx + ecx]
mov eax, esi
shr eax, 0xa
cmp eax, edx
jbe 0x45884d
mov esi, edx
xor edx, edx
shl esi, 0xa
mov eax, esi
div dword [ebp + 0x1c]
sub esi, edx
cmp ecx, esi
jae 0x458987
push dword [edi + 8]
mov eax, dword [edi]
push esi
call eax
mov edi, eax
add esp, 8
test edi, edi
je 0x458993
mov eax, dword [ebp + 0x20]
push dword [eax + 0xc]
push dword [eax + 0x10]
push edi
call fcn.0046b4c0
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 0x4588a5
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.0046b4c0
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 0x4506b7
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 0x458909
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.0046b4c0
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x458966
mov dword [edi + esi*4], 0xffffffff
dec esi
mov ecx, dword [ebx + 0x50]
add ecx, 2
cmp esi, ecx
jae 0x458954
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