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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [0x48b088]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x8c], eax
push ebx
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0x9c], ebx
push esi
mov esi, dword [ebp + 8]
test edx, edx
jne 0x417ada
lea eax, [ebp + 0x20]
cmp dword [ebp + 0x20], edx
jne 0x417ac1
push 1
push edx
push edx
push edx
push edx
push edx
push eax
call fcn.00417a50
add esp, 0x1c
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
sub eax, esi
cdq
xor eax, edx
sub eax, edx
pop esi
neg eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x50]
mov eax, dword [eax]
push edi
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x98], ecx
cmp eax, dword [edi + 4]
jae 0x41b252
mov dword [ebp - 0xcc], 0xfc00
mov dword [ebp - 0xdc], 0xdc00
mov dword [ebp - 0xd8], 0xd800
inc eax
mov dword [edi], eax
mov eax, dword [ebp + 0x20]
cmp eax, dword [edi + 8]
jae 0x421ada
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x9c], 2
jne 0x417b67
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xfc], ebx
mov dword [ebp - 0x9c], ecx
mov dword [eax + 0x9c], 0
mov ebx, eax
jmp 0x417b7d
je case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
mov edi, dword [ebp - 0x98]
jmp 0x417b90
movzx ecx, word [edx]
mov edx, ecx
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0xa4], edx
cmp edx, 0xa1
ja case.0x417bc2.98
movzx eax, byte [edx + 0x421c3c]
jmp dword [eax*4 + 0x421af0]
mov eax, dword [ebp - 0x8c]
mov ebx, dword [ebp - 0x8c]
inc dword [eax + 0x28]
mov eax, dword [eax + 0x28]
cmp eax, dword [ebx + 0x2c]
ja 0x41f1b5
mov edx, dword [ebp - 0x90]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x44edf0]
movzx eax, word [edx + 2]
add ecx, eax
lea edx, [edx + ecx*2]
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
mov ebx, esi
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0xc8], edx
mov edi, dword [eax + 0xb0]
nop
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
lea eax, [edx + 4]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
cmp eax, 1
je 0x417cc0
cmp eax, 0xfffffc20
jne 0x417c8d
mov edx, dword [ebp - 0x90]
movzx ecx, word [edx + 2]
lea ecx, [edx + ecx*2]
mov edx, dword [ebp - 0x8c]
cmp dword [edx + 0x80], ecx
jae 0x41b259
mov edx, dword [ebp - 0x90]
cmp word [edx], 0x77
je 0x417c9b
cmp word [ecx], 0x77
jne 0x41b259
jmp 0x417c9b
test eax, eax
jne 0x41b259
mov edx, dword [ebp - 0x90]
movzx eax, word [edx + 2]
lea edx, [edx + eax*2]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x90], edx
mov dword [eax + 0xb0], edi
cmp word [edx], 0x77
je 0x417c20
jmp 0x417cd8
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + 0x80]
mov dword [ebp - 0xa8], eax
movzx eax, word [edx]
mov ecx, 0x82
cmp ax, cx
je 0x417cf0
cmp eax, 0x77
jne case.0x417bc2.157
mov edi, edi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x417cf0
cmp word [edx], 0x78
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x90], edx
mov ecx, dword [eax + 0x90]
mov esi, dword [eax + 0x84]
mov dword [ebp - 0xa0], ecx
je 0x417d2a
cmp esi, ebx
jne 0x41ee05
add edx, 4
mov ebx, eax
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xb8], 0
jmp 0x41890e
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xb8], 0
jmp 0x418924
mov edx, dword [ebp - 0x90]
movzx edi, word [edx + 2]
add edx, 4
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0x90], edx
cmp word [edx], 0x76
jne 0x417ea3
mov ecx, dword [0x48c578]
test ecx, ecx
je 0x417e8b
mov dword [ebp - 0x130], 2
movzx eax, word [edx + 2]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x7c]
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0xa8]
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ebp - 0x11c], eax
mov eax, esi
sub eax, dword [edx + 0x78]
mov edx, dword [ebp - 0x90]
sar eax, 1
mov dword [ebp - 0x118], eax
movzx eax, word [edx + 4]
mov dword [ebp - 0x108], eax
movzx eax, word [edx + 6]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xa0]
cdq
sub eax, edx
mov edx, 0xffffffff
sar eax, 1
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x8c]
movzx eax, word [eax + 0x94]
test eax, eax
cmove eax, edx
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xac]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xb4]
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x130]
push eax
call ecx
add esp, 4
test eax, eax
jg case.0x417bc2.157
js 0x41b259
mov edx, dword [ebp - 0x90]
movzx eax, byte [0x44ee66]
sub edi, eax
mov dword [ebp - 0xb8], edi
lea edx, [edx + eax*2]
mov dword [ebp - 0x90], edx
movzx eax, word [edx]
xor ebx, ebx
mov dword [ebp - 0xb4], eax
add eax, 0xffffff73
cmp eax, 0x10
ja case.0x417ec3.146
movzx eax, byte [eax + 0x421cf8]
jmp dword [eax*4 + 0x421ce0]
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je case.0x417ec3.145
movzx eax, word [edx + 2]
cmp eax, 0xffff
je 0x417faf
cmp eax, dword [ecx + 4]
je 0x417faf
xor ebx, ebx
jmp case.0x417ec3.145
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0xa8], ebx
je case.0x417ec3.145
mov ecx, dword [ebp - 0x90]
movzx edx, word [edx + 4]
movzx ecx, word [ecx + 2]
imul ecx, dword [eax + 0x24]
mov eax, dword [eax + 0x30]
lea ecx, [eax + ecx*2]
test edx, edx
jle 0x417f5c
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xa8]
mov edi, dword [eax + 4]
movzx eax, word [ecx]
xor ebx, ebx
dec edx
cmp eax, edi
sete bl
test ebx, ebx
jne 0x418026
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x24]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x417f33
mov edi, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x90]
lea edx, [edx + edi*2]
mov dword [ebp - 0x90], edx
test ebx, ebx
jne 0x41ee76
cmp word [edx - 4], 0x77
je 0x41ee76
mov edi, edi
mov ebx, dword [ebp - 0x8c]
jmp 0x417b7d
movzx ecx, word [edx + 2]
add ecx, ecx
cmp ecx, dword [ebp - 0xa0]
jge 0x417ef6
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x417ef6
mov edi, dword [ebp - 0xb4]
mov ebx, 1
movzx edi, byte [edi + 0x44edf0]
jmp case.0x417ec3.145
mov eax, dword [ebp - 0x90]
movzx edx, word [edx + 4]
movzx ecx, word [eax + 2]
mov eax, dword [ebp - 0x8c]
imul ecx, dword [eax + 0x24]
mov eax, dword [eax + 0x30]
lea edi, [eax + ecx*2]
test edx, edx
jle 0x417f56
xor ebx, ebx
jmp 0x417ff0
movzx ecx, word [edi]
dec edx
add ecx, ecx
cmp ecx, dword [ebp - 0xa0]
jge 0x41800c
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jge 0x418021
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x24]
lea edi, [edi + eax*2]
test edx, edx
jg 0x417ff0
jmp 0x417f56
mov ebx, 1
mov edi, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x90]
movzx edi, byte [edi + 0x44edf0]
jmp case.0x417ec3.145
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0x9c], 1
mov eax, dword [ebp + 0x20]
inc eax
push eax
push 0
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edx
push esi
call fcn.00417a50
add esp, 0x1c
cmp eax, 1
jne 0x4180f1
mov eax, dword [ebp - 0x8c]
mov ebx, 1
mov ecx, dword [ebp - 0xa0]
mov eax, dword [eax + 0x90]
cmp eax, ecx
cmovg ecx, eax
mov eax, 0x92
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0x90]
cmp word [ecx], ax
jne 0x4180ab
add ecx, 2
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea edx, [ecx + eax*2]
jne 0x4180ce
lea esp, [esp]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x4180c0
mov edi, dword [ebp - 0xb4]
mov ecx, 2
movzx eax, byte [edi + 0x44edf0]
movzx edi, byte [edi + 0x44edf0]
sub ecx, eax
lea edx, [edx + ecx*2]
jmp case.0x417ec3.145
test eax, eax
je 0x417f5c
cmp eax, 0xfffffc20
jne 0x41b259
jmp 0x417f5c
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
movzx edx, word [eax + 2]
mov eax, dword [ebp - 0x8c]
lea ebx, [edx + edx]
mov eax, dword [eax + 0x94]
and eax, 0xffff0000
or eax, edx
mov dword [ecx + 0x94], eax
cmp ebx, dword [ecx + 0x14]
jl 0x41815b
mov edx, dword [ebp - 0x90]
mov ebx, ecx
or eax, 0x10000
add edx, 4
mov dword [ebp - 0x90], edx
mov dword [ebx + 0x94], eax
jmp 0x417b7d
mov eax, ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + ebx*4], eax
mov ecx, esi
mov eax, dword [ebp - 0x8c]
sub ecx, dword [eax + 0x78]
mov eax, dword [eax + 0xc]
sar ecx, 1
mov dword [eax + ebx*4 + 4], ecx
mov ecx, dword [ebp - 0xa0]
cmp ebx, ecx
jl 0x4181b1
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + ebx*4]
cmp edi, ecx
jae 0x4181a8
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
lea eax, [ebx + 2]
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x9c], 1
mov edi, dword [eax + 0xb0]
jne 0x4181f1
mov ebx, 1
mov dword [eax + 0x9c], 0
jmp 0x4181f3
xor ebx, ebx
mov edx, dword [ebp - 0x90]
lea esp, [esp]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push 0
push dword [ebp - 0x8c]
lea eax, [edx + 4]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push eax
push esi
call fcn.00417a50
mov ecx, eax
add esp, 0x1c
cmp ecx, 1
je 0x4182a8
cmp ecx, 0xfffffc19
je 0x4182a8
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0xb0], edi
cmp ecx, 0xfffffc20
jne 0x418280
mov edx, dword [ebp - 0x90]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0x8c]
cmp dword [edx + 0x80], eax
jae 0x421856
mov edx, dword [ebp - 0x90]
cmp word [edx], 0x77
je 0x41828e
cmp word [eax], 0x77
jne 0x421856
jmp 0x41828e
test ecx, ecx
jne 0x421856
mov edx, dword [ebp - 0x90]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
mov dword [ebp - 0x90], edx
je 0x418200
jmp 0x4182c0
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + 0x80]
mov dword [ebp - 0xa8], eax
cmp word [edx], 0x78
je case.0x417bc2.157
test ebx, ebx
jne 0x41f43b
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x4182d2
mov eax, dword [ebp - 0x8c]
add edx, 4
mov ebx, dword [ebp - 0x8c]
mov dword [ebp - 0x90], edx
mov eax, dword [eax + 0x90]
mov dword [ebp - 0xa0], eax
jmp 0x417b7d
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x9c], 1
mov edi, dword [eax + 0xb0]
jne 0x41832c
mov ebx, 1
mov dword [eax + 0x9c], 0
jmp 0x41832e
xor ebx, ebx
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push 0
push dword [ebp - 0x8c]
lea eax, [edx + 4]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push eax
push esi
call fcn.00417a50
mov ecx, eax
add esp, 0x1c
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0xb0], edi
cmp ecx, 0xfffffc20
jg 0x41839b
jne 0x4183c6
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
cmp dword [ecx + 0x80], eax
jae 0x4183f0
cmp word [edx], 0x77
je 0x4183ac
cmp word [eax], 0x77
jne 0x4183f0
jmp 0x4183ac
mov eax, ecx
sub eax, 0
jne 0x41f25a
mov edx, dword [ebp - 0x90]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
mov dword [ebp - 0x90], edx
je 0x418334
jmp 0x4183fe
cmp ecx, 0xfffffc19
je case.0x417bc2.157
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x421856
mov edx, dword [ebp - 0x90]
jmp 0x4183f0
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x4183f0
test ebx, ebx
jne 0x41f43b
mov ebx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov edx, dword [ebp - 0x90]
test edi, edi
je 0x418470
movzx ecx, word [edx + 2]
mov eax, dword [ebp - 0x8c]
test ecx, ecx
jle 0x418488
mov edx, dword [eax + 0x78]
mov ebx, 0xfc00
lea ebx, [ebx]
sub esi, 2
dec ecx
cmp esi, edx
jb case.0x417bc2.157
mov ax, word [esi]
and ax, bx
cmp ax, word [ebp - 0xdc]
jne 0x41845e
sub esi, 2
test ecx, ecx
jg 0x418440
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
jmp 0x418488
movzx eax, word [edx + 2]
neg eax
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x78]
jb case.0x417bc2.157
cmp esi, dword [eax + 0x88]
jae 0x418496
mov dword [eax + 0x88], esi
mov ebx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov ecx, dword [0x48c578]
test ecx, ecx
je 0x4185a8
mov ebx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x164], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x7c]
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0xa8]
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ebp - 0x150], eax
mov eax, esi
sub eax, dword [edx + 0x78]
sar eax, 1
mov dword [ebp - 0x14c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x13c], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0xa0]
cdq
sub eax, edx
mov edx, 0xffffffff
sar eax, 1
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x8c]
movzx eax, word [eax + 0x94]
test eax, eax
cmove eax, edx
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xac]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xb4]
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x164]
push eax
call ecx
add esp, 4
test eax, eax
jg case.0x417bc2.157
js 0x41b259
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 8
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
mov ecx, dword [eax + 0x74]
movzx eax, word [edx + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x4185e0
xor ecx, ecx
jmp 0x4185e4
movzx ecx, word [ebx + 4]
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x418608
cmp ecx, dword [eax + 4]
jne 0x418602
cmp esi, dword [eax + 0x14]
je 0x41f274
mov eax, dword [eax]
test eax, eax
jne 0x4185f4
mov eax, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0xf0], ecx
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0x90], edx
mov eax, dword [eax + 0x94]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xe0], esi
mov eax, dword [eax + 0xa8]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0xa8], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xe8], ecx
cmp ecx, 0x1e
jg 0x41866f
lea eax, [ebp - 0x88]
mov dword [ebp - 0xec], eax
jmp 0x418694
lea eax, [ecx*4]
push eax
call dword [section..data]
add esp, 4
mov dword [ebp - 0xec], eax
test eax, eax
je 0x41f2f6
mov ecx, dword [ebp - 0xe8]
shl ecx, 2
push ecx
mov ecx, dword [ebp - 0x8c]
push dword [ecx + 0xc]
push eax
call fcn.004347f0
mov eax, 0x88
add esp, 0xc
cmp word [ebx], ax
sbb eax, eax
inc eax
mov dword [ebp - 0xc8], eax
jmp 0x4186c0
test eax, eax
je 0x4186d4
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0x9c], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [ebx]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [ebx + eax*2]
push eax
push esi
call fcn.00417a50
mov ecx, dword [ebp - 0xe8]
mov edi, eax
mov eax, dword [ebp - 0x8c]
shl ecx, 2
push ecx
push dword [ebp - 0xec]
push dword [eax + 0xc]
call fcn.004347f0
mov ecx, dword [ebp - 0x8c]
add esp, 0x28
mov eax, dword [ebp - 0xe4]
mov dword [ecx + 0x94], eax
mov eax, dword [ebp - 0xf4]
mov dword [ecx + 0xa8], eax
cmp edi, 1
je 0x41879e
cmp edi, 0xfffffc19
je 0x41879e
cmp edi, 0xfffffc1c
jl 0x418767
cmp edi, 0xfffffc20
jle 0x41f29c
test edi, edi
jne 0x41f2c9
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0xf4]
mov dword [eax + 0xa8], ecx
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x41f28a
mov eax, dword [ebp - 0xc8]
jmp 0x4186c0
mov eax, dword [ebp - 0xec]
lea ecx, [ebp - 0x88]
cmp eax, ecx
je 0x4187b8
push eax
call dword [0x48b004]
add esp, 4
mov eax, dword [ebp - 0x8c]
mov esi, dword [eax + 0x84]
mov eax, dword [eax + 0x80]
mov dword [ebp - 0xa8], eax
jmp 0x417b71
mov edx, dword [ebp - 0x90]
jmp 0x4187e0
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x4187e0
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x90]
inc eax
push eax
push dword [ebp - 0x9c]
add edi, 2
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edi
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x418831
mov ebx, dword [ebp - 0x8c]
lea edx, [edi + 4]
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov eax, dword [ebp - 0x90]
add eax, 2
mov dword [ebp - 0x90], eax
mov ecx, eax
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea ecx, [ecx + eax*2]
je 0x418864
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
lea eax, [ecx + 4]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov ebx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
jmp 0x417b90
mov ecx, dword [ebp - 0x90]
add ecx, 2
mov edi, edi
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea ecx, [ecx + eax*2]
je 0x4188c0
lea edx, [ecx + 4]
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov ecx, dword [ebp - 0x90]
add ecx, 2
mov dword [ebp - 0xb8], 1
mov dword [ebp - 0x90], ecx
movzx edx, word [ecx]
mov dword [ebp - 0xa4], edx
cmp edx, 0x86
je 0x41890e
cmp edx, 0x8b
jne 0x418924
movzx ebx, word [ecx + 4]
mov edi, dword [ebp - 0x8c]
lea eax, [ebx + ebx]
cmp eax, dword [edi + 0x14]
jl 0x418ac0
xor eax, eax
mov edi, ecx
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x8c]
sub edi, dword [eax + 0x74]
mov ebx, dword [eax + 0x94]
sar edi, 1
nop
cmp edx, 0x88
jb 0x418952
mov dword [eax + 0x9c], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [ecx]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [ecx + eax*2]
push eax
push esi
call fcn.00417a50
mov ecx, eax
add esp, 0x1c
cmp ecx, 0xfffffc1a
jne 0x4189f1
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xc4], 1
mov ecx, dword [eax + 0x90]
mov eax, dword [eax + 0x74]
mov dword [ebp - 0xa0], ecx
lea edx, [eax + edi*2]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x90], edx
mov ecx, dword [eax + 0x80]
mov eax, dword [eax + 0x84]
mov dword [ebp - 0xa8], ecx
cmp esi, eax
je 0x418a70
mov edx, dword [ebp - 0xa4]
mov esi, eax
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x90]
jmp 0x418940
cmp ecx, 0xfffffc20
jne 0x418a30
mov edx, dword [ebp - 0x90]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0x8c]
cmp dword [edx + 0x80], eax
jae 0x421856
mov edx, dword [ebp - 0x90]
cmp word [edx], 0x77
je 0x418a3e
cmp word [eax], 0x77
jne 0x421856
jmp 0x418a3e
test ecx, ecx
jne 0x421856
mov edx, dword [ebp - 0x90]
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
mov dword [ebp - 0x90], edx
jne 0x418a92
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x90]
mov dword [eax + 0x94], ebx
jmp 0x418940
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x418a70
mov ebx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov eax, dword [ebp - 0xc4]
test eax, eax
jne 0x418cdb
cmp dword [ebp - 0xb8], eax
je case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b7d
sub ecx, dword [edi + 0x74]
shl eax, 2
sar ecx, 1
mov dword [ebp - 0xc8], ecx
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xb4], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xac], eax
mov eax, edi
mov dword [ebp - 0xc0], edx
mov eax, dword [eax + 0x10]
sub eax, ebx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xb0], eax
mov eax, edi
mov edi, dword [eax + 0x94]
lea esp, [esp]
mov ecx, dword [eax + 0x10]
mov edx, esi
sub edx, dword [eax + 0x78]
sub ecx, ebx
mov eax, dword [eax + 0xc]
sar edx, 1
cmp dword [ebp - 0xa4], 0x88
mov dword [eax + ecx*4], edx
jb 0x418b3e
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0x9c], 2
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x90]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [ecx]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [ecx + eax*2]
push eax
push esi
call fcn.00417a50
mov ecx, eax
add esp, 0x1c
cmp ecx, 0xfffffc1a
jne 0x418bea
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x90]
mov eax, dword [eax + 0x74]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0xc8]
lea edx, [eax + ecx*2]
mov eax, dword [ebp - 0x8c]
mov ecx, 1
mov dword [ebp - 0x90], edx
mov dword [ebp - 0xb4], ecx
mov ecx, dword [eax + 0x80]
mov edi, dword [eax + 0x94]
mov eax, dword [eax + 0x84]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0xb4]
cmp esi, eax
je 0x418c62
mov esi, eax
mov eax, dword [ebp - 0x8c]
jmp 0x418b10
cmp ecx, 0xfffffc20
jne 0x418c29
mov edx, dword [ebp - 0x90]
movzx eax, word [edx + 2]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0x8c]
cmp dword [edx + 0x80], eax
jae 0x421856
mov edx, dword [ebp - 0x90]
cmp word [edx], 0x77
je 0x418c37
cmp word [eax], 0x77
jne 0x421856
jmp 0x418c37
test ecx, ecx
jne 0x421856
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0x94], edi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
mov dword [ebp - 0x90], edx
jne 0x418c72
mov eax, dword [ebp - 0x8c]
jmp 0x418b10
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x418c62
jmp 0x418cca
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
jne 0x418cca
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc0]
mov eax, dword [eax + 0xc]
mov dword [ecx + eax], edx
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xac]
mov eax, dword [eax + 0xc]
mov dword [ecx + eax + 4], edx
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xb0]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
sub ecx, ebx
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x90]
cmp dword [ebp - 0xb8], 0
jne 0x418cdb
test ecx, ecx
je case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov edx, dword [ebp - 0x90]
mov ecx, 0x88
mov ebx, edx
movzx eax, word [edx + 2]
add eax, eax
sub ebx, eax
mov dword [ebp - 0xb4], ebx
movzx eax, word [ebx]
cmp ax, cx
jae 0x418d28
mov edi, 0x81
cmp ax, di
je 0x418d28
mov dword [ebp - 0xc4], 0
jmp 0x418d3f
mov edi, dword [ebp - 0x9c]
mov ecx, dword [edi + 4]
mov edi, dword [edi]
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0x9c], edi
cmp eax, 0x7d
jb 0x418d52
mov ecx, pe_nt_image_headers32
cmp ax, cx
jbe 0x41f417
mov ecx, 0x82
cmp ax, cx
je 0x41f417
mov ecx, 0x85
cmp ax, cx
je 0x418d8c
mov ecx, 0x8a
cmp ax, cx
je 0x418d8c
mov ecx, 0x86
cmp ax, cx
je 0x418d8c
mov ecx, 0x8b
cmp ax, cx
jne 0x418e60
mov eax, dword [ebp - 0x8c]
movzx ebx, word [ebx + 4]
mov eax, dword [eax + 0xa8]
lea edx, [ebx + ebx]
test eax, eax
je 0x418dac
cmp dword [eax + 4], ebx
je 0x41f30c
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [eax + 0x94]
and eax, 0xffff0000
or eax, ebx
mov dword [edi + 0x94], eax
cmp edx, dword [edi + 0x14]
jl 0x418df2
mov ebx, dword [ebp - 0xb4]
or eax, 0x10000
mov dword [edi + 0x94], eax
mov edx, dword [ebp - 0x90]
jmp 0x418e6c
cmp edx, ecx
jle 0x418e11
mov eax, edi
mov eax, dword [eax + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x418e11
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x8c]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, ebx
mov ebx, dword [ebp - 0xb4]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, esi
mov eax, dword [ebp - 0x8c]
sub ecx, dword [eax + 0x78]
mov eax, dword [eax + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebp - 0xa0]
cmp ecx, edx
jg 0x418de7
lea ecx, [edx + 2]
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0xa0], ecx
jmp 0x418e6c
mov edi, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xa0]
movzx eax, word [edx]
cmp eax, 0x7b
je 0x41f3e9
cmp eax, 0x78
je 0x418e89
cmp esi, dword [ebp - 0xc4]
jne 0x41ee91
mov eax, 0x81
cmp word [ebx], ax
je 0x41f3a5
mov ebx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x48], 0
je 0x418ec8
cmp esi, dword [eax + 0x78]
je case.0x417bc2.157
jmp 0x418ec8
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x78]
jne case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x48], 0
je 0x418f00
cmp esi, dword [eax + 0x78]
je case.0x417bc2.157
mov ecx, dword [eax + 0x78]
cmp esi, ecx
je 0x418fa4
cmp esi, dword [eax + 0x7c]
je case.0x417bc2.157
mov edx, dword [eax + 0x18]
test edx, edx
je 0x418f55
cmp esi, ecx
jbe case.0x417bc2.157
push edi
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.004233c0
add esp, 0x14
test eax, eax
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov edi, dword [eax + 0x1c]
lea edx, [edi + edi]
lea eax, [edx + ecx]
cmp esi, eax
jb case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
mov ecx, esi
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne case.0x417bc2.157
cmp edi, 1
je 0x418fa6
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
jne case.0x417bc2.157
mov edx, dword [ebp - 0x90]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov ebx, eax
mov edx, dword [ebp - 0x90]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x98]
mov eax, dword [eax + 0x78]
lea eax, [eax + ecx*2]
cmp esi, eax
jmp 0x418ecb
mov edx, dword [ebp - 0x90]
add edx, 2
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x4190ae
mov edx, dword [eax + 0x18]
test edx, edx
je 0x419070
push edi
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.00423310
mov ebx, dword [ebp - 0x8c]
add esp, 0x14
test eax, eax
jne 0x4190df
cmp dword [ebx + 0x8c], 0
je case.0x417bc2.157
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb case.0x417bc2.157
cmp dword [ebx + 0x18], 0
jne case.0x417bc2.157
cmp dword [ebx + 0x1c], 2
jne case.0x417bc2.157
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne case.0x417bc2.157
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jmp 0x4214e0
mov edx, dword [eax + 0x1c]
mov ebx, dword [ebp - 0x8c]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x419023
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x419023
cmp edx, 1
je 0x4190df
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
jne 0x419023
mov edx, dword [ebp - 0x90]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp dword [eax + 0x4c], 0
jne case.0x417bc2.157
cmp dword [eax + 0x8c], 0
je 0x4190dd
cmp esi, dword [eax + 0x88]
jbe 0x4190dd
mov dword [eax + 0x68], 1
cmp dword [eax + 0x8c], 1
jg 0x4214e6
mov ebx, eax
mov edx, dword [ebp - 0x90]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x4c], 0
jne case.0x417bc2.157
cmp dword [eax + 0x5c], 0
je 0x419125
jmp 0x419111
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jb case.0x417bc2.157
jmp 0x4199a7
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x4191f3
mov edi, dword [ebp - 0x8c]
mov eax, dword [eax + 0x18]
add edi, 0x1c
test eax, eax
je 0x4191ad
push dword [ebp - 0x98]
push edi
push ecx
push eax
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne 0x4191d6
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je case.0x417bc2.157
lea eax, [esi + 2]
cmp eax, dword [ecx + 0x7c]
jb case.0x417bc2.157
cmp dword [ecx + 0x18], 0
jne case.0x417bc2.157
cmp dword [ecx + 0x1c], 2
jne case.0x417bc2.157
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne case.0x417bc2.157
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jmp 0x4214e0
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
mov ecx, dword [ebp - 0x8c]
ja 0x419160
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x419160
cmp edx, 1
je 0x4191d6
mov ax, word [esi + 2]
cmp ax, word [ecx + 0x36]
jne 0x419160
mov eax, dword [ebp - 0x8c]
mov ecx, dword [edi]
add ecx, ecx
mov eax, dword [eax + 0x7c]
sub eax, ecx
cmp esi, eax
jne 0x41915a
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x8c], 0
je 0x419218
cmp esi, dword [eax + 0x88]
jbe 0x419218
mov dword [eax + 0x68], 1
cmp dword [eax + 0x8c], 1
jg 0x4214e6
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov eax, dword [ebp - 0x8c]
test edi, edi
je 0x4193d1
cmp esi, dword [eax + 0x78]
je 0x419333
mov ax, word [esi - 2]
lea edx, [esi - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x419265
sub edx, 2
mov eax, dword [ebp - 0x8c]
cmp edx, dword [eax + 0x88]
jae 0x419279
mov dword [eax + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4192a4
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x58], 0
je 0x41930f
cmp ecx, 0x5f
jne 0x4192bd
lea edi, [ecx - 0x5e]
jmp 0x419335
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x4192df
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x419302
cmp eax, 3
jne 0x41932d
mov eax, dword [ebp - 0x8c]
mov edi, 1
jmp 0x419335
cmp ecx, 0x100
jae 0x41932d
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je 0x41932d
mov eax, dword [ebp - 0x8c]
mov edi, 1
jmp 0x419335
mov eax, dword [ebp - 0x8c]
xor edi, edi
cmp esi, dword [eax + 0x7c]
jb 0x419389
cmp dword [eax + 0x8c], 0
je 0x41935f
cmp esi, dword [eax + 0x88]
jbe 0x41935f
mov dword [eax + 0x68], 1
cmp dword [eax + 0x8c], 1
jg 0x4214e6
xor ecx, ecx
mov edx, dword [ebp - 0x90]
mov ax, word [edx]
add edx, 2
mov dword [ebp - 0x90], edx
cmp ax, 5
jne 0x419552
xor eax, eax
cmp ecx, edi
sete al
jmp 0x419559
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4193b4
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x58], 0
jne 0x419486
cmp ecx, 0x100
jae 0x41935f
jmp 0x41953b
cmp esi, dword [eax + 0x78]
jne 0x4193e0
mov edx, 0xff
jmp 0x41946e
cmp esi, dword [eax + 0x88]
ja 0x4193f9
mov ecx, dword [ebp - 0x8c]
lea eax, [esi - 2]
mov dword [ecx + 0x88], eax
mov eax, ecx
cmp dword [eax + 0x58], 0
je 0x4194f0
movzx ecx, word [esi - 2]
cmp ecx, 0x5f
jne 0x419416
lea edi, [ecx - 0x5e]
mov edx, 0xff
jmp 0x419470
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x419438
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x4194de
cmp eax, 3
je 0x4194de
mov edx, 0xff
mov eax, dword [ebp - 0x8c]
xor edi, edi
cmp esi, dword [eax + 0x7c]
jae 0x41933a
cmp dword [eax + 0x58], 0
je 0x419527
movzx ecx, word [esi]
cmp ecx, 0x5f
je 0x4194d4
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x4194ad
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x4194d4
cmp eax, 3
jne 0x41935f
mov ecx, 1
jmp 0x419361
mov eax, dword [ebp - 0x8c]
mov edi, 1
mov edx, 0xff
jmp 0x419470
movzx eax, word [esi - 2]
mov edx, 0xff
cmp ax, dx
ja 0x419468
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je 0x419468
mov eax, dword [ebp - 0x8c]
mov edi, 1
jmp 0x419470
movzx eax, word [esi]
cmp ax, dx
ja 0x41935f
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je 0x41935f
mov ecx, 1
jmp 0x419361
xor eax, eax
cmp ecx, edi
setne al
test eax, eax
jne case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
jmp 0x417b7d
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x4195a0
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x4195d7
push edi
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
jmp 0x4195d7
mov edx, dword [eax + 0x1c]
mov ebx, dword [ebp - 0x8c]
lea eax, [edx + edx]
mov ecx, dword [ebx + 0x7c]
sub ecx, eax
cmp esi, ecx
ja 0x4195d5
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x4195d5
cmp edx, 1
je case.0x417bc2.157
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x417bc2.157
mov eax, ebx
cmp dword [eax + 0x8c], 0
je 0x419623
mov ecx, dword [ebp - 0x8c]
lea eax, [esi + 2]
cmp eax, dword [ecx + 0x7c]
mov eax, ecx
jb 0x419623
cmp dword [eax + 0x18], 0
jne 0x419623
cmp dword [eax + 0x1c], 2
jne 0x419623
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
mov eax, ecx
jne 0x419623
mov dword [eax + 0x68], 1
cmp dword [eax + 0x8c], 1
jg 0x4214e6
jmp 0x419623
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x7c]
cmp esi, eax
jae 0x41f451
add esi, 2
test edi, edi
je 0x418ed1
cmp esi, eax
jae 0x418ed1
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x418ed1
mov edx, dword [ebp - 0x90]
add esi, 2
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
mov edx, dword [ebp - 0x90]
add esi, 2
add edx, 2
mov ebx, eax
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x4196e8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4196e2
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x8c]
cmp ecx, 0x100
jae 0x418ed1
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
jmp 0x418ecb
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419749
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x419743
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x8c]
cmp ecx, 0xff
ja case.0x417bc2.157
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x4197c5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4197bf
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x8c]
cmp ecx, 0x100
jae 0x418ed1
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
jmp 0x418ecb
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419826
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x419820
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x8c]
cmp ecx, 0xff
ja case.0x417bc2.157
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x4198a2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41989c
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x8c]
cmp ecx, 0x100
jae 0x418ed1
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
jmp 0x418ecb
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419903
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4198fd
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x8c]
cmp ecx, 0xff
ja case.0x417bc2.157
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
cmp esi, edx
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419981
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41997b
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x8c]
cmp ecx, 0xd
ja 0x419a15
je 0x4199a3
cmp ecx, 0xa
je 0x418ed1
jbe case.0x417bc2.157
cmp ecx, 0xc
jmp 0x419a26
cmp esi, edx
jb 0x4199ee
cmp dword [eax + 0x8c], 0
je 0x418ed1
cmp esi, dword [eax + 0x88]
jbe 0x418ed1
mov dword [eax + 0x68], 1
cmp dword [eax + 0x8c], 1
jg 0x4214e6
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp word [esi], 0xa
jne 0x418ed1
mov edx, dword [ebp - 0x90]
add esi, 2
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp ecx, 0x85
je 0x419a2c
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x6c], 0
jmp 0x418ecb
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419a7e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x419a7e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x180e
ja 0x419aec
je case.0x417bc2.157
cmp ecx, 0xa0
ja 0x419ac6
je case.0x417bc2.157
cmp ecx, 9
je case.0x417bc2.157
cmp ecx, 0x20
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp ecx, 0x1680
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp ecx, 0x205f
ja 0x419b38
je case.0x417bc2.157
cmp ecx, 0x2000
jb 0x418ed1
cmp ecx, 0x200a
jbe case.0x417bc2.157
cmp ecx, 0x202f
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp ecx, 0x3000
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419ba1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x419ba1
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x180e
ja 0x419bd9
je 0x418ed1
cmp ecx, 0xa0
ja 0x419bce
je 0x418ed1
cmp ecx, 9
je 0x418ed1
cmp ecx, 0x20
jmp 0x418ecb
cmp ecx, 0x1680
jmp 0x418ecb
cmp ecx, 0x205f
ja 0x419c0a
je 0x418ed1
cmp ecx, 0x2000
jb case.0x417bc2.157
cmp ecx, 0x200a
jbe 0x418ed1
cmp ecx, 0x202f
jmp 0x418ecb
cmp ecx, 0x3000
jmp 0x418ecb
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419c58
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x419c58
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x85
ja 0x419c92
je case.0x417bc2.157
cmp ecx, 0xa
jb 0x418ed1
cmp ecx, 0xd
jbe case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp ecx, 0x2028
jb 0x418ed1
cmp ecx, 0x2029
jbe case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
test edi, edi
je 0x419d07
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x419d07
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x85
ja 0x419d3b
je 0x418ed1
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41f457
movzx edi, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x419dac
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x419dac
movzx eax, word [esi]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add esi, 2
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x419dcf
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x90]
add ecx, eax
movzx eax, word [edx + 2]
movzx ecx, word [ecx*2 + 0x452d80]
cmp eax, 0xa
ja case.default.0x419dec
jmp dword [eax*4 + 0x421d0c]
cmp dword [ebp - 0xa4], 0xf
jmp 0x41a029
mov al, byte [ecx*8 + 0x44f501]
cmp al, 9
je 0x41a016
cmp al, 5
je 0x41a016
cmp al, 8
je 0x41a016
xor ecx, ecx
jmp 0x41a01b
movzx ecx, byte [ecx*8 + 0x44f501]
movzx eax, word [edx + 4]
xor edx, edx
cmp eax, dword [ecx*4 + 0x44ef08]
setne dl
xor eax, eax
cmp dword [ebp - 0xa4], 0x10
sete al
cmp edx, eax
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
add edx, 6
mov dword [ebp - 0x90], edx
jmp 0x417b7d
movzx eax, byte [ecx*8 + 0x44f501]
xor ecx, ecx
cmp word [edx + 4], ax
setne cl
xor eax, eax
cmp dword [ebp - 0xa4], 0x10
jmp 0x41a024
movzx eax, byte [ecx*8 + 0x44f500]
xor ecx, ecx
cmp word [edx + 4], ax
setne cl
xor eax, eax
cmp dword [ebp - 0xa4], 0x10
jmp 0x41a024
movzx eax, byte [ecx*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x41a016
cmp eax, 3
je 0x41a016
xor ecx, ecx
jmp 0x41a01b
cmp edi, 0x180e
ja 0x419f14
je case.0x419dec.0
cmp edi, 0x85
ja 0x419f00
je case.0x419dec.0
cmp edi, 9
jb case.0x419f34.8203
cmp edi, 0xd
jbe case.0x419dec.0
cmp edi, 0x20
jmp 0x419f4d
cmp edi, 0xa0
je case.0x419dec.0
cmp edi, 0x1680
jmp 0x419f4d
cmp edi, 0x202f
ja 0x419f3b
je case.0x419dec.0
add edi, 0xffffe000
cmp edi, 0x29
ja case.0x419f34.8203
movzx eax, byte [edi + 0x421d40]
jmp dword [eax*4 + 0x421d38]
cmp edi, 0x205f
je case.0x419dec.0
cmp edi, 0x3000
je case.0x419dec.0
movzx eax, byte [ecx*8 + 0x44f501]
xor ecx, ecx
cmp dword [eax*4 + 0x44ef08], 6
sete cl
jmp 0x41a01b
movzx eax, byte [ecx*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x41a016
cmp eax, 3
je 0x41a016
cmp edi, 0x5f
je 0x41a016
xor ecx, ecx
jmp 0x41a01b
movzx eax, word [edx + 4]
mov ecx, dword [eax*4 + 0x44f3c0]
lea eax, [eax*4 + 0x44f3c0]
cmp edi, ecx
jb 0x419fc1
lea eax, [eax + 4]
cmp edi, ecx
je 0x419fca
mov ecx, dword [eax]
cmp edi, ecx
jae 0x419fb4
cmp dword [ebp - 0xa4], 0x10
jmp 0x41a029
cmp dword [ebp - 0xa4], 0x10
jne case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
add edx, 6
mov dword [ebp - 0x90], edx
jmp 0x417b7d
cmp edi, 0x24
je 0x41a016
cmp edi, 0x40
je 0x41a016
cmp edi, 0x60
je 0x41a016
cmp edi, 0xa0
jb 0x41a00a
cmp edi, 0xd7ff
jbe 0x41a016
cmp edi, 0xe000
jae 0x41a016
xor ecx, ecx
jmp 0x41a01b
mov ecx, 1
xor eax, eax
cmp dword [ebp - 0xa4], 0xf
sete al
cmp ecx, eax
je case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
add edx, 6
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
mov dword [ebp - 0xc4], edi
cmp esi, edi
jae 0x41f457
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41a093
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41a093
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41a0b5
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ebx, byte [eax*8 + 0x44f502]
cmp esi, edi
jae 0x41a16d
nop
cmp dword [ebp - 0x98], 0
mov edi, 1
movzx ecx, word [esi]
je 0x41a10e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41a10e
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41a130
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ecx, byte [eax*8 + 0x44f502]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x44edbc], eax
je 0x41a167
lea esi, [esi + edi*2]
mov ebx, ecx
mov edi, dword [ebp - 0xc4]
cmp esi, edi
jb 0x41a0d0
jmp 0x41a16d
mov edi, dword [ebp - 0xc4]
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x418fa6
cmp esi, edi
jb 0x418fa6
cmp esi, dword [ebx + 0x88]
jbe 0x418fa6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
mov edx, dword [ebp - 0x90]
add edx, 2
mov dword [ebp - 0x90], edx
jmp 0x417b7d
mov edi, dword [ebp - 0x90]
xor eax, eax
cmp edx, 0x74
sete al
movzx ecx, word [edi + 2]
imul ecx, dword [ebx + 0x24]
movzx edx, word [edi + 4]
add edi, 6
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 0x30]
mov ebx, dword [ebx + 0x54]
neg ebx
mov dword [ebp - 0x90], edi
sbb ebx, ebx
xor edi, edi
neg ebx
lea ecx, [eax + ecx*2]
dec ebx
mov dword [ebp - 0xb8], ebx
test edx, edx
jle 0x41a293
movzx edi, word [ecx]
dec edx
add edi, edi
cmp edi, dword [ebp - 0xa0]
jge 0x41a222
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xc]
cmp dword [eax + edi*4], 0
jge 0x41a234
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x24]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x41a205
jmp 0x41a293
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + edi*4 + 4]
sub ebx, dword [eax + edi*4]
jmp 0x41a28d
xor eax, eax
cmp edx, 0x72
sete al
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x90]
movzx edi, word [eax + 2]
add eax, 4
add edi, edi
mov dword [ebp - 0x90], eax
cmp edi, dword [ebp - 0xa0]
jge 0x41a283
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + edi*4]
test ecx, ecx
js 0x41a283
mov ebx, dword [eax + edi*4 + 4]
sub ebx, ecx
jmp 0x41a28d
mov ebx, dword [ebx + 0x54]
neg ebx
sbb ebx, ebx
neg ebx
dec ebx
mov dword [ebp - 0xb8], ebx
mov eax, dword [ebp - 0x90]
movzx edx, word [eax]
mov ecx, edx
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x41a2b1
movzx eax, byte [eax + 0x421d74]
jmp dword [eax*4 + 0x421d6c]
movsx eax, byte [ecx + 0x44e44a]
lea edx, [ecx - 0x62]
add dword [ebp - 0x90], 2
and edx, 1
movsx ebx, byte [ecx + 0x44e43e]
mov dword [ebp - 0xc8], edx
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0xc0], eax
test eax, eax
jne 0x41a32a
mov dword [ebp - 0xc0], VariantClear
jmp 0x41a32a
xor eax, eax
mov ecx, SysReAllocString
cmp edx, 0x69
mov edx, dword [ebp - 0x90]
sete al
mov dword [ebp - 0xc8], eax
movzx eax, word [edx + 4]
movzx ebx, word [edx + 2]
test eax, eax
cmove eax, ecx
add edx, 6
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x90], edx
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
je 0x417f80
jns 0x41a342
test ebx, ebx
je 0x417f80
mov dword [ebp - 0xc4], 1
cmp ebx, 1
jl 0x41a38a
push dword [ebp - 0xb4]
push dword [ebp - 0x8c]
push ecx
push esi
push edi
call fcn.00422050
add esp, 0x14
test eax, eax
js 0x41f483
mov ecx, dword [ebp - 0xb8]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0xc4]
inc eax
mov dword [ebp - 0xc4], eax
cmp eax, ebx
jle 0x41a351
mov eax, dword [ebp - 0xc0]
cmp ebx, eax
je 0x417b71
cmp dword [ebp - 0xc8], 0
je 0x41f4a9
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
lea esp, [esp]
cmp ebx, dword [ebp - 0xc0]
jge case.0x417bc2.157
push dword [ebp - 0xb4]
push dword [ebp - 0x8c]
push dword [ebp - 0xb8]
push esi
push edi
call fcn.00422050
add esp, 0x14
test eax, eax
js 0x41f483
lea esi, [esi + eax*2]
inc ebx
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41a3e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
push dword [ebp - 0xb4]
push dword [ebp - 0x8c]
push ebx
push esi
push edi
call fcn.00422050
add esp, 0x14
test eax, eax
js 0x41f483
lea esi, [esi + eax*2]
jmp 0x417b71
mov edi, dword [ebp - 0x90]
movzx ecx, word [edi + 0x22]
lea ebx, [edi + 2]
add edi, 0x22
mov dword [ebp - 0xb4], ebx
mov edx, ecx
mov dword [ebp - 0x90], edi
lea eax, [edx - 0x62]
cmp eax, 0xb
ja case.default.0x41a4ad
movzx eax, byte [eax + 0x421d84]
jmp dword [eax*4 + 0x421d7c]
lea eax, [edx - 0x62]
add edi, 2
mov dword [ebp - 0x90], edi
cmp eax, 8
jae 0x41a4d2
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x94], ecx
jmp 0x41a4dc
mov dword [ebp - 0xc0], 1
movsx ecx, byte [eax + 0x44e4a0]
movsx eax, byte [eax + 0x44e4ac]
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xb8], eax
test eax, eax
jne 0x41a55a
mov dword [ebp - 0xb8], VariantClear
jmp 0x41a55a
xor eax, eax
mov edx, SysReAllocString
cmp ecx, 0x69
sete al
mov dword [ebp - 0x94], eax
xor eax, eax
cmp ecx, 0x6d
movzx ecx, word [edi + 2]
sete al
mov dword [ebp - 0xc0], eax
movzx eax, word [edi + 4]
test eax, eax
cmove eax, edx
add edi, 6
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x90], edi
jmp 0x41a554
mov dword [ebp - 0xb8], 1
mov ecx, 1
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0x98]
mov edi, 1
test edx, edx
je 0x41a5fa
cmp ecx, edi
jl 0x41a662
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
mov edi, edi
cmp esi, ebx
jae 0x41f451
movzx edx, word [esi]
add esi, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41a5b8
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp edx, 0xff
jbe 0x41a5cf
cmp dword [ebp - 0xa4], 0x6e
je case.0x417bc2.157
jmp 0x41a5f3
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xb4]
test byte [edx + ecx], al
je case.0x417bc2.157
mov ecx, dword [ebp - 0xac]
inc edi
cmp edi, ecx
jle 0x41a580
jmp 0x41a656
cmp ecx, 1
jl 0x41a662
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x41f451
movzx edx, word [esi]
add esi, 2
cmp edx, 0xff
jbe 0x41a62d
cmp dword [ebp - 0xa4], 0x6e
je case.0x417bc2.157
jmp 0x41a651
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xb4]
test byte [edx + ecx], al
je case.0x417bc2.157
mov ecx, dword [ebp - 0xac]
inc edi
cmp edi, ecx
jle 0x41a608
mov edx, dword [ebp - 0x98]
mov ebx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb8]
cmp ecx, eax
je 0x417b71
cmp dword [ebp - 0x94], 0
jne 0x41f674
mov edi, dword [ebp - 0x98]
mov ebx, esi
mov dword [ebp - 0xb0], ebx
test edi, edi
je 0x41a79a
cmp ecx, eax
jge 0x41a742
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
jmp 0x41a6b0
mov edi, 1
cmp esi, ebx
jae 0x41a766
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41a6ed
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
cmp edx, 0xff
jbe 0x41a700
cmp dword [ebp - 0xa4], 0x6e
je 0x41a736
jmp 0x41a720
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xb4]
test byte [edx + ecx], al
je 0x41a736
mov ecx, dword [ebp - 0xac]
inc ecx
lea esi, [esi + edi*2]
mov dword [ebp - 0xac], ecx
cmp ecx, dword [ebp - 0xb8]
jl 0x41a6b0
mov ebx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x98]
mov edx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
je 0x41f58e
mov ebx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
jmp 0x417b90
mov edx, dword [ebp - 0x8c]
cmp dword [edx + 0x8c], 0
je 0x41a78c
cmp esi, dword [edx + 0x88]
jbe 0x41a78c
mov dword [edx + 0x68], edi
cmp dword [edx + 0x8c], edi
jg 0x4214e6
mov ebx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x98]
jmp 0x41a748
mov edx, dword [ebp - 0x8c]
cmp ecx, eax
jge 0x41a7cf
mov edi, dword [edx + 0x7c]
cmp esi, edi
jae 0x41a823
movzx edx, word [esi]
cmp edx, 0xff
jbe 0x41a7ed
cmp dword [ebp - 0xa4], 0x6e
jne 0x41a813
mov edx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x98]
cmp dword [ebp - 0xc0], 0
je 0x41f621
mov ebx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
jmp 0x417b90
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xb4]
test byte [edx + ecx], al
je 0x41a7c3
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb8]
inc ecx
add esi, 2
mov dword [ebp - 0xac], ecx
cmp ecx, eax
jl 0x41a7a7
jmp 0x41a7c3
mov edx, dword [ebp - 0x8c]
cmp dword [edx + 0x8c], 0
je 0x41a7c9
cmp esi, dword [edx + 0x88]
jbe 0x41a7c9
mov dword [edx + 0x68], 1
cmp dword [edx + 0x8c], 1
jg 0x4214e6
jmp 0x41a7c9
mov edi, dword [ebp - 0x90]
lea eax, [edi + 4]
mov dword [ebp - 0xa4], eax
movzx eax, word [edi + 2]
movzx ecx, word [edi + eax*2]
lea edi, [edi + eax*2]
mov edx, ecx
mov dword [ebp - 0x90], edi
lea eax, [edx - 0x62]
cmp eax, 0xb
ja case.default.0x41a888
movzx eax, byte [eax + 0x421d98]
jmp dword [eax*4 + 0x421d90]
lea eax, [edx - 0x62]
add edi, 2
mov dword [ebp - 0x90], edi
cmp eax, 8
jae 0x41a8ad
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x94], ecx
jmp 0x41a8b7
mov dword [ebp - 0xc0], 1
movsx ebx, byte [eax + 0x44e4a0]
movsx eax, byte [eax + 0x44e4ac]
mov dword [ebp - 0xb4], eax
test eax, eax
jne 0x41a927
mov dword [ebp - 0xb4], VariantClear
jmp 0x41a927
movzx ebx, word [edi + 2]
xor eax, eax
cmp ecx, 0x69
sete al
mov dword [ebp - 0x94], eax
xor eax, eax
cmp ecx, 0x6d
mov ecx, SysReAllocString
sete al
mov dword [ebp - 0xc0], eax
movzx eax, word [edi + 4]
test eax, eax
cmove eax, ecx
add edi, 6
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x90], edi
jmp 0x41a927
mov edi, 1
mov dword [ebp - 0xb4], edi
mov ebx, edi
mov edi, 1
cmp ebx, edi
jl 0x41a996
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41ff81
movzx ecx, word [esi]
add esi, 2
mov edx, dword [ebp - 0x98]
test edx, edx
je 0x41a979
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41a979
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
push edx
push dword [ebp - 0xa4]
push ecx
call fcn.004235a0
add esp, 0xc
test eax, eax
je case.0x417bc2.157
inc edi
cmp edi, ebx
jle 0x41a930
mov eax, dword [ebp - 0xb4]
cmp ebx, eax
je 0x417b71
cmp dword [ebp - 0x94], 0
jne 0x41f80e
mov edi, esi
mov dword [ebp - 0xb8], edi
cmp ebx, eax
jge 0x41aa35
mov eax, dword [ebp - 0x8c]
mov edi, 1
cmp esi, dword [eax + 0x7c]
jae 0x41aae1
mov edx, dword [ebp - 0x98]
movzx ecx, word [esi]
test edx, edx
je 0x41aa0f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41aa0f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
push edx
push dword [ebp - 0xa4]
push ecx
call fcn.004235a0
add esp, 0xc
test eax, eax
je 0x41aa2f
inc ebx
lea esi, [esi + edi*2]
cmp ebx, dword [ebp - 0xb4]
jl 0x41a9c1
mov edi, dword [ebp - 0xb8]
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov eax, esi
sub esi, 2
cmp eax, edi
je case.0x417bc2.157
cmp dword [ebp - 0x98], 0
je 0x41aaa5
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41aaa5
sub esi, 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41aa77
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ebx, eax
cmp dword [ebx + 0x8c], 0
je 0x41ab03
cmp esi, dword [ebx + 0x88]
jbe 0x41ab03
mov dword [ebx + 0x68], edi
cmp dword [ebx + 0x8c], edi
jg 0x4214e6
mov edi, dword [ebp - 0xb8]
jmp 0x41aa3b
test edi, edi
je 0x41ab7a
mov edi, dword [ebp - 0x90]
mov eax, 0xfc00
add edi, 2
mov ecx, 0xd800
mov edx, 1
mov dword [ebp - 0x90], edi
and ax, word [edi]
cmp ax, cx
mov eax, 2
cmove edx, eax
mov eax, dword [ebx + 0x7c]
sub eax, esi
sar eax, 1
cmp edx, eax
jg 0x41f8f7
test edx, edx
jle 0x417b77
mov cx, word [edi]
dec edx
mov ax, word [esi]
add edi, 2
add esi, 2
mov dword [ebp - 0x90], edi
cmp cx, ax
jne case.0x417bc2.157
test edx, edx
jg 0x41ab55
jmp 0x417b77
mov eax, dword [ebx + 0x7c]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jl 0x41f90f
mov edx, dword [ebp - 0x90]
mov ax, word [esi]
add esi, 2
cmp word [edx + 2], ax
jne case.0x417bc2.157
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b90
cmp esi, dword [ebx + 0x7c]
jae 0x41f90f
test edi, edi
je 0x41acce
mov edx, dword [ebp - 0x90]
mov ecx, 1
add edx, 2
movzx ebx, word [edx]
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41abfe
movzx eax, word [edx + 2]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or ebx, eax
mov ecx, 2
add ebx, 0x10000
cmp ebx, 0x80
jae 0x41ac4a
movzx ecx, word [esi]
cmp ecx, 0xff
ja 0x41ac1e
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x3c]
movzx eax, byte [eax + ebx]
cmp eax, ecx
jne case.0x417bc2.157
mov ebx, dword [ebp - 0x8c]
add edx, 2
add esi, 2
mov dword [ebp - 0x90], edx
jmp 0x417b90
movzx edi, word [esi]
add esi, 2
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41ac7a
movzx eax, word [esi]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add esi, 2
lea edx, [edx + ecx*2]
mov dword [ebp - 0x90], edx
cmp ebx, edi
je 0x417f80
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x41acae
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
mov eax, dword [eax*8 + 0x44f504]
add eax, ebx
cmp edi, eax
jne case.0x417bc2.157
jmp 0x417b71
mov eax, dword [ebp - 0x90]
mov ecx, 0xff
movzx eax, word [eax + 2]
cmp ax, cx
ja 0x41acf2
mov ecx, eax
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + ecx]
mov ecx, 0xff
jmp 0x41acf4
mov edx, eax
movzx eax, word [esi]
cmp ax, cx
ja 0x41ad05
mov ecx, eax
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + ecx]
cmp edx, eax
jne case.0x417bc2.157
mov edx, dword [ebp - 0x90]
add esi, 2
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov eax, dword [ebp - 0x90]
movzx eax, word [eax + 2]
mov dword [ebp - 0xb0], eax
mov edi, eax
mov eax, dword [ebp - 0x90]
add eax, 4
mov dword [ebp - 0x90], eax
jmp 0x41ae1b
mov dword [ebp - 0xc0], 1
mov eax, dword [ebp - 0x90]
xor edi, edi
mov dword [ebp - 0xac], edi
movzx eax, word [eax + 2]
mov dword [ebp - 0xb0], eax
cmp ecx, 0x28
je 0x41ad7c
mov dword [ebp - 0x94], edi
cmp ecx, 0x35
jne 0x41ad86
mov dword [ebp - 0x94], 1
mov eax, dword [ebp - 0x90]
add eax, 4
mov dword [ebp - 0x90], eax
jmp 0x41ae21
xor edi, edi
mov dword [ebp - 0xb0], VariantClear
mov eax, dword [ebp - 0x90]
add eax, 2
mov dword [ebp - 0xc0], 1
mov dword [ebp - 0x90], eax
jmp 0x41ae1b
mov edi, 1
jmp 0x41ad9c
xor edi, edi
mov dword [ebp - 0xb0], 1
jmp 0x41ada6
cmp edx, 0x2e
mov ecx, edx
sbb eax, eax
add dword [ebp - 0x90], 2
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov ebx, ecx
and ebx, 1
mov dword [ebp - 0x94], ebx
movsx eax, byte [ecx + 0x44e4ac]
movsx edi, byte [ecx + 0x44e4a0]
test eax, eax
mov ecx, SysReAllocString
cmove eax, ecx
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xac], edi
mov ecx, dword [ebp - 0x98]
movzx ebx, word [eax]
mov dword [ebp - 0xb4], ebx
test ecx, ecx
je 0x41b2a5
mov dword [ebp - 0xc4], eax
mov ecx, 1
mov eax, ebx
mov dword [ebp - 0xb8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41ae88
mov eax, dword [ebp - 0x90]
and ebx, 0x3ff
shl ebx, 0xa
mov ecx, 2
mov dword [ebp - 0xb8], ecx
movzx eax, word [eax + 2]
and eax, 0x3ff
or ebx, eax
add ebx, 0x10000
mov dword [ebp - 0xb4], ebx
mov edx, dword [ebp - 0xa4]
lea eax, [ecx + ecx]
add dword [ebp - 0x90], eax
cmp ecx, 1
jle 0x41b2b0
cmp edx, 0x2e
jb 0x41aef0
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x41aec8
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
mov eax, dword [eax*8 + 0x44f504]
add eax, ebx
cmp eax, ebx
je 0x41aef0
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.00423490
add esp, 8
mov ebx, eax
jmp 0x41aef2
xor ebx, ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xc8], 1
cmp edi, 1
jl 0x41b054
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp - 0xb8]
mov ecx, dword [eax + 0x7c]
mov eax, ecx
lea edx, [edi + edi]
mov dword [ebp - 0xa4], ecx
sub eax, edx
mov dword [ebp - 0xd4], eax
jmp 0x41af36
mov ebx, dword [ebp - 0xb4]
cmp esi, eax
ja 0x41afa7
mov edx, dword [ebp - 0xc4]
add edi, edi
mov ecx, esi
sub edi, 4
jb 0x41af61
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41af66
add ecx, 4
add edx, 4
sub edi, 4
jae 0x41af50
cmp edi, 0xfffffffc
je 0x41af93
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41afa1
cmp edi, 0xfffffffd
je 0x41af93
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41afa1
cmp edi, 0xfffffffe
je 0x41af93
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41afa1
cmp edi, 0xffffffff
je 0x41af93
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41afa1
mov edi, dword [ebp - 0xb8]
lea esi, [esi + edi*2]
jmp 0x41b02b
mov ecx, dword [ebp - 0xa4]
test ebx, ebx
jle 0x41fadb
add ebx, ebx
mov eax, ecx
sub eax, ebx
cmp esi, eax
ja 0x41fadb
mov ecx, dword [ebp - 0xb4]
lea edx, [ebp - 0x10]
lea edi, [ecx + ecx]
mov ecx, esi
sub edi, 4
jb 0x41afe1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41afe6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x41afd0
cmp edi, 0xfffffffc
je 0x41b023
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41fadb
cmp edi, 0xfffffffd
je 0x41b023
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41fadb
cmp edi, 0xfffffffe
je 0x41b023
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41fadb
cmp edi, 0xffffffff
je 0x41b023
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41fadb
mov edi, dword [ebp - 0xb8]
add esi, ebx
mov eax, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xac]
inc eax
mov ecx, dword [ebp - 0xa4]
cmp eax, ebx
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xd4]
jle 0x41af30
jmp 0x41b05a
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x98]
cmp ebx, eax
je 0x41a7dc
cmp dword [ebp - 0x94], 0
jne 0x41f93b
mov edi, esi
mov dword [ebp - 0x94], edi
cmp ebx, eax
jge 0x41b1ca
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp - 0xb8]
mov ecx, dword [eax + 0x7c]
mov eax, ecx
lea edx, [edi + edi]
mov dword [ebp - 0xa4], ecx
sub eax, edx
mov dword [ebp - 0xd4], eax
lea ecx, [ecx]
cmp esi, eax
ja 0x41b11a
mov edx, dword [ebp - 0xc4]
add edi, edi
mov ecx, esi
sub edi, 4
jb 0x41b0d4
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41b0d9
add ecx, 4
add edx, 4
sub edi, 4
jae 0x41b0c3
cmp edi, 0xfffffffc
je 0x41b106
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41b114
cmp edi, 0xfffffffd
je 0x41b106
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41b114
cmp edi, 0xfffffffe
je 0x41b106
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41b114
cmp edi, 0xffffffff
je 0x41b106
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41b114
mov edi, dword [ebp - 0xb8]
lea esi, [esi + edi*2]
jmp 0x41b1a5
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xb4]
test edx, edx
jle 0x41b26a
lea ebx, [edx + edx]
mov eax, ecx
sub eax, ebx
cmp esi, eax
ja 0x41b26a
lea edi, [edx + edx]
mov ecx, esi
lea edx, [ebp - 0x10]
sub edi, 4
jb 0x41b155
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41b15a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x41b144
cmp edi, 0xfffffffc
je 0x41b197
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41b26a
cmp edi, 0xfffffffd
je 0x41b197
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41b26a
cmp edi, 0xfffffffe
je 0x41b197
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41b26a
cmp edi, 0xffffffff
je 0x41b197
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41b26a
mov edi, dword [ebp - 0xb8]
add esi, ebx
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xd4]
inc ebx
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0xac], ebx
cmp ebx, dword [ebp - 0xb0]
jl 0x41b0b0
mov edi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
jbe 0x41b22c
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41b228
sub esi, 2
cmp esi, edi
ja 0x41b1e1
mov edi, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x9c]
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x98], eax
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jb 0x417b27
inc dword [edi]
mov eax, 0xfffffff8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41b29a
cmp esi, dword [ebx + 0x7c]
jb 0x41b29a
cmp esi, dword [ebx + 0x88]
jbe 0x41b29a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
mov edi, dword [ebp - 0x94]
jmp 0x41b1d0
add eax, 2
mov dword [ebp - 0x90], eax
jmp 0x41b2b6
mov ecx, dword [ebp - 0x98]
cmp edx, 0x2e
jb 0x41b43b
test ecx, ecx
je 0x41b300
cmp ebx, 0x7f
jbe 0x41b300
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x41b2eb
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
mov edi, dword [eax*8 + 0x44f504]
add edi, ebx
jmp 0x41b319
cmp ebx, 0xff
ja 0x41b317
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx + 0x40]
movzx edi, byte [eax + ebx]
jmp 0x41b31f
mov edi, ebx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0xac]
mov ecx, 1
cmp eax, ecx
jl 0x41b356
mov edx, dword [edx + 0x7c]
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
cmp ebx, eax
je 0x41b348
cmp edi, eax
jne case.0x417bc2.157
mov eax, dword [ebp - 0xac]
inc ecx
add esi, 2
cmp ecx, eax
jle 0x41b331
mov ecx, dword [ebp - 0xb0]
cmp eax, ecx
je 0x417b71
cmp dword [ebp - 0x94], 0
jne 0x41fafc
mov ebx, esi
cmp eax, ecx
jge 0x41b3b1
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xb4]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x41b40b
movzx eax, word [esi]
cmp edx, eax
je 0x41b399
cmp edi, eax
jne 0x41b3b1
mov eax, dword [ebp - 0xac]
add esi, 2
inc eax
mov dword [ebp - 0xac], eax
cmp eax, dword [ebp - 0xb0]
jl 0x41b386
mov edi, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b71
cmp esi, ebx
je 0x41b232
lea esp, [esp]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
sub esi, 2
test eax, eax
jne 0x41b259
cmp esi, ebx
jne 0x41b3d0
jmp 0x41b232
mov edi, dword [ebp - 0x8c]
cmp dword [edi + 0x8c], 0
je 0x41b3b7
cmp esi, dword [edi + 0x88]
jbe 0x41b3b7
mov dword [edi + 0x68], 1
cmp dword [edi + 0x8c], 1
jg 0x4214e6
jmp 0x41b3b7
mov edx, dword [ebp - 0xac]
mov ecx, 1
cmp edx, ecx
jl 0x41b481
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp - 0xac]
mov edx, dword [eax + 0x7c]
lea esp, [esp]
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
add esi, 2
cmp ebx, eax
jne case.0x417bc2.157
inc ecx
cmp ecx, edi
jle 0x41b460
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x98]
cmp edx, eax
je 0x41a7dc
cmp dword [ebp - 0x94], 0
jne 0x41fba6
mov edi, esi
cmp edx, eax
jge 0x41b4c8
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x41b51e
movzx eax, word [esi]
cmp ebx, eax
jne 0x41b4c8
inc edx
add esi, 2
cmp edx, dword [ebp - 0xb0]
jl 0x41b4b1
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
je 0x41b22c
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
sub esi, 2
test eax, eax
jne 0x41b259
cmp esi, edi
jne 0x41b4e3
jmp 0x41b22c
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41b4ce
cmp esi, dword [ebx + 0x88]
jbe 0x41b4ce
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
jmp 0x41b4ce
cmp esi, dword [ebx + 0x7c]
jae 0x41fc4c
test edi, edi
je 0x41b640
mov ecx, dword [ebp - 0x90]
movzx edi, word [ecx + 2]
add ecx, 4
mov eax, edi
mov dword [ebp - 0x90], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41b59f
movzx eax, word [ecx]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add ecx, 2
mov dword [ebp - 0x90], ecx
movzx ebx, word [esi]
add esi, 2
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41b5cf
movzx eax, word [esi]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or ebx, eax
add ebx, 0x10000
add esi, 2
cmp edx, 0x1f
jne 0x41b5db
cmp edi, ebx
jmp 0x417b6b
cmp edi, 0x7f
jbe 0x41b618
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x41b603
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
mov eax, dword [eax*8 + 0x44f504]
add eax, edi
jmp 0x41b631
cmp edi, 0xff
ja 0x41b62f
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x40]
movzx eax, byte [eax + edi]
jmp 0x41b631
mov eax, edi
cmp edi, ebx
je case.0x417bc2.157
cmp eax, ebx
jmp 0x417b6b
mov eax, dword [ebp - 0x90]
movzx edx, word [esi]
add esi, 2
movzx ecx, word [eax + 2]
cmp ecx, edx
je case.0x417bc2.157
cmp dword [ebp - 0xa4], 0x20
jne 0x41b678
cmp ecx, 0xff
ja 0x41b670
mov eax, dword [ebx + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x417bc2.157
mov edx, dword [ebp - 0x90]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x417b90
mov ecx, dword [ebp - 0x90]
movzx eax, word [ecx + 2]
add ecx, 4
mov ebx, eax
jmp 0x41b7a0
mov eax, dword [ebp - 0x90]
xor ebx, ebx
movzx eax, word [eax + 2]
mov dword [ebp - 0xa4], eax
cmp ecx, 0x42
je 0x41b6c2
mov dword [ebp - 0x94], ebx
cmp ecx, 0x4f
jne 0x41b6cc
mov dword [ebp - 0x94], 1
mov ecx, dword [ebp - 0x90]
add ecx, 4
jmp 0x41b7a6
mov ecx, dword [ebp - 0x90]
xor ebx, ebx
mov dword [ebp - 0xc0], 1
add ecx, 2
mov dword [ebp - 0xa4], VariantClear
jmp 0x41b7a6
mov ecx, dword [ebp - 0x90]
mov ebx, 1
mov dword [ebp - 0xc0], 1
add ecx, 2
mov dword [ebp - 0xa4], VariantClear
jmp 0x41b7a6
mov ecx, dword [ebp - 0x90]
xor ebx, ebx
mov dword [ebp - 0xc0], 1
add ecx, 2
mov dword [ebp - 0xa4], 1
jmp 0x41b7a6
mov ecx, dword [ebp - 0x90]
xor ebx, ebx
mov dword [ebp - 0xc0], 1
movzx eax, word [ecx + 2]
add ecx, 4
jmp 0x41b7a0
cmp edx, 0x48
mov ecx, edx
sbb eax, eax
add dword [ebp - 0x90], 2
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, ecx
and eax, 1
mov dword [ebp - 0x94], eax
movsx eax, byte [ecx + 0x44e4ac]
movsx ebx, byte [ecx + 0x44e4a0]
test eax, eax
mov ecx, SysReAllocString
cmove eax, ecx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa4], eax
movzx edi, word [ecx]
add ecx, 2
cmp dword [ebp - 0x98], 0
mov dword [ebp - 0xac], edi
mov dword [ebp - 0x90], ecx
je 0x41b7f7
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41b7f7
movzx eax, word [ecx]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add ecx, 2
mov dword [ebp - 0xac], edi
mov dword [ebp - 0x90], ecx
cmp edx, 0x48
mov edx, dword [ebp - 0x98]
jb 0x41bb2a
test edx, edx
je 0x41b8d7
cmp edi, 0x7f
jbe 0x41b8d7
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x41b83a
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x98]
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
mov edi, dword [eax*8 + 0x44f504]
add edi, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xb8], edi
test edx, edx
je 0x41b8f5
mov edx, 1
cmp ebx, edx
jl 0x41b92e
mov edi, dword [ecx + 0x7c]
jmp 0x41b880
cmp esi, edi
jae 0x41ff32
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41b8b8
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp dword [ebp - 0xac], ecx
je case.0x417bc2.157
cmp dword [ebp - 0xb8], ecx
je case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41b880
jmp 0x41b92e
cmp edi, 0xff
ja 0x41b857
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ecx + 0x40]
movzx edi, byte [eax + edi]
jmp 0x41b85d
mov ecx, 1
cmp ebx, ecx
jl 0x41b934
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
cmp dword [ebp - 0xac], eax
je case.0x417bc2.157
cmp edi, eax
je case.0x417bc2.157
inc ecx
add esi, 2
cmp ecx, ebx
jle 0x41b907
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa4]
cmp ebx, eax
je 0x417b71
cmp dword [ebp - 0x94], 0
jne 0x41fc8f
mov edi, esi
mov dword [ebp - 0xb4], edi
test edx, edx
je 0x41ba75
cmp ebx, eax
jge 0x41b9cf
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
lea esp, [esp]
mov edx, 1
cmp esi, edi
jae 0x41ba44
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41b9ad
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp dword [ebp - 0xac], ecx
je 0x41b9c9
cmp dword [ebp - 0xb8], ecx
je 0x41b9c9
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xa4]
jl 0x41b970
mov edi, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
jbe 0x41b22c
lea ebx, [ebx]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41ba3b
sub esi, 2
cmp esi, edi
ja 0x41b9f0
jmp 0x41b22c
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41ba6a
cmp esi, dword [ebx + 0x88]
jbe 0x41ba6a
mov dword [ebx + 0x68], edx
cmp dword [ebx + 0x8c], edx
jg 0x4214e6
mov edi, dword [ebp - 0xb4]
jmp 0x41b9d5
cmp ebx, eax
jge 0x41baa7
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xb8]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x41bafd
movzx eax, word [esi]
cmp dword [ebp - 0xac], eax
je 0x41baa7
cmp edx, eax
je 0x41baa7
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xa4]
jl 0x41ba88
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
je 0x41b22c
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
sub esi, 2
cmp esi, edi
jne 0x41bac2
jmp 0x41b22c
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41baad
cmp esi, dword [ebx + 0x88]
jbe 0x41baad
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
jmp 0x41baad
test edx, edx
je 0x41bca6
mov edx, 1
cmp ebx, edx
jl 0x41bb99
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41bb7c
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp dword [ebp - 0xac], ecx
je case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41bb44
mov edi, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa4]
cmp ebx, eax
je 0x417b71
cmp dword [ebp - 0x94], 0
jne 0x41fdf0
mov edi, esi
mov dword [ebp - 0xb4], edi
test edx, edx
je 0x41bd14
cmp ebx, eax
jge 0x41bc37
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
jmp 0x41bbe0
mov edx, 1
cmp esi, edi
jae 0x41bce3
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41bc1d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp dword [ebp - 0xac], ecx
je 0x41bc31
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xa4]
jl 0x41bbe0
mov edi, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
jbe 0x41b22c
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41bc9d
sub esi, 2
cmp esi, edi
ja 0x41bc52
jmp 0x41b22c
mov ecx, 1
cmp ebx, ecx
jl 0x41bcd8
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
add esi, 2
cmp edi, eax
je case.0x417bc2.157
inc ecx
cmp ecx, ebx
jle 0x41bcb8
jmp 0x41bb93
mov ecx, dword [ebp - 0x90]
jmp 0x41bb9f
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41bd09
cmp esi, dword [ebx + 0x88]
jbe 0x41bd09
mov dword [ebx + 0x68], edx
cmp dword [ebx + 0x8c], edx
jg 0x4214e6
mov edi, dword [ebp - 0xb4]
jmp 0x41bc3d
cmp ebx, eax
jge 0x41bd3e
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xac]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x41bd9b
movzx eax, word [esi]
cmp edx, eax
je 0x41bd3e
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xa4]
jl 0x41bd27
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
je 0x41b22c
lea esp, [esp]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
sub esi, 2
cmp esi, edi
jne 0x41bd60
jmp 0x41b22c
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41bd44
cmp esi, dword [ebx + 0x88]
jbe 0x41bd44
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
jmp 0x41bd44
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x94], 1
movzx eax, word [edx + 2]
add edx, 4
mov ebx, eax
jmp 0x41be9e
mov edx, dword [ebp - 0x90]
xor ebx, ebx
cmp ecx, 0x5c
mov dword [ebp - 0xb0], 0
sete bl
movzx eax, word [edx + 2]
add edx, 4
mov dword [ebp - 0x94], ebx
xor ebx, ebx
jmp 0x41bea4
xor ebx, ebx
mov dword [ebp - 0xac], VariantClear
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0xc0], 1
add edx, 2
mov dword [ebp - 0xb0], ebx
jmp 0x41beaa
mov ebx, 1
jmp 0x41be17
xor ebx, ebx
mov dword [ebp - 0xac], 1
jmp 0x41be21
mov edx, dword [ebp - 0x90]
xor ebx, ebx
mov dword [ebp - 0xc0], 1
movzx eax, word [edx + 2]
add edx, 4
jmp 0x41be9e
lea eax, [edx - 0x55]
mov ecx, SysReAllocString
mov edx, dword [ebp - 0x90]
mov ebx, eax
and ebx, 1
add edx, 2
mov dword [ebp - 0x94], ebx
movsx ebx, byte [eax + 0x44e4a0]
movsx eax, byte [eax + 0x44e4ac]
test eax, eax
cmove eax, ecx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], eax
movzx edi, word [edx]
add edx, 2
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0x90], edx
cmp edi, 0x10
je 0x41bed1
cmp edi, 0xf
je 0x41bed1
mov ecx, dword [ebp - 0xbc]
or eax, 0xffffffff
jmp 0x41befb
movzx eax, word [edx]
xor ecx, ecx
cmp edi, 0xf
movzx edi, word [edx + 2]
mov dword [ebp - 0xd0], edi
mov edi, dword [ebp - 0xa4]
sete cl
add edx, 4
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0xc4], eax
test ebx, ebx
jle 0x41c038
test eax, eax
js 0x41c6cc
cmp eax, 0xa
ja case.default.0x419dec
jmp dword [eax*4 + 0x421da4]
test ecx, ecx
jne case.0x417bc2.157
mov ecx, 1
cmp ebx, ecx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
nop
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41bf66
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41bf66
add esi, 2
inc ecx
cmp ecx, ebx
jle 0x41bf40
jmp 0x41c038
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41bfc7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41bfc7
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41bfe9
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp eax, 9
je 0x41c00e
cmp eax, 5
je 0x41c00e
cmp eax, 8
je 0x41c00e
xor eax, eax
jmp 0x41c013
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
inc edi
cmp edi, dword [ebp - 0xb0]
jle 0x41bf86
mov ebx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xac]
cmp ebx, edx
je 0x417b71
cmp dword [ebp - 0x94], 0
mov eax, dword [ebp - 0xc4]
jne 0x41ffc4
mov edi, esi
mov dword [ebp - 0x94], edi
test eax, eax
js 0x41dde4
cmp eax, 0xa
ja case.default.0x419dec
jmp dword [eax*4 + 0x421dd0]
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c0d2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c0d2
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41c0f4
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0xd0]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp dword [eax*4 + 0x44ef08], edx
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
inc edi
cmp edi, dword [ebp - 0xb0]
jle 0x41c091
jmp 0x41c02c
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
lea esp, [esp]
cmp esi, ebx
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c191
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c191
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41c1b3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp eax, dword [ebp - 0xd0]
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
inc edi
cmp edi, dword [ebp - 0xb0]
jle 0x41c150
jmp 0x41c02c
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c245
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c245
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41c267
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f500]
cmp eax, dword [ebp - 0xd0]
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
inc edi
cmp edi, dword [ebp - 0xb0]
jle 0x41c204
jmp 0x41c02c
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c2f9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c2f9
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41c31b
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x41c342
cmp eax, 3
je 0x41c342
xor eax, eax
jmp 0x41c347
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
inc edi
cmp edi, dword [ebp - 0xb0]
jle 0x41c2b8
jmp 0x41c02c
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
jmp 0x41c380
cmp esi, ebx
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c3c1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c3c1
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x180e
ja 0x41c404
je case.0x41c420.8192
cmp ecx, 0x85
ja 0x41c3f0
je case.0x41c420.8192
cmp ecx, 9
jb case.0x41c420.8203
cmp ecx, 0xd
jbe case.0x41c420.8192
cmp ecx, 0x20
jmp 0x41c435
cmp ecx, 0xa0
je case.0x41c420.8192
cmp ecx, 0x1680
jmp 0x41c435
cmp ecx, 0x202f
ja 0x41c427
je case.0x41c420.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x41c420.8203
movzx eax, byte [eax + 0x421e04]
jmp dword [eax*4 + 0x421dfc]
cmp ecx, 0x205f
je case.0x41c420.8192
cmp ecx, 0x3000
je case.0x41c420.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41c459
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp dword [eax*4 + 0x44ef08], 6
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
jmp 0x41c493
cmp dword [ebp - 0xbc], 0
jne case.0x417bc2.157
inc edi
cmp edi, dword [ebp - 0xb0]
jle 0x41c380
jmp 0x41c02c
mov ebx, 1
cmp dword [ebp - 0xb0], ebx
jl 0x41d4d6
jmp 0x41c4c0
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41ff81
movzx edi, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c508
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c508
movzx eax, word [esi]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add esi, 2
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x41c52b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x41c557
cmp eax, 3
je 0x41c557
cmp edi, 0x5f
je 0x41c557
xor eax, eax
jmp 0x41c55c
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
inc ebx
cmp ebx, dword [ebp - 0xb0]
jle 0x41c4c0
jmp 0x41c02c
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov ebx, dword [eax + 0x7c]
cmp esi, ebx
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c5d1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c5d1
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax*4 + 0x44f3c0]
lea eax, [eax*4 + 0x44f3c0]
cmp ecx, edx
jb 0x41c5fd
lea esp, [esp]
lea eax, [eax + 4]
cmp ecx, edx
je 0x41c61c
mov edx, dword [eax]
cmp ecx, edx
jae 0x41c5f0
cmp dword [ebp - 0xbc], 0
je case.0x417bc2.157
inc edi
cmp edi, dword [ebp - 0xb0]
jle 0x41c590
jmp 0x41c02c
cmp dword [ebp - 0xbc], 0
jne case.0x417bc2.157
jmp 0x41c60a
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c682
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c682
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x24
je 0x41c6ad
cmp ecx, 0x40
je 0x41c6ad
cmp ecx, 0x60
je 0x41c6ad
cmp ecx, 0xa0
jb 0x41c6a1
cmp ecx, 0xd7ff
jbe 0x41c6ad
cmp ecx, 0xe000
jae 0x41c6ad
xor eax, eax
jmp 0x41c6b2
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41c641
jmp 0x41c032
cmp edi, 0x16
jne 0x41c872
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xb4], 1
cmp ebx, 1
jl 0x41c03e
mov edi, edi
mov edi, dword [ecx + 0x7c]
mov dword [ebp - 0xc8], edi
cmp esi, edi
jae 0x41ff38
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41c73a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c73a
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41c75c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ebx, byte [eax*8 + 0x44f502]
cmp esi, edi
jae 0x41c81d
jmp 0x41c780
cmp dword [ebp - 0x98], 0
mov edi, 1
movzx ecx, word [esi]
je 0x41c7be
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41c7be
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41c7e0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ecx, byte [eax*8 + 0x44f502]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x44edbc], eax
je 0x41c817
lea esi, [esi + edi*2]
mov ebx, ecx
mov edi, dword [ebp - 0xc8]
cmp esi, edi
jb 0x41c780
jmp 0x41c81d
mov edi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41c84c
cmp esi, edi
jb 0x41c84c
cmp esi, dword [ecx + 0x88]
jbe 0x41c84c
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, ebx
jle 0x41c6f0
mov edi, dword [ebp - 0xa4]
jmp 0x41c03e
cmp dword [ebp - 0x98], 0
lea eax, [edi - 6]
je 0x41cfa1
cmp eax, 0xf
ja case.default.0x419dec
jmp dword [eax*4 + 0x421e30]
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xc8], 1
cmp ebx, 1
jl 0x41c03e
lea ebx, [esi + 2]
mov edi, edi
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41ff7b
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx + 0x18]
lea edi, [edx + 0x1c]
test eax, eax
je 0x41c975
push dword [ebp - 0x98]
push edi
push ecx
push eax
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne case.0x417bc2.157
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41c925
cmp ebx, dword [ecx + 0x7c]
jb 0x41c925
cmp dword [ecx + 0x18], 0
jne 0x41c925
cmp dword [edi], 2
jne 0x41c925
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41c925
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
add esi, 2
add ebx, 2
cmp esi, dword [ecx + 0x7c]
jae 0x41c94b
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x41c94b
add esi, 2
add ebx, 2
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [ebp - 0xc8], eax
cmp eax, dword [ebp - 0xb0]
jle 0x41c8b0
mov ebx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xa4]
jmp 0x41c03e
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x41c8e9
mov ecx, dword [ebp - 0x8c]
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41c8ef
cmp edx, 1
je case.0x417bc2.157
mov ax, word [ebx]
cmp ax, word [ecx + 0x36]
je case.0x417bc2.157
jmp 0x41c8ef
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x41ff7b
add esi, 2
cmp esi, ecx
jae 0x41c9ed
mov ax, word [esi]
and ax, word [ebp - 0xcc]
cmp ax, word [ebp - 0xdc]
jne 0x41c9ed
add esi, 2
inc edx
cmp edx, ebx
jle 0x41c9c8
jmp 0x41c038
mov eax, dword [ebp - 0x8c]
lea ecx, [ebx + ebx]
mov eax, dword [eax + 0x7c]
sub eax, ecx
cmp esi, eax
ja case.0x417bc2.157
add esi, ecx
jmp 0x41c038
mov ecx, dword [ebp - 0x8c]
mov edi, 1
cmp ebx, edi
jl 0x41d052
mov edx, dword [ecx + 0x7c]
lea ebx, [ebx]
cmp esi, edx
jae 0x41ff38
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41ca68
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0xd
ja 0x41ca8e
je 0x41ca79
cmp ecx, 0xa
je 0x41cab7
lea eax, [ecx - 0xb]
jmp 0x41ca9c
cmp esi, edx
jae 0x41cab7
cmp word [esi], 0xa
mov ecx, dword [ebp - 0x8c]
jne 0x41cabd
add esi, 2
jmp 0x41cabd
cmp ecx, 0x85
je 0x41caa5
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x6c], 0
jne case.0x417bc2.157
jmp 0x41cabd
mov ecx, dword [ebp - 0x8c]
inc edi
cmp edi, ebx
jle 0x41ca30
mov edi, dword [ebp - 0xa4]
jmp 0x41c03e
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41cb1f
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x180e
ja 0x41cb51
je case.0x417bc2.157
cmp ecx, 0xa0
ja 0x41cb49
je case.0x417bc2.157
cmp ecx, 9
je case.0x417bc2.157
cmp ecx, 0x20
jmp 0x41cb81
cmp ecx, 0x1680
jmp 0x41cb81
cmp ecx, 0x205f
ja 0x41cb7b
je case.0x417bc2.157
cmp ecx, 0x2000
jb 0x41cb87
cmp ecx, 0x200a
jbe case.0x417bc2.157
cmp ecx, 0x202f
jmp 0x41cb81
cmp ecx, 0x3000
je case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41cae7
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
jmp 0x41cbb0
cmp esi, edi
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41cbe8
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x180e
ja 0x41cc0e
je 0x41cc40
cmp ecx, 0xa0
ja 0x41cc06
je 0x41cc40
cmp ecx, 9
je 0x41cc40
cmp ecx, 0x20
jmp 0x41cc3a
cmp ecx, 0x1680
jmp 0x41cc3a
cmp ecx, 0x205f
ja 0x41cc34
je 0x41cc40
cmp ecx, 0x2000
jb case.0x417bc2.157
cmp ecx, 0x200a
jbe 0x41cc40
cmp ecx, 0x202f
jmp 0x41cc3a
cmp ecx, 0x3000
jne case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41cbb0
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41cc9c
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x85
ja 0x41ccb4
je case.0x417bc2.157
cmp ecx, 0xa
jb 0x41ccc8
cmp ecx, 0xd
jmp 0x41ccc2
cmp ecx, 0x2028
jb 0x41ccc8
cmp ecx, 0x2029
jbe case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41cc64
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41cd20
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x85
ja 0x41cd32
je 0x41cd41
lea eax, [ecx - 0xa]
cmp eax, 3
jmp 0x41cd3b
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41cce8
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff7b
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41cd99
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x80
jae 0x41cdb4
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
jne case.0x417bc2.157
inc edx
cmp edx, ebx
jle 0x41cd61
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff81
movzx ecx, word [esi]
cmp ecx, 0x80
jae case.0x417bc2.157
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
je case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
inc edx
add esi, 2
cmp edx, ebx
jle 0x41cdd4
mov edi, dword [ebp - 0xa4]
mov ecx, eax
jmp 0x41c03e
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
lea esp, [esp]
cmp esi, edx
jae 0x41ff81
movzx ecx, word [esi]
cmp ecx, 0x80
jae 0x41ce50
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
jne case.0x417bc2.157
add esi, 2
cmp esi, edx
jae 0x41ce6f
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41ce6f
add esi, 2
mov eax, dword [ebp - 0x8c]
inc edi
cmp edi, ebx
jle 0x41ce30
mov edi, dword [ebp - 0xa4]
mov ecx, eax
jmp 0x41c03e
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
lea ecx, [ecx]
cmp esi, edi
jae 0x41ff81
movzx ecx, word [esi]
cmp ecx, 0x80
jae case.0x417bc2.157
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
je case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
inc edx
add esi, 2
cmp edx, ebx
jle 0x41cea0
mov edi, dword [ebp - 0xa4]
mov ecx, eax
jmp 0x41c03e
mov edi, 1
cmp ebx, edi
jl 0x41c032
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
cmp esi, edx
jae 0x41ff81
movzx ecx, word [esi]
cmp ecx, 0x80
jae 0x41cf15
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
jne case.0x417bc2.157
add esi, 2
cmp esi, edx
jae 0x41cf34
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41cf34
add esi, 2
mov eax, dword [ebp - 0x8c]
inc edi
cmp edi, ebx
jle 0x41cef5
mov edi, dword [ebp - 0xa4]
mov ecx, eax
jmp 0x41c03e
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff81
movzx ecx, word [esi]
cmp ecx, 0x80
jae case.0x417bc2.157
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
inc edx
add esi, 2
cmp edx, ebx
jle 0x41cf62
mov edi, dword [ebp - 0xa4]
mov ecx, eax
jmp 0x41c03e
cmp eax, 0xf
ja case.default.0x419dec
jmp dword [eax*4 + 0x421e70]
mov ecx, dword [ebp - 0x8c]
mov ebx, 1
cmp dword [ebp - 0xb0], ebx
jl 0x41d4cb
jmp 0x41cfd0
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41ff7b
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx + 0x18]
lea edi, [edx + 0x1c]
test eax, eax
je 0x41d05d
push 0
push edi
push ecx
push eax
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne case.0x417bc2.157
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41d040
lea eax, [esi + 2]
cmp eax, dword [ecx + 0x7c]
jb 0x41d040
cmp dword [ecx + 0x18], 0
jne 0x41d040
cmp dword [edi], 2
jne 0x41d040
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41d040
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xb0]
jle 0x41cfd0
mov ebx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xa4]
jmp 0x41c03e
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x41d001
mov ecx, dword [ebp - 0x8c]
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41d007
cmp edx, 1
je case.0x417bc2.157
mov ax, word [esi + 2]
cmp ax, word [ecx + 0x36]
je case.0x417bc2.157
jmp 0x41d007
mov edx, dword [ebp - 0x8c]
lea ecx, [ebx + ebx]
mov eax, dword [edx + 0x7c]
sub eax, ecx
cmp esi, eax
ja 0x4214b9
add esi, ecx
mov ecx, edx
jmp 0x41c03e
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x7c]
cmp esi, ecx
jae 0x41ff81
movzx eax, word [esi]
add esi, 2
cmp eax, 0xd
jg 0x41d0fc
je 0x41d0e7
cmp eax, 0xa
je 0x41d123
add eax, 0xfffffff5
jmp 0x41d108
cmp esi, ecx
jae 0x41d123
cmp word [esi], 0xa
mov eax, dword [ebp - 0x8c]
jne 0x41d129
add esi, 2
jmp 0x41d129
cmp eax, 0x85
je 0x41d111
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x6c], 0
jne case.0x417bc2.157
jmp 0x41d129
mov eax, dword [ebp - 0x8c]
inc edx
cmp edx, ebx
jle 0x41d0c8
jmp 0x41c038
mov ecx, 1
cmp ebx, ecx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
lea esp, [esp]
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
add esi, 2
cmp eax, 0x180e
jg 0x41d18d
je case.0x417bc2.157
cmp eax, 0xa0
jg 0x41d186
je case.0x417bc2.157
cmp eax, 9
je case.0x417bc2.157
cmp eax, 0x20
jmp 0x41d1b8
cmp eax, 0x1680
jmp 0x41d1b8
cmp eax, 0x205f
jg 0x41d1b3
je case.0x417bc2.157
cmp eax, 0x2000
jl 0x41d1be
cmp eax, 0x200a
jle case.0x417bc2.157
cmp eax, 0x202f
jmp 0x41d1b8
cmp eax, 0x3000
je case.0x417bc2.157
inc ecx
cmp ecx, ebx
jle 0x41d150
jmp 0x41c038
mov ecx, 1
cmp ebx, ecx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
mov edi, edi
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
add esi, 2
cmp eax, 0x180e
jg 0x41d211
je 0x41d23e
cmp eax, 0xa0
jg 0x41d20a
je 0x41d23e
cmp eax, 9
je 0x41d23e
cmp eax, 0x20
jmp 0x41d238
cmp eax, 0x1680
jmp 0x41d238
cmp eax, 0x205f
jg 0x41d233
je 0x41d23e
cmp eax, 0x2000
jl case.0x417bc2.157
cmp eax, 0x200a
jle 0x41d23e
cmp eax, 0x202f
jmp 0x41d238
cmp eax, 0x3000
jne case.0x417bc2.157
inc ecx
cmp ecx, ebx
jle 0x41d1e0
jmp 0x41c038
mov ecx, 1
cmp ebx, ecx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
mov edi, edi
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
add esi, 2
cmp eax, 0x85
jg 0x41d285
je case.0x417bc2.157
cmp eax, 0xa
jl 0x41d297
cmp eax, 0xd
jmp 0x41d291
cmp eax, 0x2028
jl 0x41d297
cmp eax, 0x2029
jle case.0x417bc2.157
inc ecx
cmp ecx, ebx
jle 0x41d260
jmp 0x41c038
mov ecx, 1
cmp ebx, ecx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax + 0x7c]
cmp esi, edx
jae 0x41ff7b
movzx eax, word [esi]
add esi, 2
cmp eax, 0x85
jg 0x41d2d6
je 0x41d2e4
add eax, 0xfffffff6
cmp eax, 3
jmp 0x41d2de
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x417bc2.157
inc ecx
cmp ecx, ebx
jle 0x41d2b7
jmp 0x41c038
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff32
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41d32e
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
jne case.0x417bc2.157
inc edx
add esi, 2
cmp edx, ebx
jle 0x41d304
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff7b
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x417bc2.157
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
je case.0x417bc2.157
inc edx
add esi, 2
cmp edx, ebx
jle 0x41d351
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff32
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41d3cc
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
jne case.0x417bc2.157
inc edx
add esi, 2
cmp edx, ebx
jle 0x41d3a2
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
nop
cmp esi, edi
jae 0x41ff7b
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x417bc2.157
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
je case.0x417bc2.157
inc edx
add esi, 2
cmp edx, ebx
jle 0x41d3f0
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
cmp esi, edi
jae 0x41ff32
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41d46b
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
jne case.0x417bc2.157
inc edx
add esi, 2
cmp edx, ebx
jle 0x41d441
jmp 0x41c032
mov edx, 1
cmp ebx, edx
jl 0x41c038
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
mov edi, edi
cmp esi, edi
jae 0x41ff7b
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x417bc2.157
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je case.0x417bc2.157
inc edx
add esi, 2
cmp edx, ebx
jle 0x41d490
jmp 0x41c032
mov ebx, dword [ebp - 0xb0]
jmp 0x41c03e
mov ebx, dword [ebp - 0xb0]
jmp 0x41c038
cmp ebx, edx
jge 0x41d63c
mov edx, dword [ecx + 0x7c]
mov eax, dword [ebp - 0xbc]
mov ecx, 1
cmp esi, edx
jae 0x41d53a
cmp dword [ebp - 0x98], 0
je 0x41d521
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [ebp - 0xd8]
mov eax, 2
cmove ecx, eax
mov eax, dword [ebp - 0xbc]
test eax, eax
jne 0x41d63c
inc ebx
lea esi, [esi + ecx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41d4f2
jmp 0x41d63c
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41d642
cmp esi, dword [ebx + 0x88]
jbe 0x41d642
mov dword [ebx + 0x68], ecx
cmp dword [ebx + 0x8c], ecx
jg 0x4214e6
jmp 0x41d642
cmp ebx, edx
jge 0x41d63c
mov ebx, dword [ecx + 0x7c]
jmp 0x41d580
mov edi, 1
cmp esi, ebx
jae 0x41d6b2
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41d5c6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41d5c6
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41d5e8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp eax, 9
je 0x41d60d
cmp eax, 5
je 0x41d60d
cmp eax, 8
je 0x41d60d
xor eax, eax
jmp 0x41d612
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + edi*2]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41d580
mov edi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
jbe 0x41b22c
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
sub esi, 2
cmp dword [ebp - 0x98], eax
je 0x41d6a9
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41d6a9
sub esi, 2
cmp esi, edi
ja 0x41d657
jmp 0x41b22c
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41d6d8
cmp esi, dword [ecx + 0x88]
jbe 0x41d6d8
mov dword [ecx + 0x68], edi
cmp dword [ecx + 0x8c], edi
jg 0x4214e6
mov edi, dword [ebp - 0x94]
mov ebx, ecx
jmp 0x41d642
cmp ebx, edx
jge 0x41d63c
mov ebx, dword [ecx + 0x7c]
mov edi, 1
cmp esi, ebx
jae 0x41d6b2
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41d732
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41d732
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41d754
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0xd0]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp dword [eax*4 + 0x44ef08], edx
sete cl
cmp ecx, dword [ebp - 0xbc]
je 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + edi*2]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41d6f0
jmp 0x41d636
cmp ebx, edx
jge 0x41d63c
mov ebx, dword [ecx + 0x7c]
mov edi, 1
cmp esi, ebx
jae 0x41d6b2
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41d7f6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41d7f6
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41d818
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp eax, dword [ebp - 0xd0]
sete cl
cmp ecx, dword [ebp - 0xbc]
je 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + edi*2]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41d7b0
jmp 0x41d636
cmp ebx, edx
jge 0x41d63c
mov ebx, dword [ecx + 0x7c]
lea ecx, [ecx]
mov edi, 1
cmp esi, ebx
jae 0x41d6b2
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41d8b6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41d8b6
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41d8d8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f500]
cmp eax, dword [ebp - 0xd0]
sete cl
cmp ecx, dword [ebp - 0xbc]
je 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + edi*2]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41d870
jmp 0x41d636
cmp ebx, edx
jge 0x41d63c
mov ebx, dword [ecx + 0x7c]
lea ecx, [ecx]
mov edi, 1
cmp esi, ebx
jae 0x41d6b2
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41d976
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41d976
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41d998
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x41d9bf
cmp eax, 3
je 0x41d9bf
xor eax, eax
jmp 0x41d9c4
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + edi*2]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41d930
jmp 0x41d636
cmp ebx, edx
jge 0x41d63c
mov ebx, dword [ecx + 0x7c]
lea esp, [esp]
mov edi, 1
cmp esi, ebx
jae 0x41d6b2
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41da46
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41da46
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0x41da89
je case.0x41daa9.8192
cmp ecx, 0x85
ja 0x41da75
je case.0x41daa9.8192
cmp ecx, 9
jb case.0x41daa9.8203
cmp ecx, 0xd
jbe case.0x41daa9.8192
cmp ecx, 0x20
jmp 0x41dabe
cmp ecx, 0xa0
je case.0x41daa9.8192
cmp ecx, 0x1680
jmp 0x41dabe
cmp ecx, 0x202f
ja 0x41dab0
je case.0x41daa9.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x41daa9.8203
movzx eax, byte [eax + 0x421eb8]
jmp dword [eax*4 + 0x421eb0]
cmp ecx, 0x205f
je case.0x41daa9.8192
cmp ecx, 0x3000
je case.0x41daa9.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41dae2
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp dword [eax*4 + 0x44ef08], 6
sete cl
cmp ecx, dword [ebp - 0xbc]
je 0x41d636
mov edx, dword [ebp - 0xac]
jmp 0x41db22
cmp dword [ebp - 0xbc], 0
jne 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + edi*2]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, edx
jl 0x41da00
jmp 0x41d636
cmp ebx, edx
jge 0x41d63c
jmp 0x41db50
mov ebx, 1
cmp esi, dword [ecx + 0x7c]
jae 0x41dc26
cmp dword [ebp - 0x98], 0
movzx edi, word [esi]
je 0x41db97
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41db97
movzx eax, word [esi + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov ebx, 2
add edi, 0x10000
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x41dbba
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x41dbe6
cmp eax, 3
je 0x41dbe6
cmp edi, 0x5f
je 0x41dbe6
xor eax, eax
jmp 0x41dbeb
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + ebx*2]
mov ecx, dword [ebp - 0x8c]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41db50
mov edi, dword [ebp - 0x94]
mov ebx, ecx
jmp 0x41d642
cmp dword [ecx + 0x8c], 0
je 0x41d636
cmp esi, dword [ecx + 0x88]
jbe 0x41d636
mov dword [ecx + 0x68], ebx
cmp dword [ecx + 0x8c], ebx
jg 0x4214e6
jmp 0x41d636
cmp ebx, edx
jge 0x41d63c
mov ebx, dword [ecx + 0x7c]
mov edi, edi
mov edi, 1
cmp esi, ebx
jae 0x41d6b2
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41dca6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41dca6
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax*4 + 0x44f3c0]
lea eax, [eax*4 + 0x44f3c0]
cmp ecx, edx
jb 0x41dccd
mov edi, edi
lea eax, [eax + 4]
cmp ecx, edx
je 0x41dcfb
mov edx, dword [eax]
cmp ecx, edx
jae 0x41dcc0
cmp dword [ebp - 0xbc], 0
je 0x41d636
mov eax, dword [ebp - 0xb0]
lea esi, [esi + edi*2]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41dc60
jmp 0x41d636
cmp dword [ebp - 0xbc], 0
jne 0x41d636
jmp 0x41dcda
cmp ebx, edx
jge 0x41d63c
mov edi, dword [ecx + 0x7c]
jmp 0x41dd20
mov edx, 1
cmp esi, edi
jae 0x41ddb7
cmp dword [ebp - 0x98], 0
movzx ecx, word [esi]
je 0x41dd66
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41dd66
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x41dd91
cmp ecx, 0x40
je 0x41dd91
cmp ecx, 0x60
je 0x41dd91
cmp ecx, 0xa0
jb 0x41dd85
cmp ecx, 0xd7ff
jbe 0x41dd91
cmp ecx, 0xe000
jae 0x41dd91
xor eax, eax
jmp 0x41dd96
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je 0x41d636
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41dd20
jmp 0x41d636
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41d6d8
cmp esi, dword [ecx + 0x88]
jbe 0x41d6d8
mov dword [ecx + 0x68], edx
cmp dword [ecx + 0x8c], edx
jmp 0x41d6d2
mov eax, dword [ebp - 0xa4]
cmp eax, 0x16
jne 0x41dffd
cmp ebx, edx
jge 0x41dfa2
jmp 0x41de00
mov edi, dword [ecx + 0x7c]
mov dword [ebp - 0xc8], edi
cmp esi, edi
jae 0x41df77
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x41de4a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41de4a
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41de6c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ebx, byte [eax*8 + 0x44f502]
cmp esi, edi
jae 0x41df2d
jmp 0x41de90
cmp dword [ebp - 0x98], 0
mov edi, 1
movzx ecx, word [esi]
je 0x41dece
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41dece
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41def0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ecx, byte [eax*8 + 0x44f502]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x44edbc], eax
je 0x41df27
lea esi, [esi + edi*2]
mov ebx, ecx
mov edi, dword [ebp - 0xc8]
cmp esi, edi
jb 0x41de90
jmp 0x41df2d
mov edi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41df5c
cmp esi, edi
jb 0x41df5c
cmp esi, dword [ecx + 0x88]
jbe 0x41df5c
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
mov eax, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41de00
jmp 0x41df9c
cmp dword [ecx + 0x8c], 0
je 0x41df9c
cmp esi, dword [ecx + 0x88]
jbe 0x41df9c
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
mov edi, dword [ebp - 0x94]
cmp dword [ebp - 0xc0], 0
jne 0x417b71
cmp esi, edi
jbe 0x41b22c
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
sub esi, 2
cmp dword [ebp - 0x98], eax
jne 0x41ef2e
movzx ecx, word [esi]
jmp 0x41ef71
add eax, 0xfffffffa
cmp dword [ebp - 0x98], 0
je 0x41e81a
cmp eax, 0xf
ja case.default.0x419dec
jmp dword [eax*4 + 0x421ee4]
cmp ebx, edx
jge 0x41e0e6
lea ebx, [esi + 2]
jmp 0x41e030
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41e1b4
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx + 0x18]
lea edi, [edx + 0x1c]
test eax, eax
je 0x41e177
push dword [ebp - 0x98]
push edi
push ecx
push eax
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne 0x41e0e0
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41e0a1
cmp ebx, dword [ecx + 0x7c]
jb 0x41e0a1
cmp dword [ecx + 0x18], 0
jne 0x41e0a1
cmp dword [edi], 2
jne 0x41e0a1
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41e0a1
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
add esi, 2
add ebx, 2
cmp esi, dword [ecx + 0x7c]
jae 0x41e0c7
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x41e0c7
add esi, 2
add ebx, 2
mov eax, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0xac]
jl 0x41e030
mov edi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x8c]
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
jbe 0x41b22c
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41e14c
sub esi, 2
cmp dword [ebp - 0xa4], 0x11
jne 0x41e16e
cmp esi, edi
jbe 0x41b22c
cmp word [esi], 0xa
jne 0x41e16e
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
cmp esi, edi
ja 0x41e101
jmp 0x41b22c
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x41e065
mov ecx, dword [ebp - 0x8c]
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41e06b
cmp edx, 1
je 0x41e39e
mov ax, word [ebx]
cmp ax, word [ecx + 0x36]
je 0x41e39e
jmp 0x41e06b
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41e1df
cmp esi, dword [ebx + 0x88]
jbe 0x41e1df
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
mov edi, dword [ebp - 0x94]
jmp 0x41e0ec
cmp edx, 0x7fffffff
jge 0x41e263
cmp ebx, edx
jge 0x41e0e6
mov ecx, dword [ecx + 0x7c]
lea ecx, [ecx]
cmp esi, ecx
jae 0x41e22b
add esi, 2
cmp esi, ecx
jae 0x41e221
mov ax, word [esi]
and ax, word [ebp - 0xcc]
cmp ax, word [ebp - 0xdc]
jne 0x41e221
add esi, 2
inc ebx
cmp ebx, edx
jl 0x41e200
jmp 0x41e0e6
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41e0ec
cmp esi, dword [ebx + 0x88]
jbe 0x41e0ec
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
jmp 0x41e0ec
cmp dword [ecx + 0x8c], 0
mov esi, dword [ecx + 0x7c]
je 0x41e0e6
cmp esi, dword [ecx + 0x88]
jbe 0x41e0e6
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
jmp 0x41e0e6
mov ecx, dword [ecx + 0x7c]
sub edx, ebx
mov ebx, dword [ebp - 0x8c]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x41e2b1
mov esi, ecx
jmp 0x41e231
lea esi, [esi + edx*2]
jmp 0x41e0ec
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
jmp 0x41e2d0
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e30d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0xd
jne 0x41e328
add esi, 2
cmp esi, edi
jae 0x41e0e0
cmp word [esi], 0xa
jne 0x41e366
add esi, 2
jmp 0x41e366
cmp ecx, 0xa
je 0x41e363
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x6c], 0
jne 0x41e80d
cmp ecx, 0xb
je 0x41e363
cmp ecx, 0xc
je 0x41e363
cmp ecx, 0x85
je 0x41e363
cmp ecx, 0x2028
je 0x41e363
cmp ecx, 0x2029
jne 0x41e80d
lea esi, [esi + edx*2]
inc ebx
cmp ebx, dword [ebp - 0xac]
jl 0x41e2d0
jmp 0x41e0e0
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41e39e
cmp esi, dword [ecx + 0x88]
jbe 0x41e39e
mov dword [ecx + 0x68], edx
cmp dword [ecx + 0x8c], edx
jg 0x4214e6
mov edi, dword [ebp - 0x94]
mov ebx, ecx
jmp 0x41e0ec
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e3ef
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0x41e415
je 0x41e443
cmp ecx, 0xa0
ja 0x41e40d
je 0x41e443
cmp ecx, 9
je 0x41e443
cmp ecx, 0x20
jmp 0x41e43d
cmp ecx, 0x1680
jmp 0x41e43d
cmp ecx, 0x205f
ja 0x41e437
je 0x41e443
cmp ecx, 0x2000
jb 0x41e43f
cmp ecx, 0x200a
jbe 0x41e443
cmp ecx, 0x202f
jmp 0x41e43d
cmp ecx, 0x3000
je 0x41e443
xor ecx, ecx
jmp 0x41e448
mov ecx, 1
xor eax, eax
cmp dword [ebp - 0xa4], 0x12
sete al
cmp ecx, eax
je 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e3b6
jmp 0x41e0e0
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
lea esp, [esp]
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e4bd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x85
ja 0x41e4f8
je 0x41e503
cmp ecx, 0xa
jb 0x41e4d1
cmp ecx, 0xd
jbe 0x41e503
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0xa4], 0x14
sete al
cmp ecx, eax
je 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e480
jmp 0x41e0e0
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x41e4d1
mov ecx, 1
jmp 0x41e4d3
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
jmp 0x41e520
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e55d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x41e578
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
jne 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e520
jmp 0x41e0e0
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
jmp 0x41e5a0
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e5dd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x41e0e0
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
je 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e5a0
jmp 0x41e0e0
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
jmp 0x41e620
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e65d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x41e678
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
jne 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e620
jmp 0x41e0e0
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
jmp 0x41e6a0
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e6dd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x41e0e0
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
je 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e6a0
jmp 0x41e0e0
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
jmp 0x41e720
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e75d
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x41e778
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
jne 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e720
jmp 0x41e0e0
cmp ebx, edx
jge 0x41e0e6
mov edi, dword [ecx + 0x7c]
jmp 0x41e7a0
mov edx, 1
cmp esi, edi
jae 0x41e378
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41e7dd
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x41e0e0
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je 0x41e0e0
inc ebx
lea esi, [esi + edx*2]
cmp ebx, dword [ebp - 0xac]
jl 0x41e7a0
jmp 0x41e0e0
mov edi, dword [ebp - 0x94]
mov ebx, eax
jmp 0x41e0ec
cmp eax, 0xf
ja case.default.0x419dec
jmp dword [eax*4 + 0x421f24]
cmp ebx, edx
jge 0x41edc2
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41e959
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx + 0x18]
lea edi, [edx + 0x1c]
test eax, eax
je 0x41e8b8
push 0
push edi
push ecx
push eax
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne 0x41e8aa
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41e89e
lea eax, [esi + 2]
cmp eax, dword [ecx + 0x7c]
jb 0x41e89e
cmp dword [ecx + 0x18], 0
jne 0x41e89e
cmp dword [edi], 2
jne 0x41e89e
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41e89e
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xac]
jl 0x41e832
mov edi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x41e85f
mov ecx, dword [ebp - 0x8c]
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x41e865
cmp edx, 1
je 0x41e8e1
mov ax, word [esi + 2]
cmp ax, word [ecx + 0x36]
jne 0x41e865
mov edi, dword [ebp - 0x94]
mov ebx, ecx
cmp dword [ebp - 0xc0], 0
jne 0x417b77
cmp esi, edi
je 0x41b22c
mov edi, edi
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ebx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
sub esi, 2
cmp dword [ebp - 0xa4], 0x11
jne 0x41e950
cmp esi, edi
jbe 0x41e952
cmp word [esi], 0xa
jne 0x41e950
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
cmp esi, edi
jne 0x41e900
jmp 0x41b22c
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41e984
cmp esi, dword [ebx + 0x88]
jbe 0x41e984
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
mov edi, dword [ebp - 0x94]
jmp 0x41e8e9
mov ecx, dword [ecx + 0x7c]
sub edx, ebx
mov ebx, dword [ebp - 0x8c]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x41e9ab
mov esi, ecx
jmp 0x41ea36
lea esi, [esi + edx*2]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov ecx, dword [ecx + 0x7c]
mov edi, edi
cmp esi, ecx
jae 0x41ea30
movzx eax, word [esi]
cmp eax, 0xd
jne 0x41e9df
add esi, 2
cmp esi, ecx
jae 0x41edc2
cmp word [esi], 0xa
jne 0x41ea20
jmp 0x41ea1d
cmp eax, 0xa
je 0x41ea1d
mov edi, dword [ebp - 0x8c]
cmp dword [edi + 0x6c], 0
mov edi, dword [ebp - 0x94]
jne 0x41edc2
cmp eax, 0xb
je 0x41ea1d
cmp eax, 0xc
je 0x41ea1d
cmp eax, 0x85
je 0x41ea1d
cmp eax, 0x2028
je 0x41ea1d
cmp eax, 0x2029
jne 0x41edc2
add esi, 2
inc ebx
cmp ebx, edx
jl 0x41e9c0
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
mov ebx, dword [ebp - 0x8c]
cmp dword [ebx + 0x8c], 0
je 0x41e8e9
cmp esi, dword [ebx + 0x88]
jbe 0x41e8e9
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4214e6
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41ea30
movzx eax, word [esi]
cmp eax, 0x180e
jg 0x41eaa9
je 0x41edc2
cmp eax, 0xa0
jg 0x41eaa2
je 0x41edc2
cmp eax, 9
je 0x41edc2
cmp eax, 0x20
jmp 0x41ead4
cmp eax, 0x1680
jmp 0x41ead4
cmp eax, 0x205f
jg 0x41eacf
je 0x41edc2
cmp eax, 0x2000
jl 0x41eada
cmp eax, 0x200a
jle 0x41edc2
cmp eax, 0x202f
jmp 0x41ead4
cmp eax, 0x3000
je 0x41edc2
inc ebx
add esi, 2
cmp ebx, edx
jl 0x41ea73
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41ea30
movzx eax, word [esi]
cmp eax, 0x180e
jg 0x41eb26
je 0x41eb53
cmp eax, 0xa0
jg 0x41eb1f
je 0x41eb53
cmp eax, 9
je 0x41eb53
cmp eax, 0x20
jmp 0x41eb4d
cmp eax, 0x1680
jmp 0x41eb4d
cmp eax, 0x205f
jg 0x41eb48
je 0x41eb53
cmp eax, 0x2000
jl 0x41edc2
cmp eax, 0x200a
jle 0x41eb53
cmp eax, 0x202f
jmp 0x41eb4d
cmp eax, 0x3000
jne 0x41edc2
inc ebx
add esi, 2
cmp ebx, edx
jl 0x41eaf8
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41ea30
movzx eax, word [esi]
cmp eax, 0x85
jg 0x41eb93
je 0x41edc2
cmp eax, 0xa
jl 0x41eba5
cmp eax, 0xd
jmp 0x41eb9f
cmp eax, 0x2028
jl 0x41eba5
cmp eax, 0x2029
jle 0x41edc2
inc ebx
add esi, 2
cmp ebx, edx
jl 0x41eb71
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov ecx, dword [ecx + 0x7c]
cmp esi, ecx
jae 0x41ea30
movzx eax, word [esi]
cmp eax, 0x85
jg 0x41ebdf
je 0x41ebed
add eax, 0xfffffff6
cmp eax, 3
jmp 0x41ebe7
add eax, 0xffffdfd8
cmp eax, 1
ja 0x41edc2
inc ebx
add esi, 2
cmp ebx, edx
jl 0x41ebc3
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov edx, dword [ecx + 0x7c]
jmp 0x41ec10
cmp esi, edx
jae 0x41edcd
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41ec3a
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
jne 0x41edc2
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xac]
jl 0x41ec10
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov edx, dword [ecx + 0x7c]
lea esp, [esp]
cmp esi, edx
jae 0x41edcd
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41edc2
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 4
je 0x41edc2
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xac]
jl 0x41ec60
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov edx, dword [ecx + 0x7c]
cmp esi, edx
jae 0x41edcd
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41ecda
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
jne 0x41edc2
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xac]
jl 0x41ecb0
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov edx, dword [ecx + 0x7c]
lea esp, [esp]
cmp esi, edx
jae 0x41edcd
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41edc2
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 1
je 0x41edc2
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xac]
jl 0x41ed00
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov edx, dword [ecx + 0x7c]
cmp esi, edx
jae 0x41edcd
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41ed76
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
jne 0x41edc2
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xac]
jl 0x41ed50
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
cmp ebx, edx
jge 0x41edc2
mov edx, dword [ecx + 0x7c]
cmp esi, edx
jae 0x41edcd
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x41edc2
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax + 0x44]
test byte [ecx + eax], 0x10
je 0x41edc2
inc ebx
add esi, 2
cmp ebx, dword [ebp - 0xac]
jl 0x41ed94
mov ebx, dword [ebp - 0x8c]
jmp 0x41e8e9
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41e8e7
cmp esi, dword [ecx + 0x88]
jbe 0x41e8e7
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
jmp 0x41e8e7
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp - 0x9c]
inc eax
cmp word [edx], 0x7a
mov edi, dword [ebp - 0x8c]
push eax
push ebx
push edi
push ecx
push dword [ebp - 0xa8]
jne 0x41ee4b
lea eax, [edx + 4]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x90], edx
jmp 0x41b23e
push dword [ebp - 0xc8]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edx, dword [ebp - 0x90]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x41b23e
cmp dword [ebp - 0xa4], 0x8c
je 0x41f217
mov edi, dword [ebp - 0x8c]
jmp 0x41b238
mov eax, dword [ebp + 0x20]
inc eax
cmp word [edx], 0x7a
push eax
push dword [ebp - 0x9c]
push edi
push ecx
push dword [ebp - 0xa8]
jne 0x41eeeb
lea eax, [edx + 4]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
movzx eax, word [ebx]
mov ecx, 0x81
cmp ax, cx
je 0x41f36d
mov ecx, 0x88
cmp ax, cx
jae 0x41f33a
mov edx, ebx
mov dword [ebp - 0x90], edx
jmp 0x41b238
push ebx
push esi
call fcn.00417a50
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x41ef04
cmp dword [edi + 0xb8], ebx
jmp 0x41ef06
test eax, eax
jne 0x41b259
mov eax, 0x81
cmp word [ebx], ax
je 0x41f388
mov edx, dword [ebp - 0x90]
add edx, 4
mov dword [ebp - 0x90], edx
jmp 0x41b238
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41ef46
sub esi, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41ef71
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41ef93
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ebx, byte [eax*8 + 0x44f502]
cmp esi, edi
jbe 0x41b22c
cmp dword [ebp - 0x98], 0
lea edi, [esi - 2]
jne 0x41efbe
movzx ecx, word [edi]
jmp 0x41f001
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41efd6
sub edi, 2
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41f001
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x41f023
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x452d80]
movzx edx, byte [eax*8 + 0x44f502]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x44edbc], eax
je 0x41f056
mov esi, edi
mov ebx, edx
mov edi, dword [ebp - 0x94]
jmp 0x41efa5
mov edi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x8c]
jmp 0x41dfb7
mov eax, dword [ebp - 0x90]
mov edi, dword [ebp - 0x8c]
movzx edx, word [eax + 4]
mov dword [ebp - 0xc8], edx
lea ebx, [edx + edx]
mov dword [ebp - 0xd4], ebx
cmp ebx, dword [edi + 0x14]
jl 0x4214fc
mov edx, dword [ebp - 0xa4]
jmp 0x41f0a0
mov edi, dword [ebp - 0x8c]
lea ecx, [ecx]
cmp edx, 0x88
jae 0x41f0df
cmp edx, 0x81
je 0x41f0df
cmp dword [edi + 0x70], 0
mov edx, dword [ebp - 0x90]
jne 0x41f0ef
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
je 0x41f0ef
movzx eax, word [edx]
movzx eax, byte [eax + 0x44edf0]
lea edx, [edx + eax*2]
mov dword [ebp - 0x90], edx
jmp 0x41b238
mov edx, dword [ebp - 0x90]
mov dword [edi + 0x9c], 2
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x8c]
inc eax
mov edi, dword [edi + 0xb0]
push eax
push dword [ebp - 0x9c]
movzx eax, word [edx]
mov ebx, dword [ecx + 0x94]
push ecx
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [edx + eax*2]
push eax
push esi
call fcn.00417a50
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc20
jne 0x41f171
mov eax, dword [ebp - 0x90]
movzx ecx, word [eax + 2]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x80], eax
jae 0x4216da
mov ecx, dword [ebp - 0x90]
cmp word [ecx], 0x77
je 0x41f17f
cmp word [eax], 0x77
jne 0x4216da
jmp 0x41f17f
test edx, edx
jne 0x42168e
mov ecx, dword [ebp - 0x90]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x90], ecx
mov dword [eax + 0xb0], edi
cmp word [ecx], 0x77
jne case.0x417bc2.157
mov edx, dword [ebp - 0xa4]
mov edi, eax
mov dword [edi + 0x94], ebx
jmp 0x41f0a0
mov edi, dword [ebp - 0x90]
mov eax, dword [ebp + 0x20]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp - 0x9c]
push ebx
movzx ecx, byte [eax + 0x44edf0]
movzx eax, word [edi + 2]
push dword [ebp - 0xa0]
add ecx, eax
push dword [ebp - 0xa8]
lea eax, [edi + ecx*2]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
lea eax, [edi + 4]
pop edi
mov dword [ebx + 0x80], eax
mov eax, 0xfffffc1f
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x8c]
mov dword [ecx + 0x9c], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edx
push esi
call fcn.00417a50
add esp, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
dec eax
je case.0x417bc2.157
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffe6
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0xf4]
mov dword [ecx + 0xa8], eax
mov eax, dword [ebp - 0xec]
lea ecx, [ebp - 0x88]
cmp eax, ecx
je 0x41f2b6
push eax
call dword [0x48b004]
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xec]
lea ecx, [ebp - 0x88]
cmp eax, ecx
je 0x41f2e3
push eax
call dword [0x48b004]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffa
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xa8]
pop edi
mov dword [eax + 0x84], esi
pop esi
mov dword [eax + 0x80], ecx
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push ebx
push esi
call fcn.00417a50
add esp, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push ebx
jmp 0x41f3bc
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
mov eax, dword [ebp - 0x90]
push edi
push dword [ebp - 0xa0]
add eax, 4
jmp 0x41f3b5
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
lea eax, [edx + 4]
push edi
push ecx
push dword [ebp - 0xa8]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov dword [edi + 0xb8], ebx
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xa8]
mov dword [edi + 0x80], eax
mov eax, 0xfffffc1a
mov dword [edi + 0x84], esi
mov dword [edi + 0x90], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0x84], esi
mov dword [eax + 0x90], ecx
mov ecx, dword [ebp - 0xa8]
mov dword [eax + 0x80], ecx
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [eax + 0x88]
jbe case.0x417bc2.157
mov dword [eax + 0x68], 1
cmp dword [eax + 0x8c], 1
jmp 0x4214e0
cmp eax, 0xfffffffe
mov eax, dword [ebp - 0x8c]
jne 0x41f491
mov esi, dword [eax + 0x7c]
cmp dword [eax + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [eax + 0x7c]
jb case.0x417bc2.157
jmp 0x41f464
mov dword [ebp - 0xcc], esi
cmp ebx, eax
jge 0x41f532
jmp 0x41f4c0
push dword [ebp - 0xb4]
push dword [ebp - 0x8c]
push ecx
push esi
push edi
call fcn.00422050
add esp, 0x14
test eax, eax
js 0x41f4ef
mov ecx, dword [ebp - 0xb8]
lea esi, [esi + eax*2]
inc ebx
cmp ebx, dword [ebp - 0xc0]
jl 0x41f4c0
jmp 0x41f522
cmp eax, 0xfffffffe
jne 0x41f522
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x41f522
mov eax, dword [ecx + 0x7c]
cmp eax, dword [ecx + 0x88]
jbe 0x41f522
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
mov ebx, dword [ebp - 0xcc]
cmp esi, ebx
jb case.0x417bc2.157
jmp 0x41f538
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov eax, dword [ebp - 0xb8]
neg eax
lea esi, [esi + eax*2]
cmp esi, ebx
jae 0x41f538
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x90]
inc eax
push eax
push dword [ebp - 0x9c]
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edi
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, edi
mov eax, esi
sub esi, 2
cmp eax, ebx
je case.0x417bc2.157
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x41f5e5
sub esi, 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edi
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41f5c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
cmp esi, ebx
jb case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edx, dword [ebp - 0x8c]
sub esi, 2
cmp esi, ebx
jae 0x41f625
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
test edx, edx
je 0x41f76c
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0xac]
cmp edi, dword [ebp - 0xb8]
jge case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41ff81
movzx edx, word [esi]
add esi, 2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41f6fd
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp edx, 0xff
jbe 0x41f70e
cmp dword [ebp - 0xa4], 0x6e
jmp 0x41f720
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebx], al
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc edi
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41f6b6
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0xac]
cmp edi, dword [ebp - 0xb8]
jge case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41ff81
movzx edx, word [esi]
add esi, 2
cmp edx, 0xff
jbe 0x41f7b4
cmp dword [ebp - 0xa4], 0x6e
jmp 0x41f7c6
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebx], al
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc edi
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41f782
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0xb4]
cmp ebx, edi
jge case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41ff81
movzx ecx, word [esi]
add esi, 2
mov edx, dword [ebp - 0x98]
test edx, edx
je 0x41f899
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41f899
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
push edx
push dword [ebp - 0xa4]
push ecx
call fcn.004235a0
add esp, 0xc
test eax, eax
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41f848
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [ebx + 0x7c]
jb case.0x417bc2.157
jmp 0x41f91c
cmp dword [ebx + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [ebx + 0x88]
jbe case.0x417bc2.157
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jmp 0x41ffa8
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x8c]
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edx, dword [ebp - 0xb8]
lea ecx, [edx + edx]
mov dword [ebp - 0xcc], ecx
nop
cmp ebx, dword [ebp - 0xb0]
jge case.0x417bc2.157
mov ebx, dword [edi + 0x7c]
mov eax, ebx
sub eax, ecx
cmp esi, eax
ja 0x41f9f5
lea edi, [edx + edx]
mov ecx, esi
mov edx, dword [ebp - 0xc4]
sub edi, 4
jb 0x41f9b8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41f9bd
add ecx, 4
add edx, 4
sub edi, 4
jae 0x41f9a7
cmp edi, 0xfffffffc
je 0x41f9ea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41f9f5
cmp edi, 0xfffffffd
je 0x41f9ea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41f9f5
cmp edi, 0xfffffffe
je 0x41f9ea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41f9f5
cmp edi, 0xffffffff
je 0x41f9ea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41f9f5
add esi, dword [ebp - 0xcc]
jmp 0x41fa7c
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
jle 0x41fadb
lea eax, [ecx + ecx]
sub ebx, eax
cmp esi, ebx
ja 0x41fadb
lea edi, [ecx + ecx]
mov ecx, esi
lea edx, [ebp - 0x10]
sub edi, 4
jb 0x41fa31
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41fa36
add ecx, 4
add edx, 4
sub edi, 4
jae 0x41fa20
cmp edi, 0xfffffffc
je 0x41fa73
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x41fadb
cmp edi, 0xfffffffd
je 0x41fa73
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41fadb
cmp edi, 0xfffffffe
je 0x41fa73
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41fadb
cmp edi, 0xffffffff
je 0x41fa73
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41fadb
mov ecx, dword [ebp - 0xb4]
lea esi, [esi + ecx*2]
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x8c]
inc eax
mov ebx, dword [ebp - 0xac]
push eax
push dword [ebp - 0x9c]
inc ebx
push edi
push dword [ebp - 0xa0]
mov dword [ebp - 0xac], ebx
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
mov ecx, dword [ebp - 0xcc]
add esp, 0x1c
mov edx, dword [ebp - 0xb8]
test eax, eax
je 0x41f980
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [eax + 0x7c]
jb case.0x417bc2.157
jmp 0x41ff8e
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [ebp - 0xb0]
jge case.0x417bc2.157
mov edx, dword [ebp - 0x8c]
cmp esi, dword [edx + 0x7c]
jae 0x4214b9
movzx eax, word [esi]
cmp ebx, eax
je 0x41fb60
cmp edi, eax
jne case.0x417bc2.157
mov eax, dword [ebp + 0x20]
add esi, 2
inc eax
inc ecx
push eax
push dword [ebp - 0x9c]
mov dword [ebp - 0xac], ecx
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41fb30
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x8c]
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
jmp 0x41fbe0
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [ebp - 0xb0]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx eax, word [esi]
add esi, 2
cmp ebx, eax
jne case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ecx
inc eax
mov dword [ebp - 0xac], ecx
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41fbe0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [ebx + 0x88]
jbe case.0x417bc2.157
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x417bc2.157
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x8c]
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
test edx, edx
je 0x41fd6e
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
lea esp, [esp]
cmp ebx, dword [ebp - 0xa4]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41fd15
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp dword [ebp - 0xac], ecx
je case.0x417bc2.157
cmp dword [ebp - 0xb8], ecx
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41fcd0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, edi
cmp ebx, dword [ebp - 0xa4]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx eax, word [esi]
cmp dword [ebp - 0xac], eax
je case.0x417bc2.157
cmp dword [ebp - 0xb8], eax
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
add esi, 2
inc eax
inc ebx
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41fd80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push ecx
push esi
test edx, edx
je 0x41fec0
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
jmp 0x41fe30
cmp ebx, dword [ebp - 0xa4]
jge case.0x417bc2.157
mov edx, dword [ebp - 0x8c]
cmp esi, dword [edx + 0x7c]
jae 0x4214b9
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41fe7b
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp edi, ecx
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41fe30
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
cmp ebx, dword [ebp - 0xa4]
jge case.0x417bc2.157
mov ecx, dword [ebp - 0x8c]
cmp esi, dword [ecx + 0x7c]
jae 0x41ff38
movzx eax, word [esi]
add esi, 2
cmp edi, eax
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x41fed0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [ecx + 0x88]
jbe case.0x417bc2.157
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jle case.0x417bc2.157
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [eax + 0x88]
jbe case.0x417bc2.157
mov dword [eax + 0x68], 1
cmp dword [eax + 0x8c], 1
jle case.0x417bc2.157
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
test eax, eax
js 0x420b1f
cmp eax, 0xa
ja case.default.0x419dec
jmp dword [eax*4 + 0x421f64]
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x90]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edi
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
lea esp, [esp]
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
mov ecx, dword [ebp - 0x8c]
cmp esi, dword [ecx + 0x7c]
jae 0x41ff38
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x420049
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420049
add esi, 2
cmp dword [ebp - 0xbc], 0
jne case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edi
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420010
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0x8c]
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x420111
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420111
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x420133
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp eax, 9
je 0x420158
cmp eax, 5
je 0x420158
cmp eax, 8
je 0x420158
xor eax, eax
jmp 0x42015d
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x4200c3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0x8c]
nop
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x42022e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42022e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x420250
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0xd0]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp dword [eax*4 + 0x44ef08], edx
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x4201e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0x8c]
jmp 0x420300
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x42034e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42034e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x420370
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp eax, dword [ebp - 0xd0]
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420300
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0x8c]
nop
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x42045e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42045e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x420480
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f500]
cmp eax, dword [ebp - 0xd0]
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420410
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0x8c]
nop
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x42056e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42056e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x420590
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x4205b7
cmp eax, 3
je 0x4205b7
xor eax, eax
jmp 0x4205bc
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420520
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0x8c]
mov edi, edi
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x42068e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42068e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x180e
ja 0x4206d1
je case.0x4206f1.8192
cmp ecx, 0x85
ja 0x4206bd
je case.0x4206f1.8192
cmp ecx, 9
jb case.0x4206f1.8203
cmp ecx, 0xd
jbe case.0x4206f1.8192
cmp ecx, 0x20
jmp 0x42070a
cmp ecx, 0xa0
je case.0x4206f1.8192
cmp ecx, 0x1680
jmp 0x42070a
cmp ecx, 0x202f
ja 0x4206f8
je case.0x4206f1.8192
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x4206f1.8203
movzx eax, byte [eax + 0x421f98]
jmp dword [eax*4 + 0x421f90]
cmp ecx, 0x205f
je case.0x4206f1.8192
cmp ecx, 0x3000
je case.0x4206f1.8192
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x42072e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
cmp dword [eax*4 + 0x44ef08], 6
sete cl
cmp ecx, dword [ebp - 0xbc]
je case.0x417bc2.157
jmp 0x420768
cmp dword [ebp - 0xbc], 0
jne case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420640
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
jmp 0x4207e0
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
cmp esi, dword [eax + 0x7c]
jae 0x41ff81
movzx edi, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x420834
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420834
movzx eax, word [esi]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add esi, 2
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x450b80]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x420857
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x452d80]
movzx eax, byte [eax*8 + 0x44f501]
mov eax, dword [eax*4 + 0x44ef08]
cmp eax, 1
je 0x420883
cmp eax, 3
je 0x420883
cmp edi, 0x5f
je 0x420883
xor eax, eax
jmp 0x420888
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x4207e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov edi, dword [ebp - 0x8c]
nop
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
cmp esi, dword [edi + 0x7c]
jae 0x4209e0
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x42095e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42095e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax*4 + 0x44f3c0]
lea eax, [eax*4 + 0x44f3c0]
cmp ecx, edx
jb 0x420983
lea eax, [eax + 4]
cmp ecx, edx
je 0x4209d1
mov edx, dword [eax]
cmp ecx, edx
jae 0x420976
cmp dword [ebp - 0xbc], 0
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420910
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0xbc], 0
jne case.0x417bc2.157
jmp 0x420990
cmp dword [edi + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [edi + 0x88]
jbe case.0x417bc2.157
mov dword [edi + 0x68], 1
cmp dword [edi + 0x8c], 1
jle case.0x417bc2.157
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x90]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edi
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
mov edx, dword [ebp - 0x8c]
cmp esi, dword [edx + 0x7c]
jae 0x4214b9
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x420aa7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420aa7
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp ecx, 0x24
je 0x420ad2
cmp ecx, 0x40
je 0x420ad2
cmp ecx, 0x60
je 0x420ad2
cmp ecx, 0xa0
jb 0x420ac6
cmp ecx, 0xd7ff
jbe 0x420ad2
cmp ecx, 0xe000
jae 0x420ad2
xor eax, eax
jmp 0x420ad7
mov eax, 1
cmp eax, dword [ebp - 0xbc]
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push edi
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420a53
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
push ecx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
cmp edi, 0x16
jne 0x420d20
test eax, eax
jne 0x41b259
jmp 0x420b60
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
mov eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x7c]
mov dword [ebp - 0xcc], edi
cmp esi, edi
jae 0x41ff81
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x98], 0
je 0x420bbc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420bbc
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x420bde
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ebx, byte [eax*8 + 0x44f502]
cmp esi, edi
jae 0x420ca4
jmp 0x420c00
cmp dword [ebp - 0x98], 0
mov edi, 1
movzx ecx, word [esi]
je 0x420c3e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420c3e
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x450b80]
shl eax, 7
and ecx, 0x8000007f
jns 0x420c64
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x452d80]
movzx ecx, byte [eax*8 + 0x44f502]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x44edbc], eax
je 0x420c9e
lea esi, [esi + edi*2]
mov ebx, ecx
mov edi, dword [ebp - 0xcc]
cmp esi, edi
jb 0x420c00
jmp 0x420ca4
mov edi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x8c], 0
je 0x420cd3
cmp esi, edi
jb 0x420cd3
cmp esi, dword [ecx + 0x88]
jbe 0x420cd3
mov dword [ecx + 0x68], 1
cmp dword [ecx + 0x8c], 1
jg 0x4214e6
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp - 0xb0]
inc eax
push eax
push dword [ebp - 0x9c]
inc ebx
push ecx
push dword [ebp - 0xa0]
mov dword [ebp - 0xb0], ebx
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420b60
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x98], 0
je 0x421105
test eax, eax
jne 0x41b259
jmp 0x420d40
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
mov edx, dword [ebp - 0x8c]
mov ecx, dword [edx + 0x7c]
cmp esi, ecx
jae 0x4214b9
cmp edi, 0xc
jne 0x420d96
mov edx, dword [edx + 0x18]
mov eax, dword [ebp - 0x8c]
test edx, edx
je 0x420dd9
push dword [ebp - 0x98]
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne case.0x417bc2.157
mov edx, dword [ebp - 0x8c]
movzx ecx, word [esi]
add esi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x420dc6
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x419dec
jmp dword [eax*4 + 0x421fc4]
mov edx, dword [eax + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x420d90
mov ecx, dword [ebp - 0x8c]
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x420e0f
cmp edx, 1
je case.0x417bc2.157
mov ax, word [esi + 2]
mov edx, ecx
cmp ax, word [edx + 0x36]
je case.0x417bc2.157
jmp 0x420d96
mov edx, ecx
jmp 0x420d96
cmp dword [edx + 0x8c], 0
je case.0x420dd2.13
cmp esi, dword [edx + 0x7c]
jb case.0x420dd2.13
cmp dword [edx + 0x18], 0
jne case.0x420dd2.13
cmp dword [edx + 0x1c], 2
jne case.0x420dd2.13
movzx eax, word [edx + 0x34]
cmp ecx, eax
jne case.0x420dd2.13
mov dword [edx + 0x68], 1
cmp dword [edx + 0x8c], 1
jg 0x4214e6
jmp case.0x420dd2.13
cmp ecx, 0xd
ja 0x420e96
je 0x420e7b
cmp ecx, 0xa
je case.0x420dd2.13
lea eax, [ecx - 0xb]
jmp 0x420ea8
cmp esi, dword [edx + 0x7c]
jae case.0x420dd2.13
cmp word [esi], 0xa
jne case.0x420dd2.13
add esi, 2
jmp case.0x420dd2.13
cmp ecx, 0x85
je 0x420eb1
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
cmp dword [edx + 0x6c], 0
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x180e
ja 0x420ef8
je case.0x417bc2.157
cmp ecx, 0xa0
ja 0x420eed
je case.0x417bc2.157
cmp ecx, 9
je case.0x417bc2.157
cmp ecx, 0x20
jmp 0x4210be
cmp ecx, 0x1680
jmp 0x4210be
cmp ecx, 0x205f
ja 0x420f29
je case.0x417bc2.157
cmp ecx, 0x2000
jb case.0x420dd2.13
cmp ecx, 0x200a
jbe case.0x417bc2.157
cmp ecx, 0x202f
jmp 0x4210be
cmp ecx, 0x3000
jmp 0x4210be
cmp ecx, 0x180e
ja 0x420f78
je case.0x420dd2.13
cmp ecx, 0xa0
ja 0x420f67
je case.0x420dd2.13
cmp ecx, 9
je case.0x420dd2.13
cmp ecx, 0x20
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x1680
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x205f
ja 0x420faf
je case.0x420dd2.13
cmp ecx, 0x2000
jb case.0x417bc2.157
cmp ecx, 0x200a
jbe case.0x420dd2.13
cmp ecx, 0x202f
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x3000
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x85
ja 0x420fe5
je case.0x417bc2.157
cmp ecx, 0xa
jb case.0x420dd2.13
cmp ecx, 0xd
jbe case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x2028
jb case.0x420dd2.13
cmp ecx, 0x2029
jbe case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x85
ja 0x421021
je case.0x420dd2.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x417bc2.157
jmp case.0x420dd2.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x100
jae case.0x420dd2.13
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 4
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x100
jae case.0x417bc2.157
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 4
jmp 0x4210be
cmp ecx, 0x100
jae case.0x420dd2.13
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 1
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x100
jae case.0x417bc2.157
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 1
jmp 0x4210be
cmp ecx, 0x100
jae case.0x420dd2.13
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x417bc2.157
jmp case.0x420dd2.13
cmp ecx, 0x100
jae case.0x417bc2.157
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 0x10
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x420d40
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x41b259
lea ecx, [ecx]
cmp ebx, dword [ebp - 0xac]
jge case.0x417bc2.157
mov edx, dword [ebp - 0x8c]
mov ecx, dword [edx + 0x7c]
cmp esi, ecx
jae 0x4214b9
cmp edi, 0xc
jne 0x42115e
mov edx, dword [edx + 0x18]
mov eax, dword [ebp - 0x8c]
test edx, edx
je 0x421177
push 0
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.00423310
add esp, 0x14
test eax, eax
jne case.0x417bc2.157
mov edx, dword [ebp - 0x8c]
movzx ecx, word [esi]
lea eax, [edi - 6]
add esi, 2
cmp eax, 0xf
ja case.default.0x419dec
jmp dword [eax*4 + 0x422004]
mov edx, dword [eax + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x421158
mov ecx, dword [ebp - 0x8c]
mov ax, word [esi]
cmp ax, word [ecx + 0x34]
jne 0x4211ad
cmp edx, 1
je case.0x417bc2.157
mov ax, word [esi + 2]
mov edx, ecx
cmp ax, word [edx + 0x36]
je case.0x417bc2.157
jmp 0x42115e
mov edx, ecx
jmp 0x42115e
cmp dword [edx + 0x8c], 0
je case.0x421170.13
cmp esi, dword [edx + 0x7c]
jb case.0x421170.13
cmp dword [edx + 0x18], 0
jne case.0x421170.13
cmp dword [edx + 0x1c], 2
jne case.0x421170.13
movzx eax, word [edx + 0x34]
cmp ecx, eax
jne case.0x421170.13
mov dword [edx + 0x68], 1
cmp dword [edx + 0x8c], 1
jg 0x4214e6
jmp case.0x421170.13
cmp ecx, 0xd
ja 0x421234
je 0x421219
cmp ecx, 0xa
je case.0x421170.13
lea eax, [ecx - 0xb]
jmp 0x421246
cmp esi, dword [edx + 0x7c]
jae case.0x421170.13
cmp word [esi], 0xa
jne case.0x421170.13
add esi, 2
jmp case.0x421170.13
cmp ecx, 0x85
je 0x42124f
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
cmp dword [edx + 0x6c], 0
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0x180e
ja 0x421296
je case.0x417bc2.157
cmp ecx, 0xa0
ja 0x42128b
je case.0x417bc2.157
cmp ecx, 9
je case.0x417bc2.157
cmp ecx, 0x20
jmp 0x42145c
cmp ecx, 0x1680
jmp 0x42145c
cmp ecx, 0x205f
ja 0x4212c7
je case.0x417bc2.157
cmp ecx, 0x2000
jb case.0x421170.13
cmp ecx, 0x200a
jbe case.0x417bc2.157
cmp ecx, 0x202f
jmp 0x42145c
cmp ecx, 0x3000
jmp 0x42145c
cmp ecx, 0x180e
ja 0x421316
je case.0x421170.13
cmp ecx, 0xa0
ja 0x421305
je case.0x421170.13
cmp ecx, 9
je case.0x421170.13
cmp ecx, 0x20
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0x1680
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0x205f
ja 0x42134d
je case.0x421170.13
cmp ecx, 0x2000
jb case.0x417bc2.157
cmp ecx, 0x200a
jbe case.0x421170.13
cmp ecx, 0x202f
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0x3000
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0x85
ja 0x421383
je case.0x417bc2.157
cmp ecx, 0xa
jb case.0x421170.13
cmp ecx, 0xd
jbe case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0x2028
jb case.0x421170.13
cmp ecx, 0x2029
jbe case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0x85
ja 0x4213bf
je case.0x421170.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x417bc2.157
jmp case.0x421170.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0xff
ja case.0x421170.13
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 4
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0xff
ja case.0x417bc2.157
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 4
jmp 0x42145c
cmp ecx, 0xff
ja case.0x421170.13
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 1
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0xff
ja case.0x417bc2.157
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 1
jmp 0x42145c
cmp ecx, 0xff
ja case.0x421170.13
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x417bc2.157
jmp case.0x421170.13
cmp ecx, 0xff
ja case.0x417bc2.157
mov eax, dword [edx + 0x44]
test byte [ecx + eax], 0x10
je case.0x417bc2.157
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0x9c]
push edx
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
je 0x421110
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffff2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
cmp dword [edx + 0x8c], 0
je case.0x417bc2.157
cmp esi, dword [edx + 0x88]
jbe case.0x417bc2.157
mov dword [edx + 0x68], 1
cmp dword [edx + 0x8c], 1
jle case.0x417bc2.157
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
mov dword [ebp - 0xd8], eax
mov eax, dword [ecx + ebx*4 + 4]
mov dword [ebp - 0xcc], eax
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x94]
sub eax, edx
mov edx, dword [ebp - 0x8c]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0xc4], eax
mov eax, esi
sub eax, dword [edx + 0x78]
mov ebx, dword [edx + 0xb0]
sar eax, 1
mov dword [ecx], eax
lea ecx, [ecx]
cmp dword [ebp - 0xa4], 0x88
jb 0x42155a
mov dword [edx + 0x9c], 2
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [ecx]
push edx
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [ecx + eax*2]
push eax
push esi
call fcn.00417a50
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc1b
je 0x42163b
cmp edx, 0xfffffc20
jne 0x4215eb
mov eax, dword [ebp - 0x90]
movzx ecx, word [eax + 2]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x8c]
cmp dword [ecx + 0x80], eax
jae 0x4216da
mov ecx, dword [ebp - 0x90]
cmp word [ecx], 0x77
mov ecx, dword [ebp - 0x8c]
je 0x4215e4
cmp word [eax], 0x77
jne 0x4216da
xor edx, edx
jmp 0x4215f9
test edx, edx
jne 0x4216da
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x90]
mov dword [ecx + 0x94], edi
mov ecx, dword [ebp - 0x90]
movzx eax, word [eax + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x90]
mov dword [ecx + 0xb0], ebx
cmp word [eax], 0x77
jne 0x421641
mov edx, ecx
jmp 0x421540
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ecx + 0xc]
mov esi, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xd8]
pop edi
mov dword [eax + esi*4], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xcc]
mov dword [eax + esi*4 + 4], ecx
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
sub ecx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xc4]
mov dword [eax + ecx*4], esi
mov eax, edx
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
cmp edx, 0xfffffc1b
jne 0x4216da
mov ecx, dword [ebp - 0x90]
mov edi, 0x81
movzx eax, word [ecx]
cmp ax, di
je 0x4216c9
cmp eax, 0x77
jne 0x4216c0
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea ecx, [ecx + eax*2]
je 0x4216b2
movzx eax, word [ecx + 2]
neg eax
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x8c]
xor esi, esi
cmp dword [eax + 0xb8], ecx
cmove edx, esi
pop edi
pop esi
mov eax, edx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
lea ebx, [edx + 4]
mov dword [ecx + 0xb4], ebx
mov dword [ecx + 0xb0], 0
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [edx]
push ecx
push dword [ebp - 0xa0]
movzx ecx, byte [eax + 0x44edf0]
movzx eax, word [edx + 2]
push dword [ebp - 0xa8]
add ecx, eax
lea eax, [edx + ecx*2]
push eax
push esi
call fcn.00417a50
mov edi, eax
add esp, 0x1c
cmp edi, 1
je 0x421754
cmp edi, 0xfffffc19
jne 0x42177c
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0xb0], 0
jne 0x421782
mov dword [eax + 0xb0], ebx
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x8c]
cmp edi, 0xfffffc1f
jne 0x41f2e3
push dword [eax + 0x80]
push ebx
call fcn.004232d0
add esp, 8
test eax, eax
jne 0x41f2e3
mov eax, dword [ebp - 0x8c]
mov dword [eax + 0x80], esi
lea eax, [edi - 1]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [ecx]
push ebx
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [ecx + eax*2]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
mov ecx, 0xfffffc1c
test eax, eax
cmovne ecx, eax
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [ecx]
push ebx
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [ecx + eax*2]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
mov ecx, 0xfffffc1d
test eax, eax
cmovne ecx, eax
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x90]
lea edi, [edx + 4]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
mov eax, dword [ebp + 0x20]
inc eax
push eax
movzx eax, word [edx]
push dword [ebp - 0x9c]
push ebx
movzx ecx, byte [eax + 0x44edf0]
movzx eax, word [edx + 2]
push dword [ebp - 0xa0]
add ecx, eax
push dword [ebp - 0xa8]
lea eax, [edx + ecx*2]
push eax
push esi
call fcn.00417a50
mov ecx, eax
add esp, 0x1c
cmp ecx, 1
je 0x4218ce
cmp ecx, 0xfffffc19
jne 0x4218e1
cmp dword [ebx + 0xb0], 0
jne 0x4218e1
mov dword [ebx + 0xb0], edi
pop edi
test ecx, ecx
mov eax, 0xfffffc1d
pop esi
cmovne eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [ecx]
push ebx
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [ecx + eax*2]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
pop edi
mov dword [ebx + 0x80], esi
mov eax, 0xfffffc1e
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp - 0x90]
inc eax
push eax
push dword [ebp - 0x9c]
movzx eax, word [edi]
push ebx
push dword [ebp - 0xa0]
movzx eax, byte [eax + 0x44edf0]
push dword [ebp - 0xa8]
lea eax, [edi + eax*2]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
test eax, eax
jne 0x41b259
mov dword [ebx + 0x80], edi
mov eax, 0xfffffc20
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x90]
lea edi, [edx + 4]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
mov eax, dword [ebp + 0x20]
inc eax
push eax
movzx eax, word [edx]
push dword [ebp - 0x9c]
push ebx
movzx ecx, byte [eax + 0x44edf0]
movzx eax, word [edx + 2]
push dword [ebp - 0xa0]
add ecx, eax
push dword [ebp - 0xa8]
lea eax, [edx + ecx*2]
push eax
push esi
call fcn.00417a50
add esp, 0x1c
cmp eax, 1
je 0x421a10
cmp eax, 0xfffffc19
jne 0x421a23
cmp dword [ebx + 0xb0], 0
jne 0x421a23
mov dword [ebx + 0xb0], edi
test eax, eax
jne 0x41b259
mov eax, dword [ebp - 0x90]
pop edi
mov dword [ebx + 0x80], eax
mov eax, 0xfffffc20
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0xa8]
cmp esi, edi
jne 0x421a8c
cmp edx, 0x9f
je 0x421a8c
cmp dword [ebx + 0xa8], 0
jne 0x421a8c
cmp dword [ebx + 0x60], 0
jne case.0x417bc2.157
cmp dword [ebx + 0x64], 0
je 0x421a8c
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp edi, eax
je case.0x417bc2.157
mov eax, dword [ebp - 0xa0]
test edx, edx
mov dword [ebx + 0x84], esi
mov ecx, 1
mov dword [ebx + 0x90], eax
mov eax, 0xfffffc19
mov dword [ebx + 0x80], edi
cmove eax, ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffb
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00431ac5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0xffffffeb
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00431ac5
mov esp, ebp
pop ebp
ret