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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
mov ebx, edx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x30], ebx
push esi
push edi
test ebx, ebx
je 0x4480aa
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov eax, dword [esi]
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0x28], ecx
cmp eax, dword [esi + 4]
jae 0x4501f4
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x4501ea
cmp dword [esi + 0x9c], 2
je 0x4480de
movzx ecx, word [ebx]
mov edi, ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x38], edi
cmp edi, 0xa1
ja case.0x40a396.98
movzx eax, byte [edi + 0x40ac10]
jmp dword [eax*4 + 0x40aac4]
movzx eax, word [ebx + 2]
mov edi, ebx
add eax, eax
sub edi, eax
mov eax, 0x88
mov dword [ebp - 0x20], edi
movzx ecx, word [edi]
cmp cx, ax
jae 0x448e39
mov eax, 0x81
cmp cx, ax
je 0x448e39
mov dword [ebp - 0x2c], 0
cmp ecx, 0x7d
jb 0x40a3e3
mov eax, 0x80
cmp cx, ax
jbe 0x44e5cf
mov eax, 0x82
cmp cx, ax
je 0x44e5cf
mov eax, 0x85
cmp cx, ax
je 0x40a7a6
mov eax, 0x8a
cmp cx, ax
je 0x40a7a6
mov eax, 0x86
cmp cx, ax
je 0x40a7a6
mov eax, 0x8b
cmp cx, ax
je 0x40a7a6
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x448eb1
mov eax, 0x81
cmp word [edi], ax
je 0x44e57a
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a36d
cmp edi, 0x88
jae 0x44e3f8
cmp edi, 0x81
je 0x44e3f8
cmp dword [esi + 0x70], 0
jne 0x44e402
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x44e402
movzx eax, word [ebx]
movzx eax, byte [eax + 0x4c3110]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x28], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0x40a351
jmp 0x4501f4
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x450190
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x4501d6
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x24], ecx
cmp eax, ecx
jae 0x44e92c
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov edi, eax
je 0x40a518
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x449d73
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c2]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x40a5b6
mov esi, dword [ebp - 8]
mov ebx, edi
jmp 0x40a550
cmp dword [ebp - 0x28], 0
mov edx, 1
movzx ecx, word [esi]
je 0x40a570
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x449d9f
mov esi, dword [ebp - 0x34]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edi, ebx
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx ecx, byte [eax*8 + 0x4b03c2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c31c0], eax
mov eax, dword [ebp - 0x24]
jne 0x40a681
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
jne 0x449dc3
mov edx, dword [ebp - 8]
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x40a36d
movzx edx, word [ebx + 0x22]
lea eax, [ebx + 2]
add ebx, 0x22
mov dword [ebp - 0xc], eax
mov ecx, edx
mov dword [ebp - 0x30], ebx
cmp ecx, 0x6d
jbe 0x44a037
mov edx, 1
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x28], 0
mov ecx, 1
mov dword [ebp - 0x24], ecx
je 0x44a105
cmp edx, ecx
jl 0x40a66d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44a0d2
cmp edx, 0xff
ja 0x44a0f7
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x40a396.157
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x40a611
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x20]
jne 0x44a167
mov edx, dword [ebp - 8]
jmp 0x40a36d
lea esi, [ebx + edx*2]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], esi
mov ebx, esi
mov edi, esi
cmp esi, eax
jb 0x40a550
jmp 0x40a5b0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
cmp dword [ebp - 0x28], 0
je 0x44a6d2
movzx ecx, word [ebx + 2]
add ebx, 2
mov eax, ecx
mov dword [ebp - 0x34], 1
and eax, 0xfc00
mov edx, ecx
mov dword [ebp - 0x24], edx
cmp eax, 0xd800
je 0x44a623
mov eax, dword [ebp - 8]
cmp edx, 0x80
jae 0x44a64e
movzx edx, word [eax]
mov eax, dword [esi + 0x3c]
cmp edx, 0xff
ja 0x40a6f7
movzx edx, byte [eax + edx]
movzx eax, byte [eax + ecx]
cmp eax, edx
jne case.0x40a396.157
add ebx, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40a36d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], ecx
je 0x40a74a
mov eax, edx
mov dword [ebp - 0x20], ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x449b3b
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x4b2c10]
cmp eax, 9
jne 0x449b65
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x4b1a40]
lea eax, [eax*4 + 0x4b1a40]
cmp dword [ebp - 0x20], ecx
jb 0x449d65
lea eax, [eax + 4]
cmp edx, ecx
je 0x40a821
mov ecx, dword [eax]
cmp edx, ecx
jae 0x40a790
jmp 0x449d65
movzx eax, word [edi + 4]
mov dword [ebp - 0x24], eax
lea edi, [eax + eax]
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], edi
mov ecx, edi
test eax, eax
jne 0x448e51
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, dword [ebp - 0x24]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jge 0x448e7d
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jg 0x448e90
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edi*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, edi
jg 0x40a819
lea ecx, [edi + 2]
mov dword [ebp + 0xc], ecx
mov edi, dword [ebp - 0x20]
jmp 0x40a42c
cmp edi, 0x10
jne case.0x40a396.157
add ebx, 6
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40a36d
cmp dword [ebp - 0x28], 0
je 0x44a5f1
mov ax, word [ebx + 2]
add ebx, 2
mov ecx, 0xfc00
mov edi, 1
and ax, cx
mov dword [ebp - 0x34], edi
mov ecx, 0xd800
cmp ax, cx
je 0x44a5e4
mov ecx, dword [esi + 0x7c]
mov eax, ecx
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x34], eax
jg 0x44e8f4
lea esp, [esp]
movzx ecx, word [ebx]
dec edi
movzx eax, word [edx]
add ebx, 2
add edx, 2
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], edx
cmp cx, ax
jne case.0x40a396.157
test edi, edi
jle 0x40a679
jmp 0x40a880
lea ecx, [edi - 0x55]
add ebx, 2
mov eax, ebx
test cl, 1
je 0x44b449
mov edx, 1
movsx edi, byte [ecx + 0x4b2bfc]
mov dword [ebp - 0xc], edi
movsx edi, byte [ecx + 0x4b2bf0]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x40a8e1
mov dword [ebp - 0x14], 0x7fffffff
movzx edi, word [ebx]
lea ebx, [eax + 2]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], ebx
cmp edi, 0x10
je 0x44b450
cmp edi, 0xf
je 0x44b450
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
test ecx, ecx
jg 0x44b477
mov edi, dword [ebp - 8]
cmp ecx, dword [ebp - 0x14]
je 0x40a679
test edx, edx
je 0x44c9b4
test eax, eax
jns 0x44ed17
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
cmp dword [ebp - 0x20], 0x16
je 0x44f5e6
cmp dword [ebp - 0x28], 0
je 0x44fadd
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c53c
cmp dword [ebp - 0x20], 0xc
jne 0x40a9a2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44f766
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0040863e
add esp, 0xc
test eax, eax
jne case.0x40a396.157
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
je 0x44f79f
cmp dword [ebp - 0x20], 0xc
jne 0x44f7c7
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [esi + 0x8c], 0
jne 0x44fa9b
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov esi, dword [ebp + 0x10]
inc eax
inc dword [ebp - 0xc]
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
jmp 0x40a960
movzx edx, word [ebx + 4]
mov dword [ebp - 0x30], edx
lea eax, [edx + edx]
mov dword [ebp - 0x20], eax
cmp eax, dword [esi + 0x14]
jge case.0x40a396.129
mov ecx, dword [esi + 0xc]
lea edi, [edx + edx]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + edi*4 + 4]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x10]
sub eax, edx
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ecx], eax
nop
cmp edi, 0x88
jae 0x44fec0
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1b
je 0x44ff14
cmp eax, 0xfffffc20
je 0x44fecf
test eax, eax
jne 0x40a4db
jmp 0x44fef1
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
jne 0x4480cc
push 1
push 0
push 0
push 0
push 0
xor edx, edx
lea ecx, [ebp + 0x18]
call fcn.0040a310
add esp, 0x14
jmp 0x40a4db
lea eax, [ebp + 0x18]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
neg eax
jmp 0x40a4db
mov eax, dword [ebp - 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
mov dword [ebp + 0x14], eax
mov dword [esi + 0x9c], 0
jmp 0x40a679
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x44e4dc
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x4c3110]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x40a36d
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0xb0]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
cmp eax, 1
je 0x4481a6
cmp eax, 0xfffffc20
jne 0x448186
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x40a4db
cmp word [ebx], 0x77
je 0x44818e
cmp word [ecx], 0x77
jne 0x40a4db
jmp 0x44818e
test eax, eax
jne 0x40a4db
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x448138
mov ecx, dword [ebp + 8]
jmp 0x4481af
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x4481c5
cmp eax, 0x77
jne case.0x40a396.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4481c5
cmp word [ebx], 0x78
mov edx, dword [esi + 0x90]
mov eax, dword [esi + 0x84]
mov dword [ebp + 0xc], edx
mov dword [ebp - 8], eax
je 0x448d69
cmp eax, dword [ebp - 0x1c]
je 0x448d69
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push edx
push ecx
mov ecx, dword [ebp - 8]
jne 0x44e213
lea edx, [ebx + 4]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ecx, dword [ebp - 0x20]
mov ebx, ecx
jmp 0x40a48f
mov dword [ebp - 0x24], 0
jmp 0x448c1d
mov dword [ebp - 0x24], 0
mov eax, ebx
mov dword [ebp - 0x34], 0
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x20], eax
cmp edi, 0x88
jb 0x44826c
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x448d0c
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x34], 1
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
cmp dword [ebp - 8], eax
je 0x448d5b
mov dword [ebp - 8], eax
jmp 0x44825a
cmp word [ebx + 4], 0x76
lea ecx, [ebx + 4]
movzx eax, word [ebx + 2]
mov ebx, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
jne 0x4483c8
cmp dword [0x4d3620], 0
je 0x4483ba
mov dword [ebp - 0xa0], 2
movzx eax, word [ecx + 2]
mov dword [ebp - 0x9c], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x88], eax
movzx eax, word [ecx + 4]
mov dword [ebp - 0x78], eax
movzx eax, word [ecx + 6]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0x80], eax
jne 0x448381
mov dword [ebp - 0x80], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xa0]
push eax
call dword [0x4d3620]
add esp, 4
test eax, eax
jg case.0x40a396.157
js 0x40a4db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ecx + 8]
add eax, 0xfffffffc
mov ecx, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [eax]
mov dword [ebp - 0x30], eax
add eax, 0xffffff73
cmp eax, 0x10
ja case.0x4483eb.146
movzx eax, byte [eax + 0x45021a]
jmp dword [eax*4 + 0x450202]
mov ecx, dword [esi + 0xa8]
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
je 0x4485fc
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x448417
cmp eax, dword [ecx + 4]
jne 0x4485fc
mov ecx, 1
jmp 0x4485d3
cmp dword [esi + 0xa8], ecx
je case.0x4483eb.145
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea ecx, [eax + ecx*2]
test ebx, ebx
je 0x4485f4
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
movzx eax, word [ecx]
dec ebx
cmp eax, dword [ebp - 0x1c]
je 0x4484c4
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x34], ecx
test ebx, ebx
jg 0x448455
xor ecx, ecx
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x44848d
cmp word [ebx - 4], 0x77
jne 0x40a36d
cmp edi, 0x8c
jne 0x40a495
mov ecx, dword [ebp - 8]
mov edx, ebx
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
jmp 0x40a4db
mov ebx, dword [ebp - 0x2c]
mov ecx, 1
jmp 0x4485d3
mov ebx, dword [ebp - 0x2c]
movzx eax, word [ebx + 2]
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x4484f0
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x4484f0
mov ecx, 1
jmp 0x4484f2
xor ecx, ecx
test ecx, ecx
jne 0x4485d3
jmp 0x448475
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea eax, [eax + ecx*2]
test ebx, ebx
je 0x4485f4
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec ebx
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x448534
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4484c4
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x34], eax
test ebx, ebx
jg 0x44851f
jmp 0x448470
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 8]
mov dword [esi + 0x9c], 1
mov eax, dword [ebp + 0x18]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
cmp eax, 1
jne 0x4485e2
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x448584
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x92
mov dword [ebp - 0x20], 1
cmp word [eax], cx
jne 0x44859d
lea eax, [ebx + 2]
mov ebx, eax
movzx eax, word [eax + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x4485b9
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x4485ab
mov eax, dword [ebp - 0x30]
mov ecx, 2
movzx eax, byte [eax + 0x4c3110]
sub ecx, eax
lea ebx, [edx + ecx*2]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + 0x4c3110]
jmp 0x448478
test eax, eax
je 0x4485f1
cmp eax, 0xfffffc20
jne 0x40a4db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp case.0x4483eb.145
mov ecx, dword [ebp - 0x20]
jmp 0x448475
movzx ecx, word [ebx + 2]
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
mov dword [ebp - 0x1c], ecx
or eax, ecx
lea edi, [ecx + ecx]
mov dword [esi + 0x94], eax
mov dword [ebp - 0x34], edi
cmp edi, dword [esi + 0x14]
jl 0x448639
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x40a446
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x1c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edi*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jl 0x44adb8
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x448680
sub ecx, edx
mov edi, edx
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
lea eax, [edi + 2]
mov dword [ebp + 0xc], eax
jmp 0x44adb8
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
jne 0x4486ae
mov dword [esi + 0x9c], 0
mov edi, 1
jmp 0x4486b0
xor edi, edi
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x448727
cmp eax, 0xfffffc19
je 0x448727
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], ecx
cmp eax, 0xfffffc20
jne 0x44870f
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ff39
cmp word [ebx], 0x77
je 0x448717
cmp word [eax], 0x77
je 0x448717
jmp 0x44ff39
test eax, eax
jne 0x40a4db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4486b0
jmp 0x448730
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x40a396.157
test edi, edi
jne 0x40a4d6
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x448742
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x40a679
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x448786
mov dword [esi + 0x9c], 0
mov dword [ebp - 0x34], 1
jmp 0x44878d
mov dword [ebp - 0x34], 0
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xb0], edi
cmp eax, 0xfffffc20
jg 0x4487e6
jne 0x4487fb
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x448814
cmp word [ebx], 0x77
je 0x4487d6
cmp word [eax], 0x77
jne 0x448814
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44878d
jmp 0x448822
mov ecx, eax
sub ecx, 0
je 0x4487d6
sub ecx, 1
je case.0x40a396.157
jmp 0x40a4db
cmp eax, 0xfffffc19
je case.0x40a396.157
add eax, 0x3e4
cmp eax, 3
ja 0x44ff39
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x448814
cmp dword [ebp - 0x34], 0
jne 0x40a4d6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a679
cmp dword [ebp - 0x28], 0
je 0x44887c
movzx ecx, word [ebx + 2]
test ecx, ecx
je 0x448896
mov eax, dword [ebp - 8]
dec ecx
add eax, 0xfffffffe
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x40a396.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x448876
add eax, 0xfffffffe
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x448845
jmp 0x448899
movzx eax, word [ebx + 2]
mov ecx, dword [ebp - 8]
neg eax
lea ecx, [ecx + eax*2]
mov eax, ecx
mov dword [ebp - 8], ecx
cmp eax, dword [esi + 0x78]
jb case.0x40a396.157
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x40a446
mov dword [esi + 0x88], eax
jmp 0x40a446
cmp dword [0x4d3620], 0
je 0x448988
mov dword [ebp - 0xd4], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xbc], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0xac], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0xb4], eax
jne 0x44894f
mov dword [ebp - 0xb4], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0xb0], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xd4]
push eax
call dword [0x4d3620]
add esp, 4
test eax, eax
jg case.0x40a396.157
js 0x40a4db
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x40a36d
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jne 0x4489a8
xor edx, edx
jmp 0x4489ac
movzx edx, word [eax + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x4489d3
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x4489cd
cmp eax, dword [ecx + 0x14]
jne 0x4489cd
mov eax, 0xffffffe6
jmp 0x40a4db
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4489b9
mov dword [ebp - 0x54], edx
add ebx, 4
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x1e
jg 0x448a13
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x448a31
lea eax, [ecx*4]
push eax
call fcn.0040acb2
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x44e543
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.004211b0
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov eax, 0x88
cmp word [ecx], ax
sbb edi, edi
inc edi
test edi, edi
je 0x448a5d
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ecx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 8]
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x4c]
shl eax, 2
push eax
push dword [ebp - 0x50]
push dword [esi + 0xc]
call fcn.004211b0
mov eax, dword [ebp - 0x48]
add esp, 0xc
mov dword [esi + 0x94], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 1
je 0x448b1c
cmp eax, 0xfffffc19
je 0x448b1c
cmp eax, 0xfffffc1c
jl 0x448acb
cmp eax, 0xfffffc20
jle 0x448afd
test eax, eax
jne 0x44e524
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x24], ecx
je 0x448a4f
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x40a396.157
push eax
call fcn.0040acbb
add esp, 4
jmp case.0x40a396.157
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x448b32
push eax
call fcn.0040acbb
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x40a679
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x40a396.119
mov dword [ebp - 0x30], ebx
jmp 0x40a36d
mov eax, dword [ebp + 0x18]
add ebx, 2
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, ebx
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x448b86
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a679
add ebx, 2
mov dword [ebp - 0x30], ebx
mov edx, ebx
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x448ba7
mov eax, dword [ebp + 0x18]
add edx, 4
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
jmp 0x40a679
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x448be2
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a36d
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x24], 1
cmp edi, 0x86
je 0x448c1d
cmp edi, 0x8b
jne 0x448240
movzx edx, word [ebx + 4]
mov dword [ebp - 0x20], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x448240
mov ecx, ebx
shl eax, 2
sub ecx, dword [esi + 0x74]
sar ecx, 1
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x10]
mov edx, eax
sub edx, dword [esi + 0x78]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp edi, 0x88
jb 0x448c94
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x448d8f
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov ecx, 1
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 8], eax
je 0x448e0e
mov dword [ebp - 8], eax
jmp 0x448c6f
cmp eax, 0xfffffc20
jne 0x448d37
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ff39
cmp word [ebx], 0x77
je 0x448d3f
cmp word [eax], 0x77
je 0x448d3f
jmp 0x44ff39
test eax, eax
jne 0x40a4db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x448d74
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
jmp 0x44825a
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x448d5b
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a679
cmp dword [ebp - 0x34], 0
jne 0x448d69
cmp dword [ebp - 0x24], 0
je case.0x40a396.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a679
cmp eax, 0xfffffc20
jne 0x448dba
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ff39
cmp word [ebx], 0x77
je 0x448dc2
cmp word [eax], 0x77
je 0x448dc2
jmp 0x44ff39
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x448c6c
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x448e1c
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax], edx
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax + 4], edx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0xc]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x30]
jmp 0x448e1c
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x448e0e
cmp dword [ebp - 0x24], 0
jne 0x448d69
test ecx, ecx
je case.0x40a396.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a679
mov eax, dword [ebp + 0x14]
mov esi, eax
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
jmp 0x40a3d0
mov edx, dword [ebp - 0x24]
mov ecx, edi
cmp dword [eax + 4], edx
mov edx, dword [ebp - 8]
jne 0x40a7c3
mov eax, edx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x40a4db
mov edi, dword [ebp - 0x20]
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x40a429
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x448ea9
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
jmp 0x40a7eb
cmp eax, 0x7b
je 0x44e5ad
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 8], eax
jne 0x44e22e
mov edx, dword [ebp - 8]
jmp 0x40a438
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x448ee5
cmp eax, dword [esi + 0x78]
je case.0x40a396.157
jmp 0x448ee5
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x78]
jne case.0x40a396.157
jmp 0x40a5c3
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x448f05
cmp eax, dword [esi + 0x78]
je case.0x40a396.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x40a5c3
cmp eax, dword [esi + 0x7c]
je case.0x40a396.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x448f49
cmp eax, ecx
jbe case.0x40a396.157
mov edi, dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push edi
push eax
push ecx
mov ecx, dword [ebp - 8]
call 0x49c3b9
add esp, 0xc
test eax, eax
je case.0x40a396.157
jmp 0x40a5c3
mov edi, dword [esi + 0x1c]
lea edx, [edi + edi]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jb case.0x40a396.157
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x40a396.157
cmp edi, 1
je 0x40a5c3
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x40a396.157
jmp 0x40a5c3
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x40a396.157
jmp 0x40a5c6
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x40a679
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x44905a
mov edx, dword [esi + 0x18]
test edx, edx
je 0x449027
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0040863e
add esp, 0xc
test eax, eax
jne 0x40a5c3
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x40a396.157
cmp dword [esi + 0x18], 0
jne case.0x40a396.157
cmp dword [esi + 0x1c], 2
jne case.0x40a396.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x40a396.157
jmp 0x44c555
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x448fe5
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x448fe2
cmp edx, 1
je 0x40a5c3
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x448fe2
jmp 0x40a5c3
cmp dword [esi + 0x4c], 0
jne case.0x40a396.157
cmp dword [esi + 0x8c], 0
je 0x40a5c3
cmp eax, dword [esi + 0x88]
jmp 0x44907f
cmp edx, dword [esi + 0x88]
jbe 0x40a5c3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
jmp 0x40a5c3
cmp dword [esi + 0x4c], 0
jne case.0x40a396.157
cmp dword [esi + 0x5c], 0
je case.0x40a396.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x40a396.157
jmp 0x449064
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x449064
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x4490e8
push dword [ebp - 0x28]
push edi
push ecx
mov ecx, eax
call fcn.0040863e
add esp, 0xc
test eax, eax
jne 0x44911d
jmp 0x448fe2
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x448fe5
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x448fe2
cmp edx, 1
je 0x44911d
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x448fe2
mov ecx, dword [edi]
mov eax, dword [esi + 0x7c]
add ecx, ecx
sub eax, ecx
cmp dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jne 0x448fe5
jmp 0x449064
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
je 0x4492ac
cmp eax, dword [esi + 0x78]
je 0x449211
lea edx, [eax - 2]
mov edi, 0xfc00
mov ax, word [edx]
mov ecx, edx
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x44916c
lea ecx, [edx - 2]
mov edx, ecx
cmp ecx, dword [esi + 0x88]
jae 0x44917a
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
mov edi, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4491a9
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, ecx
cmp dword [esi + 0x58], 0
je 0x4491f3
cmp edi, 0x5f
je 0x4491e9
mov eax, edi
and edi, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x4491e9
cmp eax, 3
jne 0x44920e
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x449213
cmp edi, 0x100
jae 0x44920e
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x449211
mov edi, 1
jmp 0x449213
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x4493ce
movzx ecx, word [eax]
mov eax, ecx
mov edx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44924e
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax + 2]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov edx, ecx
cmp dword [esi + 0x58], 0
je 0x449276
cmp edx, 0x5f
je 0x449420
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, edx
jmp 0x44936b
cmp edx, 0x100
jae 0x44928b
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x449420
xor ecx, ecx
movzx eax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 5
jne 0x44942a
cmp ecx, edi
je case.0x40a396.157
jmp 0x40a679
cmp eax, dword [esi + 0x78]
je 0x449325
cmp eax, dword [esi + 0x88]
ja 0x4492c5
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x4493a6
cmp ecx, 0x5f
je 0x44939f
mov eax, ecx
test eax, eax
jns 0x4492e5
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
and ecx, 0x8000007f
jns 0x4492ff
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x44939c
cmp eax, 3
mov eax, dword [ebp - 8]
je 0x44939f
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x4493ce
cmp dword [esi + 0x58], 0
je 0x449400
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x449420
mov eax, ecx
test eax, eax
jns 0x44934f
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
and ecx, 0x8000007f
jns 0x449369
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x449420
cmp eax, 3
jne 0x44928b
lea ecx, [eax - 2]
jmp 0x44928d
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x449327
mov edx, 0xff
cmp cx, dx
ja 0x449325
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x449325
mov edi, 1
jmp 0x449327
cmp dword [esi + 0x8c], 0
je 0x44928b
cmp eax, dword [esi + 0x88]
jbe 0x44928b
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44928b
jmp 0x44feb6
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x44928b
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44928b
mov ecx, 1
jmp 0x44928d
cmp ecx, edi
jne case.0x40a396.157
jmp 0x40a679
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x449466
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
cmp eax, ecx
jae 0x44949e
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0040863e
add esp, 0xc
test eax, eax
jne case.0x40a396.157
jmp 0x44949b
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x449498
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x449498
cmp edx, 1
je case.0x40a396.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x40a396.157
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x4494e4
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, 2
cmp ecx, eax
jne 0x4494e1
cmp dword [esi + 0x18], 0
jne 0x4494e1
cmp dword [esi + 0x1c], 2
jne 0x4494e1
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne 0x4494e1
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x4494e1
jmp 0x44feb6
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x44e92c
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x40a5c3
cmp eax, ecx
jae 0x40a5c3
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40a5c3
add dword [ebp - 8], 2
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
add eax, 2
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x40a679
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x449591
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449591
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0x40a5c3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4495fc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4495fc
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x449667
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449667
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0x40a5c3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4496d2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4496d2
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x44973d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44973d
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0x40a5c3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4497a8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4497a8
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a396.157
jmp 0x40a5c3
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, eax
mov dword [ebp - 8], eax
je 0x449818
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, edx
jne 0x449818
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, edx
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
mov edx, eax
cmp ecx, 0xd
ja 0x449864
je 0x449839
cmp ecx, 0xa
je 0x40a5c3
jbe case.0x40a396.157
cmp ecx, 0xc
ja case.0x40a396.157
jmp 0x44987b
cmp edx, edi
jb 0x44984f
cmp dword [esi + 0x8c], 0
je 0x40a5c3
jmp 0x449079
cmp word [eax], 0xa
jne 0x40a5c3
lea eax, [edx + 2]
mov dword [ebp - 8], eax
jmp 0x40a5c3
cmp ecx, 0x85
je 0x44987b
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
cmp dword [esi + 0x6c], 0
jne case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x4498d3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4498d3
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x449917
je case.0x40a396.157
cmp ecx, 0xa0
ja 0x449906
je case.0x40a396.157
cmp ecx, 9
je case.0x40a396.157
cmp ecx, 0x20
je case.0x40a396.157
jmp 0x40a5c3
cmp ecx, 0x1680
je case.0x40a396.157
jmp 0x40a5c3
cmp ecx, 0x205f
ja 0x44994e
je case.0x40a396.157
cmp ecx, 0x2000
jb 0x40a5c3
cmp ecx, 0x200a
jbe case.0x40a396.157
cmp ecx, 0x202f
je case.0x40a396.157
jmp 0x40a5c3
cmp ecx, 0x3000
je case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x4499a8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4499a8
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x4499ec
je 0x40a5c3
cmp ecx, 0xa0
ja 0x4499db
je 0x40a5c3
cmp ecx, 9
je 0x40a5c3
cmp ecx, 0x20
jne case.0x40a396.157
jmp 0x40a5c3
cmp ecx, 0x1680
jne case.0x40a396.157
jmp 0x40a5c3
cmp ecx, 0x205f
ja 0x449a23
je 0x40a5c3
cmp ecx, 0x2000
jb case.0x40a396.157
cmp ecx, 0x200a
jbe 0x40a5c3
cmp ecx, 0x202f
jne case.0x40a396.157
jmp 0x40a5c3
cmp ecx, 0x3000
jne case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x449a7d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449a7d
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x449aa2
je case.0x40a396.157
cmp ecx, 0xa
jb 0x40a5c3
cmp ecx, 0xd
jbe case.0x40a396.157
jmp 0x40a5c3
cmp ecx, 0x2028
jb 0x40a5c3
cmp ecx, 0x2029
jbe case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x449b08
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449b08
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x449b27
je 0x40a5c3
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a396.157
jmp 0x40a5c3
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
jmp 0x40a5c3
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
mov ecx, edx
mov dword [ebp - 0x20], ecx
jmp 0x40a74a
cmp eax, 0xa
ja case.default.0x449b6e
jmp dword [eax*4 + 0x45022e]
mov al, byte [ecx*8 + 0x4b03c1]
cmp al, 9
je 0x449b9a
cmp al, 5
je 0x449b9a
cmp al, 8
je 0x449b9a
xor ecx, ecx
jmp 0x449bb6
cmp edi, 0xf
je case.0x40a396.157
jmp 0x40a82a
mov ecx, 1
jmp 0x449bb6
movzx eax, byte [ecx*8 + 0x4b03c1]
xor ecx, ecx
cmp dword [eax*4 + 0x4c6320], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x40a396.157
jmp 0x40a82a
movzx ecx, byte [ecx*8 + 0x4b03c1]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x4c6320]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x40a396.157
jmp 0x40a82a
movzx eax, byte [ecx*8 + 0x4b03c1]
jmp 0x449c0a
movzx eax, byte [ecx*8 + 0x4b03c0]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x40a396.157
jmp 0x40a82a
movzx eax, byte [ecx*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x449b9a
cmp eax, 3
je 0x449b9a
xor ecx, ecx
jmp 0x449bb6
cmp edx, 0x180e
ja 0x449ca9
je case.0x449b6e.0
cmp edx, 0x85
ja 0x449c8c
je case.0x449b6e.0
cmp edx, 9
jb case.0x449ccd.8203
cmp edx, 0xd
jbe case.0x449b6e.0
cmp edx, 0x20
je case.0x449b6e.0
jmp case.0x449ccd.8203
cmp edx, 0xa0
je case.0x449b6e.0
cmp edx, 0x1680
je case.0x449b6e.0
jmp case.0x449ccd.8203
cmp edx, 0x202f
ja 0x449cd4
je case.0x449b6e.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x449ccd.8203
movzx eax, byte [edx + 0x450262]
jmp dword [eax*4 + 0x45025a]
cmp edx, 0x205f
je case.0x449b6e.0
cmp edx, 0x3000
je case.0x449b6e.0
jmp case.0x449ccd.8203
movzx eax, byte [ecx*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x449b9a
cmp eax, 3
je 0x449b9a
cmp dword [ebp - 0x20], 0x5f
je 0x449b9a
xor ecx, ecx
jmp 0x449bb6
mov eax, dword [ebp - 0x20]
cmp eax, 0x24
je 0x449b9a
cmp eax, 0x40
je 0x449b9a
cmp eax, 0x60
je 0x449b9a
cmp eax, 0xa0
jb 0x449d53
cmp eax, 0xd7ff
jbe 0x449b9a
cmp eax, 0xe000
jae 0x449b9a
xor ecx, ecx
jmp 0x449bb6
cmp edi, 0x10
je case.0x40a396.157
jmp 0x40a82a
mov ecx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
and eax, 0x3ff
mov edi, dword [ebp - 8]
mov ecx, edx
and ecx, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x40a518
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
jmp 0x40a570
cmp edi, eax
jb 0x40a5c3
cmp edi, dword [esi + 0x88]
jbe 0x40a5c3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
jmp 0x40a5c3
movzx ecx, word [ebx + 2]
xor eax, eax
cmp edi, 0x74
sete al
imul ecx, dword [esi + 0x24]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 4]
add ebx, 6
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x30], ebx
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
xor edi, edi
neg ecx
mov dword [ebp - 0x18], edi
dec ecx
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x2c], edi
jbe 0x449ea9
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec dword [ebp - 0x2c]
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0x449e53
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x449e53
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x449ea6
cmp dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x34]
mov eax, dword [esi + 0x24]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x34], eax
jg 0x449e30
jmp 0x449ea9
xor eax, eax
cmp edi, 0x72
sete al
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [ebp - 0x30], ebx
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0x449e9c
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x449e9c
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x449ea6
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [ebx]
mov dword [ebp - 0x1c], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0x449ec2
movzx eax, byte [eax + 0x450296]
jmp dword [eax*4 + 0x45028e]
mov eax, dword [ebp - 0x1c]
add ebx, 2
mov dword [ebp - 0x30], ebx
lea edi, [eax - 0x62]
and edi, 1
mov dword [ebp - 0x1c], edi
movsx edi, byte [eax + 0x4b2b9a]
movsx eax, byte [eax + 0x4b2b8e]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x449f2a
mov dword [ebp - 0x2c], 0x7fffffff
jmp 0x449f2a
cmp word [ebx], 0x69
mov eax, 0
movzx edi, word [ebx + 2]
sete al
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x449f24
mov dword [ebp - 0x2c], 0x7fffffff
add ebx, 6
mov dword [ebp - 0x30], ebx
mov eax, edi
test ecx, ecx
je 0x40a36d
jns 0x449f3e
test edi, edi
je 0x40a36d
cmp eax, 1
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 8]
jl 0x449f80
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call 0x49bc80
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44e6c0
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x34], ecx
cmp ecx, edi
mov ecx, dword [ebp - 0x20]
jle 0x449f4d
mov edx, dword [ebp - 0x2c]
cmp edi, edx
je 0x40a679
cmp dword [ebp - 0x1c], 0
je 0x44e612
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
jge case.0x40a396.157
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, edi
push esi
push dword [ebp - 0x20]
call 0x49bc80
add esp, 0xc
test eax, eax
js 0x44e5ef
inc dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x449fbb
jmp 0x40a4db
push dword [ebp - 0x24]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call 0x49bc80
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44e6c0
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x40a679
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x44a04a
movzx eax, byte [eax + 0x4502a6]
jmp dword [eax*4 + 0x45029e]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x44a069
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x44a070
mov dword [ebp - 0x2c], 1
movsx edx, byte [eax + 0x4b2bfc]
movsx eax, byte [eax + 0x4b2bf0]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x40a5fb
mov dword [ebp - 0x20], 0x7fffffff
jmp 0x40a5fb
xor eax, eax
cmp edx, 0x69
sete al
mov dword [ebp - 0x10], eax
xor eax, eax
cmp edx, 0x6d
movzx edx, word [ebx + 2]
mov dword [ebp - 0x18], edx
sete al
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x44a0c7
mov dword [ebp - 0x20], 0x7fffffff
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x40a5fb
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
jmp 0x40a638
cmp edi, 0x6e
je case.0x40a396.157
jmp 0x40a662
cmp edx, 1
jl 0x40a66d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x44a136
cmp edi, 0x6e
je case.0x40a396.157
jmp 0x44a157
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x40a396.157
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x44a111
jmp 0x40a670
cmp dword [ebp - 0x10], 0
jne 0x44e6ee
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0x44a2b7
cmp edx, dword [ebp - 0x20]
jl 0x44a18d
jmp 0x44a23d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44a218
movzx edx, word [eax]
mov ecx, 1
mov eax, edx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a1d4
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
mov ecx, 2
mov dword [ebp - 0x34], ecx
movzx eax, word [eax + 2]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
cmp edx, 0xff
jbe 0x44a1e3
cmp edi, 0x6e
jne 0x44a1fd
jmp 0x44a23d
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je 0x44a23d
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x20]
jl 0x44a18a
jmp 0x44a23d
cmp dword [esi + 0x8c], 0
je 0x44a23d
cmp eax, dword [esi + 0x88]
jbe 0x44a23d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
cmp dword [ebp - 0x2c], 0
jne 0x40a679
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x14]
jbe case.0x40a396.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44a293
add edi, 0xfffffffe
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44a26d
jmp 0x40a4db
cmp edx, dword [ebp - 0x20]
jge 0x44a32c
mov ecx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0x44a304
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x44a2d6
cmp edi, 0x6e
jne 0x44a2f3
jmp 0x44a329
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
mov eax, dword [ebp - 8]
je 0x44a329
mov ecx, dword [ebp - 0x18]
inc ecx
add eax, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x20]
jl 0x44a2bf
jmp 0x44a329
cmp dword [esi + 0x8c], 0
je 0x44a329
cmp eax, dword [esi + 0x88]
jbe 0x44a329
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, ecx
jb case.0x40a396.157
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
sub edi, 2
cmp edi, dword [ebp - 0x14]
jae 0x44a341
jmp case.0x40a396.157
lea eax, [ebx + 4]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
movzx ecx, word [ebx + eax*2]
lea ebx, [ebx + eax*2]
mov edi, ecx
mov dword [ebp - 0x30], ebx
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x44a39a
movzx eax, byte [eax + 0x4502ba]
jmp dword [eax*4 + 0x4502b2]
lea eax, [edi - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x44a3b9
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x44a3c0
mov dword [ebp - 0x2c], 1
movsx ecx, byte [eax + 0x4b2bf0]
movsx edi, byte [eax + 0x4b2bfc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x44a42d
mov ecx, 0x7fffffff
jmp 0x44a42a
movzx edi, word [ebx + 2]
xor eax, eax
cmp ecx, 0x69
mov dword [ebp - 0x18], edi
sete al
cmp ecx, 0x6d
mov ecx, 0
mov dword [ebp - 0x10], eax
sete cl
mov dword [ebp - 0x2c], ecx
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x44a415
mov ecx, 0x7fffffff
mov dword [ebp - 0x20], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x44a42d
mov eax, dword [ebp - 0x10]
mov ecx, 1
mov edi, ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], 1
cmp edi, 1
jl 0x44a4ab
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], eax
test edx, edx
je 0x44a483
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a483
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
push edx
mov edx, dword [ebp - 0x24]
call 0x49be7b
add esp, 4
test eax, eax
je case.0x40a396.157
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jle 0x44a439
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp edi, ecx
je 0x40a36d
test eax, eax
jne 0x44e843
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0x44a4cd
jmp 0x44a564
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44a53f
mov edx, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
test edx, edx
je 0x44a515
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a515
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
push edx
mov edx, dword [ebp - 0x24]
call 0x49be7b
add esp, 4
test eax, eax
je 0x44a567
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x18], edi
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x20]
jl 0x44a4ca
jmp 0x44a564
cmp dword [esi + 0x8c], 0
je 0x44a564
cmp eax, dword [esi + 0x88]
jbe 0x44a564
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x38]
jbe case.0x40a396.157
cmp dword [ebp - 0x28], 0
je 0x44a5c0
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44a5c0
add edi, 0xfffffffe
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44a594
jmp 0x40a4db
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0x40a867
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x44e914
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x40a396.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a679
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
mov edx, ecx
mov dword [ebp - 0x24], edx
jmp 0x40a6d6
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a687
mov ecx, dword [ebp - 8]
and edi, 0x3ff
shl edi, 0xa
movzx eax, word [ecx]
add ecx, 2
and eax, 0x3ff
mov dword [ebp - 8], ecx
or edi, eax
add edi, 0x10000
mov eax, dword [ebp - 0x34]
cmp edx, edi
mov edx, dword [ebp - 8]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
je 0x40a36d
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
mov eax, dword [eax*8 + 0x4b03c4]
add eax, edx
cmp edi, eax
jne case.0x40a396.157
jmp 0x40a679
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x44a6ec
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x44a6ee
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x44a705
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x40a396.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x40a679
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x44a7e0
mov dword [ebp - 0x2c], 1
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x28
je 0x44a754
mov dword [ebp - 0x10], edx
cmp ecx, 0x35
jne 0x44a75b
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x44a7e0
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x44a7d9
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x44a7d9
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], 1
mov ecx, ebx
jmp 0x44a7e0
cmp edi, 0x2e
mov edx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x2e
sub edx, eax
mov eax, edx
and edx, 1
mov dword [ebp - 0x10], edx
movsx edx, byte [eax + 0x4b2bfc]
movsx eax, byte [eax + 0x4b2bf0]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x44a7e0
mov dword [ebp - 0x18], 0x7fffffff
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
je 0x44aa6c
and eax, 0xfc00
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x1c], 1
cmp eax, 0xd800
jne 0x44a853
movzx eax, word [ebx + 2]
mov ebx, dword [ebp - 0x20]
and eax, 0x3ff
and ebx, 0x3ff
mov dword [ebp - 0xc], 2
shl ebx, 0xa
or ebx, eax
mov dword [ebp - 0x30], 2
add ebx, 0x10000
mov dword [ebp - 0x1c], 2
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], eax
jmp 0x44a856
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], 1
mov ebx, dword [ebp - 0x30]
lea ebx, [ecx + ebx*2]
mov dword [ebp - 0x30], ebx
jbe 0x44aa72
cmp edi, 0x2e
jb 0x44a8a9
mov edi, dword [ebp - 0x24]
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
mov ecx, dword [eax*8 + 0x4b03c4]
add ecx, edi
cmp ecx, edi
je 0x44a8a9
lea edx, [ebp - 0x6c]
call 0x49c306
mov edx, dword [ebp - 0x14]
mov edi, eax
jmp 0x44a8ab
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 1
cmp edx, 1
jl 0x44a942
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x7c]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x44a8f0
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00421724
add esp, 0xc
test eax, eax
jne 0x44a8f0
mov ecx, dword [ebp - 0x1c]
mov eax, edi
add eax, ecx
mov dword [ebp - 8], eax
jmp 0x44a92f
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44e5f7
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44e5f7
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00421724
add esp, 0xc
test eax, eax
jne 0x44e5f7
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
mov eax, edi
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, edx
jle 0x44a8c7
mov edi, dword [ebp - 0x20]
jmp 0x44a945
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x40a679
cmp dword [ebp - 0x10], 0
jne 0x44e944
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x18]
jge 0x44aa08
mov eax, dword [ebp - 0xc]
lea edx, [eax + eax]
mov dword [ebp - 0x1c], edx
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, edx
cmp ecx, eax
ja 0x44a99d
push edx
push dword [ebp - 0x34]
push ecx
call fcn.00421724
add esp, 0xc
test eax, eax
jne 0x44a99a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x44a9c4
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x44a9d5
mov eax, dword [esi + 0x7c]
add edi, edi
sub eax, edi
cmp ecx, eax
ja 0x44a9d5
push edi
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00421724
add esp, 0xc
test eax, eax
jne 0x44a9d5
add dword [ebp - 8], edi
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
inc edx
cmp edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
jl 0x44a96f
jmp 0x44aa02
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x44aa05
cmp eax, dword [esi + 0x7c]
jb 0x44aa02
cmp eax, dword [esi + 0x88]
jbe 0x44aa02
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, ecx
jbe 0x40a492
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44aa62
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44aa1d
jmp 0x40a492
lea ebx, [ecx + 2]
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x44abb0
cmp dword [ebp - 0x28], 0
je 0x44aab2
cmp eax, 0x7f
jbe 0x44aab2
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, dword [ebp - 0x24]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
mov eax, dword [eax*8 + 0x4b03c4]
add dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
jmp 0x44aacb
cmp eax, 0xff
ja 0x44aac5
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [eax + ecx]
jmp 0x44aac8
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp edx, 1
jl 0x44ab04
cmp eax, dword [esi + 0x7c]
jae 0x44ebef
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x44aaf3
cmp edi, ecx
jne case.0x40a396.157
mov ecx, dword [ebp - 0x1c]
add eax, 2
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], ecx
cmp ecx, edx
jle 0x44aada
cmp edx, dword [ebp - 0x18]
je 0x40a679
cmp dword [ebp - 0x10], 0
jne 0x44e9fd
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp edx, dword [ebp - 0x18]
jge 0x44ab68
cmp eax, dword [esi + 0x7c]
jae 0x44ab40
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x44ab32
cmp edi, ecx
jne 0x44ab65
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x44ab21
jmp 0x44ab65
cmp dword [esi + 0x8c], 0
je 0x44ab65
cmp eax, dword [esi + 0x88]
jbe 0x44ab65
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, ecx
je 0x40a492
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x40a4db
cmp edi, dword [ebp - 0x14]
jne 0x44ab7d
jmp 0x40a492
mov ecx, 1
cmp edx, ecx
jge 0x44abbe
mov edi, dword [ebp - 8]
jmp 0x44abe4
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44ebef
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], eax
jne case.0x40a396.157
inc ecx
cmp ecx, edx
jle 0x44abbe
cmp edx, dword [ebp - 0x18]
je 0x40a679
cmp dword [ebp - 0x10], 0
jne 0x44ea74
mov eax, dword [ebp - 8]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp edx, edi
jge 0x44ac27
mov ecx, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x44ac6f
movzx eax, word [eax]
cmp ecx, eax
jne 0x44ac21
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, edi
jl 0x44ac09
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, ecx
je 0x40a492
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x40a4db
cmp edi, dword [ebp - 0x14]
jne 0x44ac3c
jmp 0x40a492
cmp dword [esi + 0x8c], 0
je 0x44ac24
cmp eax, dword [esi + 0x88]
jbe 0x44ac24
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
jmp 0x44ac24
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44ebef
cmp dword [ebp - 0x28], 0
movzx ecx, word [ebx + 2]
je 0x44ad8b
mov eax, ecx
mov dword [ebp - 0x1c], ecx
add ebx, 4
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ebx
cmp eax, 0xd800
jne 0x44acef
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 8]
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ad28
movzx eax, word [ecx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add ecx, 2
or edx, eax
mov dword [ebp - 8], ecx
add edx, 0x10000
cmp edi, 0x1f
jne 0x44ad3b
cmp dword [ebp - 0x24], edx
je case.0x40a396.157
jmp 0x40a679
mov edi, dword [ebp - 0x24]
cmp edi, 0x7f
jbe 0x44ad6c
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
mov eax, dword [eax*8 + 0x4b03c4]
add eax, edi
jmp 0x44ad76
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [eax + ecx]
cmp edi, edx
je case.0x40a396.157
cmp eax, edx
je case.0x40a396.157
jmp 0x40a679
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x40a396.157
cmp edi, 0x20
jne 0x44adb8
cmp ecx, 0xff
ja 0x44adb0
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x40a396.157
mov edx, dword [ebp - 8]
jmp 0x40a446
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x44ae98
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x42
je 0x44adef
mov dword [ebp - 0x10], edx
cmp ecx, 0x4f
jne 0x44adf6
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x44ae98
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x44ae91
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x44ae91
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
mov ecx, ebx
jmp 0x44ae98
movzx eax, word [ebx + 2]
xor edx, edx
add ebx, 4
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0xc], edx
mov ecx, ebx
mov dword [ebp - 0x18], eax
jmp 0x44ae98
cmp edi, 0x48
mov edx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x48
sub edx, eax
mov eax, edx
and edx, 1
mov dword [ebp - 0x10], edx
movsx edx, byte [eax + 0x4b2bfc]
movsx eax, byte [eax + 0x4b2bf0]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x44ae98
mov dword [ebp - 0x18], 0x7fffffff
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
lea ebx, [ecx + 2]
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x30], ebx
je 0x44aee0
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44aedd
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or eax, ecx
add eax, 0x10000
add ebx, 2
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x30], ebx
jmp 0x44aee0
mov eax, dword [ebp - 0x14]
cmp edi, 0x48
jb 0x44b189
cmp dword [ebp - 0x28], 0
je 0x44af1f
cmp ecx, 0x7f
jbe 0x44af1f
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, dword [ebp - 0x14]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
mov eax, dword [eax*8 + 0x4b03c4]
add eax, dword [ebp - 0x14]
jmp 0x44af31
cmp ecx, 0xff
ja 0x44af31
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x14]
movzx eax, byte [eax + ecx]
cmp dword [ebp - 0x28], 0
mov edi, 1
mov dword [ebp - 0x20], eax
je 0x44afa8
cmp edx, edi
jl 0x44afd9
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44ebef
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x44af8f
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], ecx
je case.0x40a396.157
cmp dword [ebp - 0x20], ecx
je case.0x40a396.157
inc edi
cmp edi, edx
jle 0x44af47
jmp 0x44afdc
mov eax, dword [ebp - 8]
cmp edx, 1
jl 0x44afdc
cmp eax, dword [esi + 0x7c]
jae 0x44ebef
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je case.0x40a396.157
cmp dword [ebp - 0x20], ecx
je case.0x40a396.157
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, edx
jle 0x44afb0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
je 0x40a679
cmp dword [ebp - 0x10], 0
jne 0x44eae3
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0x44b0f3
cmp edx, ecx
jge 0x44b065
cmp eax, dword [esi + 0x7c]
jae 0x44b0c9
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b042
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x44b047
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x44b05f
cmp dword [ebp - 0x20], edi
je 0x44b05f
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x44b004
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, edi
jbe 0x40a492
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44b0bf
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44b07a
jmp 0x40a492
cmp dword [esi + 0x8c], 0
je 0x44b062
cmp eax, dword [esi + 0x88]
jbe 0x44b062
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
jmp 0x44b062
cmp edx, ecx
jge 0x44b141
mov edi, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x44b119
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je 0x44b13e
cmp edi, ecx
je 0x44b13e
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x44b0fa
jmp 0x44b13e
cmp dword [esi + 0x8c], 0
je 0x44b13e
cmp eax, dword [esi + 0x88]
jbe 0x44b13e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, edi
je 0x40a492
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x44b156
jmp 0x40a492
cmp dword [ebp - 0x28], 0
mov edi, 1
je 0x44b1fb
cmp edx, edi
jge 0x44b1a0
mov ecx, dword [ebp - 0x14]
jmp 0x44b223
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44ebef
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x44b1e8
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], ecx
je case.0x40a396.157
inc edi
cmp edi, edx
jle 0x44b1a0
mov ecx, dword [ebp - 0x14]
jmp 0x44b226
mov ecx, dword [ebp - 0x14]
cmp edx, 1
jl 0x44b223
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44ebef
movzx eax, word [eax]
add dword [ebp - 8], 2
cmp ecx, eax
je case.0x40a396.157
inc edi
cmp edi, edx
jle 0x44b203
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x40a679
cmp dword [ebp - 0x10], 0
jne 0x44ec21
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x20], edi
je 0x44b337
cmp edx, dword [ebp - 0x18]
jge 0x44b2a9
cmp eax, dword [esi + 0x7c]
jae 0x44b30d
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b28b
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x44b290
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x44b2a3
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x44b24d
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, edi
jbe 0x40a492
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44b303
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0x44b2be
jmp 0x40a492
cmp dword [esi + 0x8c], 0
je 0x44b2a6
cmp eax, dword [esi + 0x88]
jbe 0x44b2a6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
jmp 0x44b2a6
cmp edx, dword [ebp - 0x18]
jge 0x44b358
cmp eax, dword [esi + 0x7c]
jae 0x44b3a0
movzx eax, word [eax]
cmp ecx, eax
je 0x44b355
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jl 0x44b33c
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp eax, edi
je 0x40a492
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0x44b36d
jmp 0x40a492
cmp dword [esi + 0x8c], 0
je 0x44b358
cmp eax, dword [esi + 0x88]
jbe 0x44b358
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44b358
jmp 0x44feb6
movzx edi, word [ebx + 2]
mov edx, 1
mov ecx, edi
mov dword [ebp - 0x14], edi
add ebx, 4
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
mov eax, ebx
jmp 0x40a8e1
movzx edi, word [ebx + 2]
xor edx, edx
cmp ecx, 0x5c
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], edi
sete dl
add ebx, 4
mov dword [ebp - 0x10], edx
mov eax, ebx
xor ecx, ecx
jmp 0x40a8e1
xor ecx, ecx
jmp 0x44b412
mov ecx, 1
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x44b424
xor ecx, ecx
mov dword [ebp - 0x14], 1
add ebx, 2
jmp 0x44b435
movzx edi, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x14], edi
add ebx, 4
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0xc], ecx
jmp 0x40a8e1
xor edx, edx
jmp 0x40a8bc
movzx ecx, word [ebx]
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x3c], eax
lea eax, [ebx + 2]
movzx ebx, word [eax]
mov dword [ebp - 0x40], ebx
lea ebx, [eax + 2]
mov eax, ecx
mov dword [ebp - 0x30], ebx
mov ecx, dword [ebp - 0xc]
jmp 0x40a902
test eax, eax
js 0x44bba6
cmp eax, 0xa
ja case.default.0x449b6e
jmp dword [eax*4 + 0x4502c6]
cmp dword [ebp - 0x3c], 0
jne case.0x40a396.157
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jge 0x44b4ae
mov ecx, dword [ebp - 0xc]
jmp 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
je 0x44b4d8
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b4d8
add edi, 2
mov dword [ebp - 8], edi
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b4ae
mov ecx, dword [ebp - 0xc]
jmp 0x44bd2e
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44b541
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b541
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp eax, 9
je 0x44b578
cmp eax, 5
je 0x44b578
cmp eax, 8
je 0x44b578
xor eax, eax
jmp 0x44b57d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b4f9
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44b5f8
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b5f8
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov edx, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp dword [eax*4 + 0x4c6320], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b5b0
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44b6a6
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b6a6
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b65e
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44b74d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b74d
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b705
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44b7f4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b7f4
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x44b82d
cmp eax, 3
je 0x44b82d
xor eax, eax
jmp 0x44b832
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b7ac
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov eax, 1
mov dword [ebp - 0x24], eax
cmp ecx, eax
jl 0x44bd2e
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x44b8b1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b8ae
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov edx, ecx
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x44b8f7
je 0x44b96c
cmp ecx, 0x85
ja 0x44b8e5
je 0x44b96c
cmp ecx, 9
jb case.0x44b913.8203
cmp ecx, 0xd
jbe 0x44b96c
cmp ecx, 0x20
jne case.0x44b913.8203
jmp 0x44b96c
cmp ecx, 0xa0
je 0x44b96c
cmp ecx, 0x1680
jne case.0x44b913.8203
jmp 0x44b96c
cmp ecx, 0x202f
ja 0x44b91a
je 0x44b96c
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44b913.8203
movzx eax, byte [ecx + 0x4502fa]
jmp dword [eax*4 + 0x4502f2]
cmp ecx, 0x205f
je 0x44b96c
cmp ecx, 0x3000
je 0x44b96c
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp dword [eax*4 + 0x4c6320], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x24]
jmp 0x44b976
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne case.0x40a396.157
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, ecx
jle 0x44b865
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x44b9e5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b9e5
movzx edx, word [edi]
and ecx, 0x3ff
and edx, 0x3ff
shl ecx, 0xa
add edi, 2
or edx, ecx
mov dword [ebp - 8], edi
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x44ba25
cmp eax, 3
je 0x44ba25
cmp edx, 0x5f
je 0x44ba25
xor eax, eax
jmp 0x44ba2a
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b99d
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
je 0x44baab
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44baab
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0x4b1a40]
lea eax, [eax*4 + 0x4b1a40]
cmp dword [ebp - 0x24], edx
jb 0x44bace
lea eax, [eax + 4]
cmp ecx, edx
je 0x44baef
mov edx, dword [eax]
cmp ecx, edx
jae 0x44bac1
cmp dword [ebp - 0x3c], 0
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44ba5d
jmp 0x44bd2b
cmp dword [ebp - 0x3c], 0
jne case.0x40a396.157
jmp 0x44bad8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a910
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44bb56
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bb56
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x24
je 0x44bb81
cmp ecx, 0x40
je 0x44bb81
cmp ecx, 0x60
je 0x44bb81
cmp ecx, 0xa0
jb 0x44bb75
cmp ecx, 0xd7ff
jbe 0x44bb81
cmp ecx, 0xe000
jae 0x44bb81
xor eax, eax
jmp 0x44bb86
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44bb0e
jmp 0x44bd2b
cmp edi, 0x16
jne 0x44bd36
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
cmp ecx, 1
jl 0x40a910
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov eax, edi
mov dword [ebp - 8], edi
mov ecx, edx
mov dword [ebp - 0x24], eax
je 0x44bc1c
mov dword [ebp - 0x24], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bc1c
movzx ecx, word [edi]
and edx, 0x3ff
add edi, 2
shl edx, 0xa
and ecx, 0x3ff
mov dword [ebp - 8], edi
mov eax, edi
or ecx, edx
mov dword [ebp - 0x24], eax
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx ecx, byte [eax*8 + 0x4b03c2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44bcef
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44bc93
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bc93
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx ecx, byte [eax*8 + 0x4b03c2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c31c0], eax
je 0x44bce3
mov eax, edx
mov ebx, ecx
lea edi, [eax + esi*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edi
mov edx, edi
cmp edi, eax
jb 0x44bc58
jmp 0x44bce6
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44bd18
cmp edx, eax
jb 0x44bd18
cmp edx, dword [esi + 0x88]
jbe 0x44bd18
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44bbc2
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
jmp 0x40a910
cmp dword [ebp - 0x28], 0
lea eax, [edi - 6]
je 0x44c45b
cmp eax, 0xf
ja case.default.0x449b6e
jmp dword [eax*4 + 0x450326]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44bd2e
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c53c
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44bd90
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0040863e
add esp, 0xc
test eax, eax
jne case.0x40a396.157
jmp 0x44bdbc
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44bdbc
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44bdbc
cmp edx, 1
je case.0x40a396.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a396.157
cmp dword [esi + 0x8c], 0
je 0x44bdf6
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44bdf6
cmp dword [esi + 0x18], 0
jne 0x44bdf6
cmp dword [esi + 0x1c], 2
jne 0x44bdf6
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44bdf6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov ecx, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44be1e
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x44be1e
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0xc]
jle 0x44bd65
jmp 0x44bd28
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44c53c
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44be7f
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xdc00
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0xc]
jne 0x44be7f
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x44be49
jmp 0x44bd28
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0x40a396.157
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44bd2e
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44bd2e
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
mov edx, edi
cmp eax, 0xd800
jne 0x44bf00
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov edx, edi
cmp ecx, 0xd
ja 0x44bf2f
je 0x44bf1a
cmp ecx, 0xa
je 0x44bf50
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40a396.157
jmp 0x44bf46
mov eax, dword [esi + 0x7c]
cmp edx, eax
jae 0x44bf53
cmp word [edi], 0xa
jne 0x44bf53
lea edi, [edx + 2]
mov dword [ebp - 8], edi
jmp 0x44bf53
cmp ecx, 0x85
je 0x44bf46
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
cmp dword [esi + 0x6c], 0
jne case.0x40a396.157
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44bebe
jmp 0x44bd28
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bfb7
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
ja 0x44bff5
je case.0x40a396.157
cmp ecx, 0xa0
ja 0x44bfe7
je case.0x40a396.157
cmp ecx, 9
je case.0x40a396.157
cmp ecx, 0x20
je case.0x40a396.157
jmp 0x44c031
cmp ecx, 0x1680
je case.0x40a396.157
jmp 0x44c031
cmp ecx, 0x205f
ja 0x44c025
je case.0x40a396.157
cmp ecx, 0x2000
jb 0x44c031
cmp ecx, 0x200a
jbe case.0x40a396.157
cmp ecx, 0x202f
je case.0x40a396.157
jmp 0x44c031
cmp ecx, 0x3000
je case.0x40a396.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44bf78
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c091
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
ja 0x44c0c3
je 0x44c0fb
cmp ecx, 0xa0
ja 0x44c0b5
je 0x44c0fb
cmp ecx, 9
je 0x44c0fb
cmp ecx, 0x20
jne case.0x40a396.157
jmp 0x44c0fb
cmp ecx, 0x1680
jne case.0x40a396.157
jmp 0x44c0fb
cmp ecx, 0x205f
ja 0x44c0ef
je 0x44c0fb
cmp ecx, 0x2000
jb case.0x40a396.157
cmp ecx, 0x200a
jbe 0x44c0fb
cmp ecx, 0x202f
jne case.0x40a396.157
jmp 0x44c0fb
cmp ecx, 0x3000
jne case.0x40a396.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44c052
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c15b
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
ja 0x44c179
je case.0x40a396.157
cmp ecx, 0xa
jb 0x44c18d
cmp ecx, 0xd
jbe case.0x40a396.157
jmp 0x44c18d
cmp ecx, 0x2028
jb 0x44c18d
cmp ecx, 0x2029
jbe case.0x40a396.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44c11c
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c1e9
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
ja 0x44c201
je 0x44c210
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a396.157
jmp 0x44c210
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44c1aa
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44bd2e
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44c273
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov edx, ecx
cmp edx, 0x80
jae 0x44c288
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44c230
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c2ab
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44bd2e
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44c53c
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44c31f
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a396.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44c347
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44c347
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44c2fc
jmp 0x44bd28
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c367
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44bd2e
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44c53c
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44c3db
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a396.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44c403
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44c403
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44c3b8
jmp 0x44bd28
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c423
jmp 0x44bd2b
cmp eax, 0xf
ja case.default.0x449b6e
jmp dword [eax*4 + 0x450366]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44bd2e
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c53c
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44c4ab
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0040863e
add esp, 0xc
test eax, eax
jne case.0x40a396.157
jmp 0x44c4d7
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44c4d7
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c4d7
cmp edx, 1
je case.0x40a396.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a396.157
cmp dword [esi + 0x8c], 0
je 0x44c511
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44c511
cmp dword [esi + 0x18], 0
jne 0x44c511
cmp dword [esi + 0x1c], 2
jne 0x44c511
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c511
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov eax, dword [ebp - 0x1c]
add edi, 2
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44c47e
jmp 0x44bd2b
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
jbe 0x44c57c
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp edi, dword [esi + 0x88]
jbe case.0x40a396.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40a396.157
jmp 0x44feb6
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x44c53c
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44bd2e
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
ja 0x44c5d5
je 0x44c5c3
cmp eax, 0xa
je 0x44c5f4
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40a396.157
jmp 0x44c5ea
cmp edi, ecx
jae 0x44c5f4
cmp word [edi], 0xa
jne 0x44c5f4
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44c5f4
cmp eax, 0x85
je 0x44c5ea
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a396.157
cmp dword [esi + 0x6c], 0
jne case.0x40a396.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44c59c
jmp 0x44bd28
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44b4de
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44c65d
je case.0x40a396.157
cmp eax, 0xa0
ja 0x44c650
je case.0x40a396.157
cmp eax, 9
je case.0x40a396.157
cmp eax, 0x20
je case.0x40a396.157
jmp 0x44c694
cmp eax, 0x1680
je case.0x40a396.157
jmp 0x44c694
cmp eax, 0x205f
ja 0x44c689
je case.0x40a396.157
cmp eax, 0x2000
jb 0x44c694
cmp eax, 0x200a
jbe case.0x40a396.157
cmp eax, 0x202f
je case.0x40a396.157
jmp 0x44c694
cmp eax, 0x3000
je case.0x40a396.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44c610
mov ecx, dword [ebp - 0xc]
jmp 0x44bd2e
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44b4de
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44c6f8
je 0x44c72b
cmp eax, 0xa0
ja 0x44c6eb
je 0x44c72b
cmp eax, 9
je 0x44c72b
cmp eax, 0x20
jne case.0x40a396.157
jmp 0x44c72b
cmp eax, 0x1680
jne case.0x40a396.157
jmp 0x44c72b
cmp eax, 0x205f
ja 0x44c720
je 0x44c72b
cmp eax, 0x2000
jb case.0x40a396.157
cmp eax, 0x200a
jbe 0x44c72b
cmp eax, 0x202f
jne case.0x40a396.157
jmp 0x44c72b
cmp eax, 0x3000
jne case.0x40a396.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44c6b7
mov ecx, dword [ebp - 0xc]
jmp 0x44bd2e
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44b4de
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44c779
je case.0x40a396.157
cmp eax, 0xa
jb 0x44c78b
cmp eax, 0xd
jbe case.0x40a396.157
jmp 0x44c78b
cmp eax, 0x2028
jb 0x44c78b
cmp eax, 0x2029
jbe case.0x40a396.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44c74a
mov ecx, dword [ebp - 0xc]
jmp 0x44bd2e
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44b4de
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44c7d3
je 0x44c7e1
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40a396.157
jmp 0x44c7e1
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a396.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44c7aa
mov ecx, dword [ebp - 0xc]
jmp 0x44bd2e
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44c82a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c7ff
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a396.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c84a
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44c8c1
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c896
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a396.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c8e1
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44c958
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c92d
jmp 0x44bd2b
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44bd2b
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a396.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a396.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44c978
jmp 0x44bd2b
mov edx, edi
mov dword [ebp - 0x10], edx
test eax, eax
js 0x44d22b
cmp eax, 0xa
ja case.default.0x449b6e
jmp dword [eax*4 + 0x4503a6]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jge 0x44d1c6
cmp edi, dword [esi + 0x7c]
jae 0x44ca2f
cmp dword [ebp - 0x28], 0
mov ecx, 1
je 0x44ca0f
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xd800
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0x14]
jne 0x44ca0f
mov ecx, 2
cmp dword [ebp - 0x3c], 0
jne 0x44d1c6
lea edi, [edi + ecx*2]
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jl 0x44c9dc
jmp 0x44d1c6
cmp dword [esi + 0x8c], 0
je 0x44d1c6
cmp edi, dword [esi + 0x88]
jbe 0x44d1c6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d1c6
jmp 0x44feb6
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
cmp edi, dword [esi + 0x7c]
jae 0x44cb1f
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44caba
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cab5
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44cabf
mov edx, dword [ebp - 0x38]
jmp 0x44cabf
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp eax, 9
je 0x44caf6
cmp eax, 5
je 0x44caf6
cmp eax, 8
je 0x44caf6
xor eax, eax
jmp 0x44cafb
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44ca6a
jmp 0x44d1c3
cmp dword [esi + 0x8c], 0
je 0x44d1c3
cmp edi, dword [esi + 0x88]
jbe 0x44d1c3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d1c3
jmp 0x44feb6
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
cmp edi, dword [esi + 0x7c]
jae 0x44cb1f
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44cba6
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cba1
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44cbab
mov edx, dword [ebp - 0x38]
jmp 0x44cbab
mov edx, 1
mov esi, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp dword [eax*4 + 0x4c6320], esi
mov esi, dword [ebp + 0x10]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44cb5a
jmp 0x44d1c3
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
cmp edi, dword [esi + 0x7c]
jae 0x44cb1f
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44cc5e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cc59
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44cc63
mov edx, dword [ebp - 0x38]
jmp 0x44cc63
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44cc0e
jmp 0x44d1c3
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
cmp edi, dword [esi + 0x7c]
jae 0x44cb1f
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44cd0c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cd07
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44cd11
mov edx, dword [ebp - 0x38]
jmp 0x44cd11
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44ccbc
jmp 0x44d1c3
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
cmp edi, dword [esi + 0x7c]
jae 0x44cb1f
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44cdba
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cdb5
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44cdbf
mov edx, dword [ebp - 0x38]
jmp 0x44cdbf
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x44cdf8
cmp eax, 3
je 0x44cdf8
xor eax, eax
jmp 0x44cdfd
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44cd6a
jmp 0x44d1c3
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
mov eax, 1
mov dword [ebp - 0x24], eax
cmp edi, dword [esi + 0x7c]
jae 0x44cf5d
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
je 0x44ce7d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ce7a
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x24], eax
mov edx, ecx
jmp 0x44ce7d
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x44cec3
je 0x44cf38
cmp ecx, 0x85
ja 0x44ceb1
je 0x44cf38
cmp ecx, 9
jb case.0x44cedf.8203
cmp ecx, 0xd
jbe 0x44cf38
cmp ecx, 0x20
jne case.0x44cedf.8203
jmp 0x44cf38
cmp ecx, 0xa0
je 0x44cf38
cmp ecx, 0x1680
jne case.0x44cedf.8203
jmp 0x44cf38
cmp ecx, 0x202f
ja 0x44cee6
je 0x44cf38
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44cedf.8203
movzx eax, byte [ecx + 0x4503da]
jmp dword [eax*4 + 0x4503d2]
cmp ecx, 0x205f
je 0x44cf38
cmp ecx, 0x3000
je 0x44cf38
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp dword [eax*4 + 0x4c6320], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0x24]
jmp 0x44cf42
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne 0x44d1c3
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44ce2a
jmp 0x44d1c3
cmp dword [esi + 0x8c], 0
je 0x44d1c3
cmp edi, dword [esi + 0x88]
jbe 0x44d1c3
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x44d1c3
jmp 0x44feb6
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
cmp edi, dword [esi + 0x7c]
jae 0x44cb1f
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
mov dword [ebp - 0x1c], 1
je 0x44cfde
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cfde
movzx edx, word [edi + 2]
and ecx, 0x3ff
and edx, 0x3ff
shl ecx, 0xa
or edx, ecx
mov dword [ebp - 0x1c], 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x44d01e
cmp eax, 3
je 0x44d01e
cmp edx, 0x5f
je 0x44d01e
xor eax, eax
jmp 0x44d023
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44cf93
jmp 0x44d1c3
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44cb1f
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x24], ecx
je 0x44d0a4
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d0a4
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0x4b1a40]
lea eax, [eax*4 + 0x4b1a40]
cmp dword [ebp - 0x24], edx
jb 0x44d0c7
lea eax, [eax + 4]
cmp ecx, edx
je 0x44d0ef
mov edx, dword [eax]
cmp ecx, edx
jae 0x44d0ba
cmp dword [ebp - 0x3c], 0
je 0x44d1c3
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d053
jmp 0x44d1c3
cmp dword [ebp - 0x3c], 0
je 0x44d0d1
jmp 0x44d1c3
cmp ecx, dword [ebp - 0x14]
jge 0x44d1c6
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44d19e
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
je 0x44d14e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d14e
movzx ecx, word [edi + 2]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x44d179
cmp ecx, 0x40
je 0x44d179
cmp ecx, 0x60
je 0x44d179
cmp ecx, 0xa0
jb 0x44d16d
cmp ecx, 0xd7ff
jbe 0x44d179
cmp ecx, 0xe000
jae 0x44d179
xor eax, eax
jmp 0x44d17e
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44d1c3
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d103
jmp 0x44d1c3
cmp dword [esi + 0x8c], 0
je 0x44d1c3
cmp edi, dword [esi + 0x88]
jbe 0x44d1c3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp edi, edx
jbe 0x40a492
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
je 0x44d221
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44d221
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44d1d8
jmp 0x40a492
mov eax, dword [ebp - 0x20]
cmp eax, 0x16
jne 0x44d418
cmp ecx, dword [ebp - 0x14]
jge 0x44d3cc
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44d3a4
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], edi
je 0x44d296
mov eax, edx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d296
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov dword [ebp - 0x24], edi
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx ecx, byte [eax*8 + 0x4b03c2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44d369
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44d30d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d30d
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx ecx, byte [eax*8 + 0x4b03c2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c31c0], eax
je 0x44d35d
mov eax, edx
mov ebx, ecx
lea edi, [eax + esi*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edi
mov edx, edi
cmp edi, eax
jb 0x44d2d2
jmp 0x44d360
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44d392
cmp edx, eax
jb 0x44d392
cmp edx, dword [esi + 0x88]
jbe 0x44d392
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d240
jmp 0x44d3c9
cmp dword [esi + 0x8c], 0
je 0x44d3c9
cmp edi, dword [esi + 0x88]
jbe 0x44d3c9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp edi, edx
jbe 0x40a492
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
jne 0x44e2e3
movzx ecx, word [edi]
jmp 0x44e329
add eax, 0xfffffffa
cmp dword [ebp - 0x28], 0
je 0x44dc3c
cmp eax, 0xf
ja case.default.0x449b6e
jmp dword [eax*4 + 0x450406]
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44d517
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44d46e
push dword [ebp - 0x28]
lea ecx, [esi + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.0040863e
add esp, 0xc
test eax, eax
je 0x44d49d
jmp 0x44d53c
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x24]
lea eax, [ecx + ecx]
sub edx, eax
cmp edi, edx
ja 0x44d49d
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44d49d
cmp ecx, 1
je 0x44d53c
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44d53c
cmp dword [esi + 0x8c], 0
je 0x44d4d7
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44d4d7
cmp dword [esi + 0x18], 0
jne 0x44d4d7
cmp dword [esi + 0x1c], 2
jne 0x44d4d7
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44d4d7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44d505
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0x24]
jne 0x44d505
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x44d444
jmp 0x44d53c
cmp dword [esi + 0x8c], 0
je 0x44d53c
cmp edi, dword [esi + 0x88]
jbe 0x44d53c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp edi, edx
jbe 0x40a492
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov edx, 0xfc00
mov dword [ebp - 8], edi
and ax, dx
mov ecx, edi
mov edx, 0xdc00
cmp ax, dx
jne 0x44d59a
add edi, 0xfffffffe
mov dword [ebp - 8], edi
mov ecx, edi
cmp dword [ebp - 0x20], 0x11
mov eax, dword [ebp - 0x10]
jne 0x44d5ba
cmp ecx, eax
jbe 0x44d5ba
cmp word [edi], 0xa
jne 0x44d5ba
cmp word [edi - 2], 0xd
jne 0x44d5ba
lea edi, [ecx - 2]
mov dword [ebp - 8], edi
cmp edi, eax
ja 0x44d551
jmp 0x40a492
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fffffff
jge 0x44d61b
cmp ecx, eax
jge 0x44d53f
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44d621
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44d60d
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xdc00
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0xc]
jne 0x44d60d
add edi, 2
mov dword [ebp - 8], edi
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d5db
jmp 0x44d53f
mov edi, dword [esi + 0x7c]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44d53f
cmp edi, dword [esi + 0x88]
jbe 0x44d53f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d53f
jmp 0x44feb6
sub dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub eax, edi
sar eax, 1
cmp dword [ebp - 0x14], eax
jbe 0x44d69b
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44d53f
cmp ecx, dword [esi + 0x88]
jbe 0x44d53f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d53f
jmp 0x44feb6
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44d53f
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44d517
movzx ecx, word [edi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d6f2
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0xd
jne 0x44d713
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x44d53c
cmp word [edi], 0xa
jne 0x44d751
add edi, 2
jmp 0x44d74e
cmp ecx, 0xa
je 0x44d748
cmp dword [esi + 0x6c], 0
jne 0x44d53c
cmp ecx, 0xb
je 0x44d748
cmp ecx, 0xc
je 0x44d748
cmp ecx, 0x85
je 0x44d748
cmp ecx, 0x2028
je 0x44d748
cmp ecx, 0x2029
jne 0x44d53c
mov eax, dword [esi + 0x7c]
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x44d6b5
jmp 0x44d53c
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44d839
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d7ad
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0x44d809
je 0x44d7cb
cmp ecx, 0xa0
ja 0x44d7ff
je 0x44d7cb
cmp ecx, 9
je 0x44d7cb
cmp ecx, 0x20
jne 0x44d835
mov ecx, 1
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x12
sete al
cmp ecx, eax
je 0x44d53c
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d76f
jmp 0x44d53c
cmp ecx, 0x1680
jne 0x44d835
jmp 0x44d7cb
cmp ecx, 0x205f
ja 0x44d82d
je 0x44d7cb
cmp ecx, 0x2000
jb 0x44d835
cmp ecx, 0x200a
jbe 0x44d7cb
cmp ecx, 0x202f
jne 0x44d835
jmp 0x44d7cb
cmp ecx, 0x3000
je 0x44d7cb
xor ecx, ecx
jmp 0x44d7d0
cmp dword [esi + 0x8c], 0
je 0x44d53c
cmp edi, dword [esi + 0x88]
jbe 0x44d53c
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jmp 0x44d536
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44d839
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d8a3
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x85
ja 0x44d8e4
je 0x44d8ef
cmp ecx, 0xa
jb 0x44d8b7
cmp ecx, 0xd
jbe 0x44d8ef
xor ecx, ecx
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x14
sete al
cmp ecx, eax
je 0x44d53c
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d869
jmp 0x44d53c
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x44d8b7
mov ecx, 1
jmp 0x44d8b9
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
cmp edi, dword [esi + 0x7c]
jae 0x44d517
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44d948
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x1c], eax
mov edx, ecx
jmp 0x44d94d
mov eax, 1
cmp edx, 0x100
jae 0x44d965
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44d53c
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d8ff
jmp 0x44d53c
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
cmp edi, dword [esi + 0x7c]
jae 0x44d517
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44d9cb
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0x44d53c
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44d53c
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44d985
jmp 0x44d53c
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
cmp edi, dword [esi + 0x7c]
jae 0x44d517
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44da50
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x1c], eax
mov edx, ecx
jmp 0x44da55
mov eax, 1
cmp edx, 0x100
jae 0x44da6d
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44d53c
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44da07
jmp 0x44d53c
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
cmp edi, dword [esi + 0x7c]
jae 0x44d517
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44dad3
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0x44d53c
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44d53c
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44da8d
jmp 0x44d53c
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
cmp edi, dword [esi + 0x7c]
jae 0x44d517
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44db58
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x1c], eax
mov edx, ecx
jmp 0x44db5d
mov eax, 1
cmp edx, 0x100
jae 0x44db75
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44d53c
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44db0f
jmp 0x44d53c
cmp ecx, dword [ebp - 0x14]
jge 0x44d53f
cmp edi, dword [esi + 0x7c]
jae 0x44dc0a
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44dbd7
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0x44d53c
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44d53c
mov eax, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44db95
jmp 0x44d53c
cmp dword [esi + 0x8c], 0
je 0x44d53c
cmp edi, dword [esi + 0x88]
jbe 0x44d53c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
jmp 0x44d53c
cmp eax, 0xf
ja case.default.0x449b6e
jmp dword [eax*4 + 0x450446]
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44dcfb
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44dc81
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0040863e
add esp, 0xc
test eax, eax
je 0x44dca9
jmp 0x44dd20
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44dca9
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44dca9
cmp edx, 1
je 0x44dd20
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44dd20
cmp dword [esi + 0x8c], 0
je 0x44dce3
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44dce3
cmp dword [esi + 0x18], 0
jne 0x44dce3
cmp dword [esi + 0x1c], 2
jne 0x44dce3
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44dce3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44dc55
jmp 0x44dd20
cmp dword [esi + 0x8c], 0
je 0x44dd20
cmp edi, dword [esi + 0x88]
jbe 0x44dd20
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov edx, dword [ebp - 0x10]
jmp 0x44e1af
sub dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub eax, edi
sar eax, 1
cmp dword [ebp - 0x14], eax
jbe 0x44dd70
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44e1af
cmp ecx, dword [esi + 0x88]
jbe 0x44e1af
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44e1af
jmp 0x44feb6
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44de07
movzx eax, word [edi]
cmp eax, 0xd
jne 0x44ddac
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44e1af
cmp word [edi], 0xa
je 0x44ddf0
jmp 0x44ddf6
cmp eax, 0xa
je 0x44ddf0
cmp dword [esi + 0x6c], 0
jne 0x44e1af
cmp eax, 0xb
je 0x44ddf0
cmp eax, 0xc
je 0x44ddf0
mov dword [ebp - 0x38], 0x85
cmp ax, word [ebp - 0x38]
je 0x44ddf0
mov dword [ebp - 0x38], 0x2028
cmp ax, word [ebp - 0x38]
je 0x44ddf0
mov dword [ebp - 0x38], 0x2029
cmp ax, word [ebp - 0x38]
jne 0x44e1af
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44dd8a
jmp 0x44e1af
cmp dword [esi + 0x8c], 0
je 0x44e1af
cmp edi, dword [esi + 0x88]
jbe 0x44e1af
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44e1af
jmp 0x44feb6
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44de83
je 0x44e1af
cmp eax, 0xa0
ja 0x44de77
je 0x44e1af
cmp eax, 9
je 0x44e1af
cmp eax, 0x20
jne 0x44deb9
jmp 0x44e1af
cmp eax, 0x1680
jne 0x44deb9
jmp 0x44e1af
cmp eax, 0x205f
ja 0x44deae
je 0x44e1af
cmp eax, 0x2000
jb 0x44deb9
cmp eax, 0x200a
jbe 0x44e1af
cmp eax, 0x202f
jne 0x44deb9
jmp 0x44e1af
cmp eax, 0x3000
je 0x44e1af
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44de42
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44df10
je 0x44df42
cmp eax, 0xa0
ja 0x44df04
je 0x44df42
cmp eax, 9
je 0x44df42
cmp eax, 0x20
je 0x44df42
jmp 0x44e1af
cmp eax, 0x1680
je 0x44df42
jmp 0x44e1af
cmp eax, 0x205f
ja 0x44df37
je 0x44df42
cmp eax, 0x2000
jb 0x44e1af
cmp eax, 0x200a
jbe 0x44df42
cmp eax, 0x202f
je 0x44df42
jmp 0x44e1af
cmp eax, 0x3000
jne 0x44e1af
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44ded7
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44df84
je 0x44e1af
cmp eax, 0xa
jb 0x44df96
cmp eax, 0xd
ja 0x44df96
jmp 0x44e1af
cmp eax, 0x2028
jb 0x44df96
cmp eax, 0x2029
jbe 0x44e1af
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44df5c
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44dfd2
je 0x44dfe0
add eax, 0xfffffff6
cmp eax, 3
jbe 0x44dfe0
jmp 0x44e1af
add eax, 0xffffdfd8
cmp eax, 1
ja 0x44e1af
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44dfb0
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44e025
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44e1af
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x44dffa
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44e1af
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44e1af
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44e042
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44e0b6
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44e1af
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x44e08b
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44e1af
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44e1af
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44e0d3
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44de07
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44e143
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44e1af
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x44e11c
jmp 0x44e1af
cmp ecx, dword [ebp - 0x14]
jge 0x44e1af
cmp edi, dword [esi + 0x7c]
jae 0x44e18a
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44e1af
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44e1af
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44e159
jmp 0x44e1af
cmp dword [esi + 0x8c], 0
je 0x44e1af
cmp edi, dword [esi + 0x88]
jbe 0x44e1af
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
cmp dword [ebp - 0x2c], 0
jne 0x40a679
cmp edi, edx
je 0x40a492
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x10]
add edi, 0xfffffffe
cmp dword [ebp - 0x20], 0x11
mov dword [ebp - 8], edi
jne 0x44e20a
cmp edi, eax
jbe 0x44e20c
cmp word [edi], 0xa
jne 0x44e20a
cmp word [edi - 2], 0xd
jne 0x44e20a
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, eax
jne 0x44e1c1
jmp 0x40a492
mov edx, dword [ebp - 0x20]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
add ebx, 4
jmp 0x40a48f
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push ecx
push dword [ebp + 8]
jne 0x44e29b
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ecx, dword [ebp - 0x20]
mov edx, 0x81
movzx eax, word [ecx]
cmp ax, dx
je 0x44e54d
mov edx, 0x88
cmp ax, dx
jb 0x448226
mov eax, dword [ebp + 0x18]
mov edx, ecx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
jmp 0x40a4db
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.0040a310
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x44e2c2
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0x40a4db
jmp 0x44e2cd
test eax, eax
jne 0x40a4db
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x44e551
add ebx, 4
jmp 0x40a48f
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44e2fe
add edi, 0xfffffffe
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e329
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c2]
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x10]
jbe 0x40a492
cmp dword [ebp - 0x28], 0
lea edx, [edi - 2]
jne 0x44e367
movzx ecx, word [edx]
jmp 0x44e3aa
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44e37f
add edx, 0xfffffffe
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e3aa
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c2]
mov dword [ebp - 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test dword [ecx*4 + 0x4c31c0], eax
je 0x44d3de
mov edi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edi
jmp 0x44e350
mov dword [esi + 0x9c], 2
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc20
jne 0x44e490
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ff39
cmp word [ebx], 0x77
je 0x44e468
cmp word [eax], 0x77
jne 0x44ff39
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x38]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
jne case.0x40a396.157
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp case.0x40a396.129
test eax, eax
je 0x44e468
cmp eax, 0xfffffc1b
jne 0x40a4db
movzx ecx, word [ebx]
mov edx, 0x81
cmp cx, dx
je 0x44e4cb
cmp ecx, 0x77
jne 0x44e4bf
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44e4b1
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 0xb8], ebx
jne 0x40a4db
jmp case.0x40a396.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4c3110]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x40a4db
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x40a4db
push ecx
call fcn.0040acbb
add esp, 4
jmp 0x44ff39
mov eax, 0xfffffffa
jmp 0x40a4db
mov edx, ecx
jmp 0x44e554
lea edx, [ebx + 4]
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov edi, dword [ebp - 0x20]
jmp 0x44e59d
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push ecx
push dword [ebp + 8]
mov ecx, dword [ebp - 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x40a4db
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, 0xfffffc1a
mov dword [esi + 0x90], ecx
jmp 0x40a4db
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x90], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
jmp 0x40a4d6
cmp eax, 0xfffffffe
jne 0x44e5f7
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jb case.0x40a396.157
jmp 0x44c549
mov dword [ebp - 0x1c], eax
cmp edi, edx
jl 0x44e620
mov edi, eax
jmp 0x44e685
mov eax, dword [ebp - 8]
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call 0x49bc80
add esp, 0xc
test eax, eax
js 0x44e64a
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 0x20]
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edi, dword [ebp - 0x2c]
jl 0x44e61d
jmp 0x44e67a
cmp eax, 0xfffffffe
jne 0x44e677
cmp dword [esi + 0x8c], 0
je 0x44e677
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x44e677
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
cmp edx, edi
jb case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, edi
jae 0x44e685
jmp case.0x40a396.157
cmp ecx, 0xfffffffe
jne 0x44e6ca
mov eax, dword [esi + 0x7c]
jmp 0x44e6cd
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp eax, dword [esi + 0x7c]
jb case.0x40a396.157
cmp eax, dword [esi + 0x88]
jmp 0x44c54f
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44e7c4
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x40a396.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0x44e914
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e76a
movzx eax, word [ecx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
cmp edx, 0xff
jbe 0x44e77d
cmp edi, 0x6e
je case.0x40a396.157
jmp 0x44e79b
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x40a396.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44e71c
jmp 0x40a4db
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x40a396.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44e92c
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x44e800
cmp edi, 0x6e
je case.0x40a396.157
jmp 0x44e81b
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
inc dword [ebp - 0x18]
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44e7cc
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x44e8b5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e8b5
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
push edx
mov edx, dword [ebp - 0x24]
call 0x49be7b
add esp, 4
test eax, eax
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44e869
jmp 0x40a4db
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp edx, ecx
jb case.0x40a396.157
cmp edx, dword [esi + 0x88]
jmp 0x44c54f
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp ecx, dword [esi + 0x88]
jmp 0x44c54f
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp eax, dword [esi + 0x88]
jmp 0x44c54f
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
jge case.0x40a396.157
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44e99b
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00421724
add esp, 0xc
test eax, eax
jne 0x44e99b
mov eax, dword [ebp - 0xc]
jmp 0x44e9cf
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44e5f7
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44e5f7
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00421724
add esp, 0xc
test eax, eax
jne 0x44e5f7
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44e96a
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
cmp dword [ebp - 0x20], ecx
je 0x44ea49
cmp dword [ebp - 0x24], ecx
jne case.0x40a396.157
inc eax
add edi, 2
mov dword [ebp - 0x14], eax
mov edx, ebx
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44ea23
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x20], eax
jne case.0x40a396.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0x14], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44ea97
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44eb92
test eax, eax
jne 0x40a4db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44eb58
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp dword [ebp - 0x14], ecx
je case.0x40a396.157
cmp dword [ebp - 0x20], ecx
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0xc], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44eb13
jmp 0x40a4db
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
cmp dword [ebp - 0x14], ecx
je case.0x40a396.157
cmp dword [ebp - 0x20], ecx
je case.0x40a396.157
inc eax
add edi, 2
mov dword [ebp - 0xc], eax
mov edx, ebx
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44eb9a
jmp 0x40a4db
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp eax, dword [esi + 0x88]
jbe case.0x40a396.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40a396.157
jmp 0x44feb6
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44ecc3
test eax, eax
jne 0x40a4db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ec92
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp dword [ebp - 0x14], ecx
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0xc], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44ec4d
jmp 0x40a4db
test eax, eax
jne 0x40a4db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x14], eax
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0xc], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44eccb
jmp 0x40a4db
cmp eax, 0xa
ja case.default.0x449b6e
jmp dword [eax*4 + 0x450486]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x14]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
je 0x44ed7a
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ed7a
add edi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x40a396.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0xc], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44ed4a
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44ee1c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ee1c
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp eax, 9
je 0x44ee53
cmp eax, 5
je 0x44ee53
cmp eax, 8
je 0x44ee53
xor eax, eax
jmp 0x44ee58
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44edcf
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44eefd
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44eefd
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add edi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp dword [eax*4 + 0x4c6320], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44eeaf
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44efd4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44efd4
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44ef87
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44f0a4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f0a4
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44f057
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44f175
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f175
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x44f1ae
cmp eax, 3
je 0x44f1ae
xor eax, eax
jmp 0x44f1b3
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44f127
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44f25c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f259
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov edx, ecx
mov eax, dword [ebp - 0xc]
cmp ecx, 0x180e
ja 0x44f2a2
je 0x44f317
cmp ecx, 0x85
ja 0x44f290
je 0x44f317
cmp ecx, 9
jb case.0x44f2be.8203
cmp ecx, 0xd
jbe 0x44f317
cmp ecx, 0x20
jne case.0x44f2be.8203
jmp 0x44f317
cmp ecx, 0xa0
je 0x44f317
cmp ecx, 0x1680
jne case.0x44f2be.8203
jmp 0x44f317
cmp ecx, 0x202f
ja 0x44f2c5
je 0x44f317
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44f2be.8203
movzx eax, byte [ecx + 0x4504ba]
jmp dword [eax*4 + 0x4504b2]
cmp ecx, 0x205f
je 0x44f317
cmp ecx, 0x3000
je 0x44f317
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
cmp dword [eax*4 + 0x4c6320], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp - 0xc]
jmp 0x44f321
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x3c], 0
jne case.0x40a396.157
inc eax
mov edx, ebx
mov dword [ebp - 0xc], eax
mov ecx, edi
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44f20a
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44f3bd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f3bd
movzx eax, word [edi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f10]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c10]
movzx eax, byte [eax*8 + 0x4b03c1]
mov eax, dword [eax*4 + 0x4c6320]
cmp eax, 1
je 0x44f3fd
cmp eax, 3
je 0x44f3fd
cmp edx, 0x5f
je 0x44f3fd
xor eax, eax
jmp 0x44f402
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44f370
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x34], ecx
je 0x44f4ad
mov eax, ecx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f4ad
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0x4b1a40]
lea eax, [eax*4 + 0x4b1a40]
cmp dword [ebp - 0x34], edx
jb 0x44f4d0
lea eax, [eax + 4]
cmp ecx, edx
je 0x44f505
mov edx, dword [eax]
cmp ecx, edx
jae 0x44f4c3
cmp dword [ebp - 0x3c], 0
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44f459
jmp 0x40a4db
cmp dword [ebp - 0x3c], 0
jne case.0x40a396.157
jmp 0x44f4da
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44f582
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f582
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add ecx, 0x10000
add edi, 2
cmp ecx, 0x24
je 0x44f5ad
cmp ecx, 0x40
je 0x44f5ad
cmp ecx, 0x60
je 0x44f5ad
cmp ecx, 0xa0
jb 0x44f5a1
cmp ecx, 0xd7ff
jbe 0x44f5ad
cmp ecx, 0xe000
jae 0x44f5ad
xor eax, eax
jmp 0x44f5b2
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44f534
jmp 0x40a4db
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
cmp edi, dword [esi + 0x7c]
jae 0x44c53c
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x38], eax
mov edx, edi
je 0x44f640
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f640
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add edi, 2
or ecx, eax
add ecx, 0x10000
mov edx, edi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx ecx, byte [eax*8 + 0x4b03c2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], ecx
cmp edx, eax
jae 0x44f712
mov dword [ebp - 0x38], edx
mov ebx, edx
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x34], 1
je 0x44f6b6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44f6b6
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
mov esi, dword [ebp - 0x1c]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edx, ebx
movzx eax, byte [eax + 0x4c0f10]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c10]
movzx ecx, byte [eax*8 + 0x4b03c2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c31c0], eax
mov esi, dword [ebp + 0x10]
je 0x44f70c
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], ecx
lea edi, [ebx + eax*2]
mov eax, dword [esi + 0x7c]
mov ebx, edi
mov edx, edi
cmp edi, eax
jb 0x44f677
jmp 0x44f70f
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x44f73b
cmp edx, eax
jb 0x44f73b
cmp edx, dword [esi + 0x88]
jbe 0x44f73b
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44f5ee
jmp 0x40a4db
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x40a9a2
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x40a9a2
cmp edx, 1
je case.0x40a396.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a396.157
jmp 0x40a9a2
movzx eax, word [edi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, edi
mov edx, ecx
mov dword [ebp - 0x24], eax
jmp 0x40a9bf
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
cmp esi, 0xf
ja case.default.0x449b6e
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
jmp dword [esi*4 + 0x4504e6]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp ecx, 0xd
ja 0x44f822
je 0x44f807
cmp ecx, 0xa
je case.0x44f7dc.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40a396.157
jmp 0x44f839
cmp edi, dword [esi + 0x7c]
jae case.0x44f7dc.13
cmp word [edi], 0xa
jne case.0x44f7dc.13
lea edi, [eax + 2]
jmp case.0x44f7dc.13
cmp ecx, 0x85
je 0x44f839
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
cmp dword [esi + 0x6c], 0
jne case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x180e
ja 0x44f88c
je case.0x40a396.157
cmp ecx, 0xa0
ja 0x44f87b
je case.0x40a396.157
cmp ecx, 9
je case.0x40a396.157
cmp ecx, 0x20
je case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x1680
je case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x205f
ja 0x44f8c3
je case.0x40a396.157
cmp ecx, 0x2000
jb case.0x44f7dc.13
cmp ecx, 0x200a
jbe case.0x40a396.157
cmp ecx, 0x202f
je case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x3000
je case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x180e
ja 0x44f918
je case.0x44f7dc.13
cmp ecx, 0xa0
ja 0x44f907
je case.0x44f7dc.13
cmp ecx, 9
je case.0x44f7dc.13
cmp ecx, 0x20
jne case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x1680
jne case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x205f
ja 0x44f94f
je case.0x44f7dc.13
cmp ecx, 0x2000
jb case.0x40a396.157
cmp ecx, 0x200a
jbe case.0x44f7dc.13
cmp ecx, 0x202f
jne case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x3000
jne case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x85
ja 0x44f985
je case.0x40a396.157
cmp ecx, 0xa
jb case.0x44f7dc.13
cmp ecx, 0xd
jbe case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x2028
jb case.0x44f7dc.13
cmp ecx, 0x2029
jbe case.0x40a396.157
jmp case.0x44f7dc.13
cmp ecx, 0x85
ja 0x44f9c1
je case.0x44f7dc.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a396.157
jmp case.0x44f7dc.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
jmp case.0x44f7dc.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44f7dc.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a396.157
jmp case.0x44f7dc.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a396.157
jmp case.0x44f7dc.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44f7dc.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a396.157
jmp case.0x44f7dc.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a396.157
jmp case.0x44f7dc.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44f7dc.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a396.157
jmp case.0x44f7dc.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a396.157
jmp case.0x44f7dc.13
cmp eax, dword [esi + 0x7c]
jb case.0x44f7dc.13
cmp dword [esi + 0x18], 0
jne case.0x44f7dc.13
cmp dword [esi + 0x1c], 2
jne case.0x44f7dc.13
movzx eax, word [esi + 0x34]
cmp edx, eax
jne case.0x44f7dc.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44feb6
jmp case.0x44f7dc.13
test eax, eax
jne 0x40a4db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a396.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44fe89
cmp dword [ebp - 0x20], 0xc
jne 0x44fb50
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44fb24
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0040863e
add esp, 0xc
test eax, eax
jne case.0x40a396.157
jmp 0x44fb50
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44fb50
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44fb50
cmp edx, 1
je case.0x40a396.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a396.157
movzx eax, word [edi]
add edi, 2
mov ecx, eax
mov edx, eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffffa
mov dword [ebp - 0x38], ecx
cmp eax, 0xf
ja case.default.0x449b6e
jmp dword [eax*4 + 0x450526]
cmp dword [esi + 0x8c], 0
je case.0x44fb6c.13
cmp edi, dword [esi + 0x7c]
jb case.0x44fb6c.13
cmp dword [esi + 0x18], 0
jne case.0x44fb6c.13
cmp dword [esi + 0x1c], 2
jne case.0x44fb6c.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44fb6c.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x44fb6c.13
jmp 0x44feb6
cmp ecx, 0xd
ja 0x44fbfb
je 0x44fbe0
cmp ecx, 0xa
je case.0x44fb6c.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40a396.157
jmp 0x44fc12
cmp edi, dword [esi + 0x7c]
jae case.0x44fb6c.13
cmp word [edi], 0xa
jne case.0x44fb6c.13
add edi, 2
jmp case.0x44fb6c.13
cmp ecx, 0x85
je 0x44fc12
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
cmp dword [esi + 0x6c], 0
jne case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x180e
ja 0x44fc65
je case.0x40a396.157
cmp ecx, 0xa0
ja 0x44fc54
je case.0x40a396.157
cmp ecx, 9
je case.0x40a396.157
cmp ecx, 0x20
je case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x1680
je case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x205f
ja 0x44fc9c
je case.0x40a396.157
cmp ecx, 0x2000
jb case.0x44fb6c.13
cmp ecx, 0x200a
jbe case.0x40a396.157
cmp ecx, 0x202f
je case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x3000
je case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x180e
ja 0x44fcf1
je case.0x44fb6c.13
cmp ecx, 0xa0
ja 0x44fce0
je case.0x44fb6c.13
cmp ecx, 9
je case.0x44fb6c.13
cmp ecx, 0x20
jne case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x1680
jne case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x205f
ja 0x44fd28
je case.0x44fb6c.13
cmp ecx, 0x2000
jb case.0x40a396.157
cmp ecx, 0x200a
jbe case.0x44fb6c.13
cmp ecx, 0x202f
jne case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x3000
jne case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x85
ja 0x44fd5e
je case.0x40a396.157
cmp ecx, 0xa
jb case.0x44fb6c.13
cmp ecx, 0xd
jbe case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x2028
jb case.0x44fb6c.13
cmp ecx, 0x2029
jbe case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0x85
ja 0x44fd9a
je case.0x44fb6c.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a396.157
jmp case.0x44fb6c.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a396.157
jmp case.0x44fb6c.13
cmp ecx, 0xff
ja case.0x44fb6c.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a396.157
jmp case.0x44fb6c.13
mov eax, 0xff
cmp word [ebp - 0x38], ax
ja case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a396.157
jmp case.0x44fb6c.13
mov eax, 0xff
cmp dx, ax
ja case.0x44fb6c.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a396.157
jmp case.0x44fb6c.13
mov eax, 0xff
cmp dx, ax
ja case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a396.157
jmp case.0x44fb6c.13
mov eax, 0xff
cmp dx, ax
ja case.0x44fb6c.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a396.157
jmp case.0x44fb6c.13
mov eax, 0xff
cmp dx, ax
ja case.0x40a396.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a396.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x44fae5
jmp 0x40a4db
mov eax, 0xfffffff2
jmp 0x40a4db
cmp dword [esi + 0x8c], 0
je case.0x40a396.157
cmp edi, dword [esi + 0x88]
jbe case.0x40a396.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40a396.157
mov eax, 0xfffffff4
jmp 0x40a4db
mov dword [esi + 0x9c], 2
jmp 0x40aa6c
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ff39
cmp word [ebx], 0x77
je 0x44feea
cmp word [eax], 0x77
jne 0x44ff39
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x34]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
je 0x40aa60
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x40]
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x30]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x3c]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x2c]
jmp 0x40a4db
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4c3110]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0040a310
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x44ff92
cmp eax, 0xfffffc19
jne 0x44ffa6
cmp dword [esi + 0xb0], 0
jne 0x44ffa6
mov dword [esi + 0xb0], edi
jmp 0x40a4db
cmp eax, 0xfffffc1f
jne 0x40a4db
mov edx, dword [esi + 0x80]
mov ecx, edi
call 0x49c2ab
test eax, eax
jne 0x44ff39
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov eax, 0xfffffc1c
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x4500a2
jmp 0x40a4db
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4c3110]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.0040a310
add esp, 0x14
cmp eax, 1
je 0x45008b
cmp eax, 0xfffffc19
jne 0x45009a
cmp dword [esi + 0xb0], 0
jne 0x45009a
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x40a4db
mov eax, 0xfffffc1d
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0040a310
add esp, 0x14
test eax, eax
jne 0x40a4db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x40a4db
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4c3110]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a310
add esp, 0x14
test eax, eax
je 0x450180
jmp 0x40a4db
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4c3110]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.0040a310
add esp, 0x14
cmp eax, 1
je 0x450169
cmp eax, 0xfffffc19
jne 0x450178
cmp dword [esi + 0xb0], 0
jne 0x450178
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x40a4db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x40a4db
cmp edi, 0x9f
je 0x40a4b9
cmp dword [esi + 0xa8], 0
jne 0x40a4b9
cmp dword [esi + 0x60], 0
jne case.0x40a396.157
cmp dword [esi + 0x64], 0
je 0x40a4b9
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x40a396.157
jmp 0x40a4b9
mov eax, 0xfffffc19
jmp 0x40a4db
mov eax, 0xfffffffb
jmp 0x40a4db
mov eax, 0xffffffeb
jmp 0x40a4db
inc eax
mov dword [esi], eax
mov eax, 0xfffffff8
jmp 0x40a4db