Function at 0x40a200
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 0x447194
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 0x44f2de
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x44f2d4
cmp dword [esi + 0x9c], 2
je 0x4471c8
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.0x40a286.98
movzx eax, byte [edi + 0x40ab00]
jmp dword [eax*4 + 0x40a9b4]
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 0x447f23
mov eax, 0x81
cmp cx, ax
je 0x447f23
mov dword [ebp - 0x2c], 0
cmp ecx, 0x7d
jb 0x40a2d3
mov eax, 0x80
cmp cx, ax
jbe 0x44d6b9
mov eax, 0x82
cmp cx, ax
je 0x44d6b9
mov eax, 0x85
cmp cx, ax
je 0x40a696
mov eax, 0x8a
cmp cx, ax
je 0x40a696
mov eax, 0x86
cmp cx, ax
je 0x40a696
mov eax, 0x8b
cmp cx, ax
je 0x40a696
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x447f9b
mov eax, 0x81
cmp word [edi], ax
je 0x44d664
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a25d
cmp edi, 0x88
jae 0x44d4e2
cmp edi, 0x81
je 0x44d4e2
cmp dword [esi + 0x70], 0
jne 0x44d4ec
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x44d4ec
movzx eax, word [ebx]
movzx eax, byte [eax + 0x4c2160]
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 0x40a241
jmp 0x44f2de
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x44f27a
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x44f2c0
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 0x44da16
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov edi, eax
je 0x40a408
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448e5d
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af412]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x40a4a6
mov esi, dword [ebp - 8]
mov ebx, edi
jmp 0x40a440
cmp dword [ebp - 0x28], 0
mov edx, 1
movzx ecx, word [esi]
je 0x40a460
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448e89
mov esi, dword [ebp - 0x34]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edi, ebx
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx ecx, byte [eax*8 + 0x4af412]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c2210], eax
mov eax, dword [ebp - 0x24]
jne 0x40a571
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
jne 0x448ead
mov edx, dword [ebp - 8]
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x40a25d
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 0x449121
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 0x4491ef
cmp edx, ecx
jl 0x40a55d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x4491bc
cmp edx, 0xff
ja 0x4491e1
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.0x40a286.157
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x40a501
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x20]
jne 0x449251
mov edx, dword [ebp - 8]
jmp 0x40a25d
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 0x40a440
jmp 0x40a4a0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
cmp dword [ebp - 0x28], 0
je 0x4497bc
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 0x44970d
mov eax, dword [ebp - 8]
cmp edx, 0x80
jae 0x449738
movzx edx, word [eax]
mov eax, dword [esi + 0x3c]
cmp edx, 0xff
ja 0x40a5e7
movzx edx, byte [eax + edx]
movzx eax, byte [eax + ecx]
cmp eax, edx
jne case.0x40a286.157
add ebx, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40a25d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
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 0x40a63a
mov eax, edx
mov dword [ebp - 0x20], ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448c25
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4bff60]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x4b1c60]
cmp eax, 9
jne 0x448c4f
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x4b0a90]
lea eax, [eax*4 + 0x4b0a90]
cmp dword [ebp - 0x20], ecx
jb 0x448e4f
lea eax, [eax + 4]
cmp edx, ecx
je 0x40a711
mov ecx, dword [eax]
cmp edx, ecx
jae 0x40a680
jmp 0x448e4f
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 0x447f3b
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, dword [ebp - 0x24]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jge 0x447f67
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jg 0x447f7a
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 0x40a709
lea ecx, [edi + 2]
mov dword [ebp + 0xc], ecx
mov edi, dword [ebp - 0x20]
jmp 0x40a31c
cmp edi, 0x10
jne case.0x40a286.157
add ebx, 6
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40a25d
cmp dword [ebp - 0x28], 0
je 0x4496db
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 0x4496ce
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 0x44d9de
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.0x40a286.157
test edi, edi
jle 0x40a569
jmp 0x40a770
lea ecx, [edi - 0x55]
add ebx, 2
mov eax, ebx
test cl, 1
je 0x44a533
mov edx, 1
movsx edi, byte [ecx + 0x4b1c4c]
mov dword [ebp - 0xc], edi
movsx edi, byte [ecx + 0x4b1c40]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x40a7d1
mov dword [ebp - 0x14], bind
movzx edi, word [ebx]
lea ebx, [eax + 2]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], ebx
cmp edi, 0x10
je 0x44a53a
cmp edi, 0xf
je 0x44a53a
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
test ecx, ecx
jg 0x44a561
mov edi, dword [ebp - 8]
cmp ecx, dword [ebp - 0x14]
je 0x40a569
test edx, edx
je 0x44ba9e
test eax, eax
jns 0x44de01
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.0040a200
add esp, 0x14
cmp dword [ebp - 0x20], 0x16
je 0x44e6d0
cmp dword [ebp - 0x28], 0
je 0x44ebc7
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b626
cmp dword [ebp - 0x20], 0xc
jne 0x40a892
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44e850
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0040869b
add esp, 0xc
test eax, eax
jne case.0x40a286.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 0x44e889
cmp dword [ebp - 0x20], 0xc
jne 0x44e8b1
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [esi + 0x8c], 0
jne 0x44eb85
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
jmp 0x40a850
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.0x40a286.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 0x44efaa
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 + 0x4c2160]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a200
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1b
je 0x44effe
cmp eax, 0xfffffc20
je 0x44efb9
test eax, eax
jne 0x40a3cb
jmp 0x44efdb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
jne 0x4471b6
push 1
push 0
push 0
push 0
push 0
xor edx, edx
lea ecx, [ebp + 0x18]
call fcn.0040a200
add esp, 0x14
jmp 0x40a3cb
lea eax, [ebp + 0x18]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
neg eax
jmp 0x40a3cb
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 0x40a569
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x44d5c6
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x4c2160]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x40a25d
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.0040a200
add esp, 0x14
cmp eax, 1
je 0x447290
cmp eax, 0xfffffc20
jne 0x447270
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x40a3cb
cmp word [ebx], 0x77
je 0x447278
cmp word [ecx], 0x77
jne 0x40a3cb
jmp 0x447278
test eax, eax
jne 0x40a3cb
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x447222
mov ecx, dword [ebp + 8]
jmp 0x447299
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x4472af
cmp eax, 0x77
jne case.0x40a286.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4472af
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 0x447e53
cmp eax, dword [ebp - 0x1c]
je 0x447e53
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 0x44d2fd
lea edx, [ebx + 4]
call fcn.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov ecx, dword [ebp - 0x20]
mov ebx, ecx
jmp 0x40a37f
mov dword [ebp - 0x24], 0
jmp 0x447d07
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 0x447356
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 + 0x4c2160]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a200
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x447df6
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 0x447e45
mov dword [ebp - 8], eax
jmp 0x447344
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 0x4474b2
cmp dword [0x4d263c], 0
je 0x4474a4
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 0x44746b
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 [0x4d263c]
add esp, 4
test eax, eax
jg case.0x40a286.157
js 0x40a3cb
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.0x4474d5.146
movzx eax, byte [eax + 0x44f304]
jmp dword [eax*4 + 0x44f2ec]
mov ecx, dword [esi + 0xa8]
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
je 0x4476e6
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x447501
cmp eax, dword [ecx + 4]
jne 0x4476e6
mov ecx, 1
jmp 0x4476bd
cmp dword [esi + 0xa8], ecx
je case.0x4474d5.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 0x4476de
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 0x4475ae
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 0x44753f
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 0x447577
cmp word [ebx - 4], 0x77
jne 0x40a25d
cmp edi, 0x8c
jne 0x40a385
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.0040a200
add esp, 0x14
jmp 0x40a3cb
mov ebx, dword [ebp - 0x2c]
mov ecx, 1
jmp 0x4476bd
mov ebx, dword [ebp - 0x2c]
movzx eax, word [ebx + 2]
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x4475da
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x4475da
mov ecx, 1
jmp 0x4475dc
xor ecx, ecx
test ecx, ecx
jne 0x4476bd
jmp 0x44755f
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 0x4476de
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec ebx
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x44761e
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4475ae
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 0x447609
jmp 0x44755a
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.0040a200
add esp, 0x14
cmp eax, 1
jne 0x4476cc
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x44766e
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x92
mov dword [ebp - 0x20], 1
cmp word [eax], cx
jne 0x447687
lea eax, [ebx + 2]
mov ebx, eax
movzx eax, word [eax + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x4476a3
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x447695
mov eax, dword [ebp - 0x30]
mov ecx, 2
movzx eax, byte [eax + 0x4c2160]
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 + 0x4c2160]
jmp 0x447562
test eax, eax
je 0x4476db
cmp eax, 0xfffffc20
jne 0x40a3cb
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp case.0x4474d5.145
mov ecx, dword [ebp - 0x20]
jmp 0x44755f
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 0x447723
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x40a336
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 0x449ea2
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x44776a
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 0x449ea2
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
jne 0x447798
mov dword [esi + 0x9c], 0
mov edi, 1
jmp 0x44779a
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.0040a200
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x447811
cmp eax, 0xfffffc19
je 0x447811
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], ecx
cmp eax, 0xfffffc20
jne 0x4477f9
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44f023
cmp word [ebx], 0x77
je 0x447801
cmp word [eax], 0x77
je 0x447801
jmp 0x44f023
test eax, eax
jne 0x40a3cb
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44779a
jmp 0x44781a
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x40a286.157
test edi, edi
jne 0x40a3c6
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44782c
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x40a569
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x447870
mov dword [esi + 0x9c], 0
mov dword [ebp - 0x34], 1
jmp 0x447877
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.0040a200
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xb0], edi
cmp eax, 0xfffffc20
jg 0x4478d0
jne 0x4478e5
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x4478fe
cmp word [ebx], 0x77
je 0x4478c0
cmp word [eax], 0x77
jne 0x4478fe
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447877
jmp 0x44790c
mov ecx, eax
sub ecx, 0
je 0x4478c0
sub ecx, 1
je case.0x40a286.157
jmp 0x40a3cb
cmp eax, 0xfffffc19
je case.0x40a286.157
add eax, 0x3e4
cmp eax, 3
ja 0x44f023
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4478fe
cmp dword [ebp - 0x34], 0
jne 0x40a3c6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a569
cmp dword [ebp - 0x28], 0
je 0x447966
movzx ecx, word [ebx + 2]
test ecx, ecx
je 0x447980
mov eax, dword [ebp - 8]
dec ecx
add eax, 0xfffffffe
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x40a286.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x447960
add eax, 0xfffffffe
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x44792f
jmp 0x447983
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.0x40a286.157
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x40a336
mov dword [esi + 0x88], eax
jmp 0x40a336
cmp dword [0x4d263c], 0
je 0x447a72
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 0x447a39
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 [0x4d263c]
add esp, 4
test eax, eax
jg case.0x40a286.157
js 0x40a3cb
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x40a25d
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jne 0x447a92
xor edx, edx
jmp 0x447a96
movzx edx, word [eax + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x447abd
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x447ab7
cmp eax, dword [ecx + 0x14]
jne 0x447ab7
mov eax, 0xffffffe6
jmp 0x40a3cb
mov ecx, dword [ecx]
test ecx, ecx
jne 0x447aa3
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 0x447afd
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x447b1b
lea eax, [ecx*4]
push eax
call fcn.0040aba2
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x44d62d
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00420ed0
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov eax, 0x88
cmp word [ecx], ax
sbb edi, edi
inc edi
test edi, edi
je 0x447b47
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 + 0x4c2160]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 8]
call fcn.0040a200
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.00420ed0
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 0x447c06
cmp eax, 0xfffffc19
je 0x447c06
cmp eax, 0xfffffc1c
jl 0x447bb5
cmp eax, 0xfffffc20
jle 0x447be7
test eax, eax
jne 0x44d60e
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 0x447b39
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x40a286.157
push eax
call fcn.0040abab
add esp, 4
jmp case.0x40a286.157
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x447c1c
push eax
call fcn.0040abab
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x40a569
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x40a286.119
mov dword [ebp - 0x30], ebx
jmp 0x40a25d
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447c70
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a569
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 0x447c91
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
jmp 0x40a569
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447ccc
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a25d
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x24], 1
cmp edi, 0x86
je 0x447d07
cmp edi, 0x8b
jne 0x44732a
movzx edx, word [ebx + 4]
mov dword [ebp - 0x20], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x44732a
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 0x447d7e
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 + 0x4c2160]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a200
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x447e79
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 0x447ef8
mov dword [ebp - 8], eax
jmp 0x447d59
cmp eax, 0xfffffc20
jne 0x447e21
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44f023
cmp word [ebx], 0x77
je 0x447e29
cmp word [eax], 0x77
je 0x447e29
jmp 0x44f023
test eax, eax
jne 0x40a3cb
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x447e5e
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
jmp 0x447344
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447e45
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a569
cmp dword [ebp - 0x34], 0
jne 0x447e53
cmp dword [ebp - 0x24], 0
je case.0x40a286.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a569
cmp eax, 0xfffffc20
jne 0x447ea4
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44f023
cmp word [ebx], 0x77
je 0x447eac
cmp word [eax], 0x77
je 0x447eac
jmp 0x44f023
test eax, eax
jne 0x40a3cb
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 0x447d56
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x447f06
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 0x447f06
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447ef8
cmp dword [ebp - 0x24], 0
jne 0x447e53
test ecx, ecx
je case.0x40a286.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a569
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 0x40a2c0
mov edx, dword [ebp - 0x24]
mov ecx, edi
cmp dword [eax + 4], edx
mov edx, dword [ebp - 8]
jne 0x40a6b3
mov eax, edx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x40a3cb
mov edi, dword [ebp - 0x20]
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x40a319
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x447f93
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 0x40a6db
cmp eax, 0x7b
je 0x44d697
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 8], eax
jne 0x44d318
mov edx, dword [ebp - 8]
jmp 0x40a328
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x447fcf
cmp eax, dword [esi + 0x78]
je case.0x40a286.157
jmp 0x447fcf
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x78]
jne case.0x40a286.157
jmp 0x40a4b3
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x447fef
cmp eax, dword [esi + 0x78]
je case.0x40a286.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x40a4b3
cmp eax, dword [esi + 0x7c]
je case.0x40a286.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x448033
cmp eax, ecx
jbe case.0x40a286.157
mov edi, dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push edi
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0049b858
add esp, 0xc
test eax, eax
je case.0x40a286.157
jmp 0x40a4b3
mov edi, dword [esi + 0x1c]
lea edx, [edi + edi]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jb case.0x40a286.157
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x40a286.157
cmp edi, 1
je 0x40a4b3
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x40a286.157
jmp 0x40a4b3
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x40a286.157
jmp 0x40a4b6
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x40a569
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x448144
mov edx, dword [esi + 0x18]
test edx, edx
je 0x448111
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0040869b
add esp, 0xc
test eax, eax
jne 0x40a4b3
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x40a286.157
cmp dword [esi + 0x18], 0
jne case.0x40a286.157
cmp dword [esi + 0x1c], 2
jne case.0x40a286.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x40a286.157
jmp 0x44b63f
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x4480cf
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x4480cc
cmp edx, 1
je 0x40a4b3
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x4480cc
jmp 0x40a4b3
cmp dword [esi + 0x4c], 0
jne case.0x40a286.157
cmp dword [esi + 0x8c], 0
je 0x40a4b3
cmp eax, dword [esi + 0x88]
jmp 0x448169
cmp edx, dword [esi + 0x88]
jbe 0x40a4b3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
jmp 0x40a4b3
cmp dword [esi + 0x4c], 0
jne case.0x40a286.157
cmp dword [esi + 0x5c], 0
je case.0x40a286.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x40a286.157
jmp 0x44814e
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x44814e
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x4481d2
push dword [ebp - 0x28]
push edi
push ecx
mov ecx, eax
call fcn.0040869b
add esp, 0xc
test eax, eax
jne 0x448207
jmp 0x4480cc
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x4480cf
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x4480cc
cmp edx, 1
je 0x448207
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x4480cc
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 0x4480cf
jmp 0x44814e
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
je 0x448396
cmp eax, dword [esi + 0x78]
je 0x4482fb
lea edx, [eax - 2]
mov edi, 0xfc00
mov ax, word [edx]
mov ecx, edx
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x448256
lea ecx, [edx - 2]
mov edx, ecx
cmp ecx, dword [esi + 0x88]
jae 0x448264
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
mov edi, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448293
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 0x4482dd
cmp edi, 0x5f
je 0x4482d3
mov eax, edi
and edi, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x4482d3
cmp eax, 3
jne 0x4482f8
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4482fd
cmp edi, 0x100
jae 0x4482f8
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x4482fb
mov edi, 1
jmp 0x4482fd
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x4484b8
movzx ecx, word [eax]
mov eax, ecx
mov edx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448338
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 0x448360
cmp edx, 0x5f
je 0x44850a
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, edx
jmp 0x448455
cmp edx, 0x100
jae 0x448375
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44850a
xor ecx, ecx
movzx eax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 5
jne 0x448514
cmp ecx, edi
je case.0x40a286.157
jmp 0x40a569
cmp eax, dword [esi + 0x78]
je 0x44840f
cmp eax, dword [esi + 0x88]
ja 0x4483af
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x448490
cmp ecx, 0x5f
je 0x448489
mov eax, ecx
test eax, eax
jns 0x4483cf
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
and ecx, 0x8000007f
jns 0x4483e9
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x448486
cmp eax, 3
mov eax, dword [ebp - 8]
je 0x448489
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x4484b8
cmp dword [esi + 0x58], 0
je 0x4484ea
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x44850a
mov eax, ecx
test eax, eax
jns 0x448439
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
and ecx, 0x8000007f
jns 0x448453
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x44850a
cmp eax, 3
jne 0x448375
lea ecx, [eax - 2]
jmp 0x448377
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x448411
mov edx, 0xff
cmp cx, dx
ja 0x44840f
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x44840f
mov edi, 1
jmp 0x448411
cmp dword [esi + 0x8c], 0
je 0x448375
cmp eax, dword [esi + 0x88]
jbe 0x448375
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x448375
jmp 0x44efa0
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x448375
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x448375
mov ecx, 1
jmp 0x448377
cmp ecx, edi
jne case.0x40a286.157
jmp 0x40a569
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x448550
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
cmp eax, ecx
jae 0x448588
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0040869b
add esp, 0xc
test eax, eax
jne case.0x40a286.157
jmp 0x448585
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x448582
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x448582
cmp edx, 1
je case.0x40a286.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x40a286.157
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x4485ce
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, 2
cmp ecx, eax
jne 0x4485cb
cmp dword [esi + 0x18], 0
jne 0x4485cb
cmp dword [esi + 0x1c], 2
jne 0x4485cb
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne 0x4485cb
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x4485cb
jmp 0x44efa0
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x44da16
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x40a4b3
cmp eax, ecx
jae 0x40a4b3
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40a4b3
add dword [ebp - 8], 2
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
add eax, 2
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x40a569
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x44867b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44867b
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 0x40a4b3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4486e6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4486e6
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.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x448751
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448751
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 0x40a4b3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4487bc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4487bc
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.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x448827
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448827
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 0x40a4b3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x448892
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448892
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.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a286.157
jmp 0x40a4b3
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, eax
mov dword [ebp - 8], eax
je 0x448902
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, edx
jne 0x448902
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 0x44894e
je 0x448923
cmp ecx, 0xa
je 0x40a4b3
jbe case.0x40a286.157
cmp ecx, 0xc
ja case.0x40a286.157
jmp 0x448965
cmp edx, edi
jb 0x448939
cmp dword [esi + 0x8c], 0
je 0x40a4b3
jmp 0x448163
cmp word [eax], 0xa
jne 0x40a4b3
lea eax, [edx + 2]
mov dword [ebp - 8], eax
jmp 0x40a4b3
cmp ecx, 0x85
je 0x448965
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
cmp dword [esi + 0x6c], 0
jne case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x4489bd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4489bd
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 0x448a01
je case.0x40a286.157
cmp ecx, 0xa0
ja 0x4489f0
je case.0x40a286.157
cmp ecx, 9
je case.0x40a286.157
cmp ecx, 0x20
je case.0x40a286.157
jmp 0x40a4b3
cmp ecx, 0x1680
je case.0x40a286.157
jmp 0x40a4b3
cmp ecx, 0x205f
ja 0x448a38
je case.0x40a286.157
cmp ecx, 0x2000
jb 0x40a4b3
cmp ecx, 0x200a
jbe case.0x40a286.157
cmp ecx, 0x202f
je case.0x40a286.157
jmp 0x40a4b3
cmp ecx, 0x3000
je case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x448a92
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448a92
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 0x448ad6
je 0x40a4b3
cmp ecx, 0xa0
ja 0x448ac5
je 0x40a4b3
cmp ecx, 9
je 0x40a4b3
cmp ecx, 0x20
jne case.0x40a286.157
jmp 0x40a4b3
cmp ecx, 0x1680
jne case.0x40a286.157
jmp 0x40a4b3
cmp ecx, 0x205f
ja 0x448b0d
je 0x40a4b3
cmp ecx, 0x2000
jb case.0x40a286.157
cmp ecx, 0x200a
jbe 0x40a4b3
cmp ecx, 0x202f
jne case.0x40a286.157
jmp 0x40a4b3
cmp ecx, 0x3000
jne case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x448b67
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448b67
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 0x448b8c
je case.0x40a286.157
cmp ecx, 0xa
jb 0x40a4b3
cmp ecx, 0xd
jbe case.0x40a286.157
jmp 0x40a4b3
cmp ecx, 0x2028
jb 0x40a4b3
cmp ecx, 0x2029
jbe case.0x40a286.157
jmp 0x40a4b3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x448bf2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448bf2
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 0x448c11
je 0x40a4b3
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a286.157
jmp 0x40a4b3
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
jmp 0x40a4b3
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 0x40a63a
cmp eax, 0xa
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f318]
mov al, byte [ecx*8 + 0x4af411]
cmp al, 9
je 0x448c84
cmp al, 5
je 0x448c84
cmp al, 8
je 0x448c84
xor ecx, ecx
jmp 0x448ca0
cmp edi, 0xf
je case.0x40a286.157
jmp 0x40a71a
mov ecx, 1
jmp 0x448ca0
movzx eax, byte [ecx*8 + 0x4af411]
xor ecx, ecx
cmp dword [eax*4 + 0x4c5370], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x40a286.157
jmp 0x40a71a
movzx ecx, byte [ecx*8 + 0x4af411]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x4c5370]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x40a286.157
jmp 0x40a71a
movzx eax, byte [ecx*8 + 0x4af411]
jmp 0x448cf4
movzx eax, byte [ecx*8 + 0x4af410]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x40a286.157
jmp 0x40a71a
movzx eax, byte [ecx*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x448c84
cmp eax, 3
je 0x448c84
xor ecx, ecx
jmp 0x448ca0
cmp edx, 0x180e
ja 0x448d93
je case.0x448c58.0
cmp edx, 0x85
ja 0x448d76
je case.0x448c58.0
cmp edx, 9
jb case.0x448db7.8203
cmp edx, 0xd
jbe case.0x448c58.0
cmp edx, 0x20
je case.0x448c58.0
jmp case.0x448db7.8203
cmp edx, 0xa0
je case.0x448c58.0
cmp edx, 0x1680
je case.0x448c58.0
jmp case.0x448db7.8203
cmp edx, 0x202f
ja 0x448dbe
je case.0x448c58.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x448db7.8203
movzx eax, byte [edx + 0x44f34c]
jmp dword [eax*4 + 0x44f344]
cmp edx, 0x205f
je case.0x448c58.0
cmp edx, 0x3000
je case.0x448c58.0
jmp case.0x448db7.8203
movzx eax, byte [ecx*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x448c84
cmp eax, 3
je 0x448c84
cmp dword [ebp - 0x20], 0x5f
je 0x448c84
xor ecx, ecx
jmp 0x448ca0
mov eax, dword [ebp - 0x20]
cmp eax, 0x24
je 0x448c84
cmp eax, 0x40
je 0x448c84
cmp eax, 0x60
je 0x448c84
cmp eax, 0xa0
jb 0x448e3d
cmp eax, 0xd7ff
jbe 0x448c84
cmp eax, 0xe000
jae 0x448c84
xor ecx, ecx
jmp 0x448ca0
cmp edi, 0x10
je case.0x40a286.157
jmp 0x40a71a
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 0x40a408
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
jmp 0x40a460
cmp edi, eax
jb 0x40a4b3
cmp edi, dword [esi + 0x88]
jbe 0x40a4b3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
jmp 0x40a4b3
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 0x448f93
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 0x448f3d
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x448f3d
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448f90
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 0x448f1a
jmp 0x448f93
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 0x448f86
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x448f86
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448f90
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.0x448fac
movzx eax, byte [eax + 0x44f380]
jmp dword [eax*4 + 0x44f378]
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 + 0x4b1bea]
movsx eax, byte [eax + 0x4b1bde]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x449014
mov dword [ebp - 0x2c], bind
jmp 0x449014
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 0x44900e
mov dword [ebp - 0x2c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
mov eax, edi
test ecx, ecx
je 0x40a25d
jns 0x449028
test edi, edi
je 0x40a25d
cmp eax, 1
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 8]
jl 0x44906a
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0049b11f
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44d7aa
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 0x449037
mov edx, dword [ebp - 0x2c]
cmp edi, edx
je 0x40a569
cmp dword [ebp - 0x1c], 0
je 0x44d6fc
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
jge case.0x40a286.157
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.0049b11f
add esp, 0xc
test eax, eax
js 0x44d6d9
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.0040a200
add esp, 0x14
test eax, eax
je 0x4490a5
jmp 0x40a3cb
push dword [ebp - 0x24]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.0049b11f
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44d7aa
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x40a569
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x449134
movzx eax, byte [eax + 0x44f390]
jmp dword [eax*4 + 0x44f388]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x449153
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x44915a
mov dword [ebp - 0x2c], 1
movsx edx, byte [eax + 0x4b1c4c]
movsx eax, byte [eax + 0x4b1c40]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x40a4eb
mov dword [ebp - 0x20], bind
jmp 0x40a4eb
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 0x4491b1
mov dword [ebp - 0x20], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x40a4eb
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 0x40a528
cmp edi, 0x6e
je case.0x40a286.157
jmp 0x40a552
cmp edx, 1
jl 0x40a55d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x449220
cmp edi, 0x6e
je case.0x40a286.157
jmp 0x449241
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.0x40a286.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 0x4491fb
jmp 0x40a560
cmp dword [ebp - 0x10], 0
jne 0x44d7d8
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0x4493a1
cmp edx, dword [ebp - 0x20]
jl 0x449277
jmp 0x449327
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x449302
movzx edx, word [eax]
mov ecx, 1
mov eax, edx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4492be
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 0x4492cd
cmp edi, 0x6e
jne 0x4492e7
jmp 0x449327
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 0x449327
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 0x449274
jmp 0x449327
cmp dword [esi + 0x8c], 0
je 0x449327
cmp eax, dword [esi + 0x88]
jbe 0x449327
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
cmp dword [ebp - 0x2c], 0
jne 0x40a569
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x14]
jbe case.0x40a286.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44937d
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.0040a200
add esp, 0x14
test eax, eax
je 0x449357
jmp 0x40a3cb
cmp edx, dword [ebp - 0x20]
jge 0x449416
mov ecx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0x4493ee
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x4493c0
cmp edi, 0x6e
jne 0x4493dd
jmp 0x449413
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 0x449413
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 0x4493a9
jmp 0x449413
cmp dword [esi + 0x8c], 0
je 0x449413
cmp eax, dword [esi + 0x88]
jbe 0x449413
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, ecx
jb case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
sub edi, 2
cmp edi, dword [ebp - 0x14]
jae 0x44942b
jmp case.0x40a286.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.0x449484
movzx eax, byte [eax + 0x44f3a4]
jmp dword [eax*4 + 0x44f39c]
lea eax, [edi - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x4494a3
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x4494aa
mov dword [ebp - 0x2c], 1
movsx ecx, byte [eax + 0x4b1c40]
movsx edi, byte [eax + 0x4b1c4c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x449517
mov ecx, bind
jmp 0x449514
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 0x4494ff
mov ecx, bind
mov dword [ebp - 0x20], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x449517
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 0x449595
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], eax
test edx, edx
je 0x44956d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44956d
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 fcn.0049b31a
add esp, 4
test eax, eax
je case.0x40a286.157
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jle 0x449523
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp edi, ecx
je 0x40a25d
test eax, eax
jne 0x44d92d
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0x4495b7
jmp 0x44964e
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x449629
mov edx, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
test edx, edx
je 0x4495ff
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4495ff
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 fcn.0049b31a
add esp, 4
test eax, eax
je 0x449651
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 0x4495b4
jmp 0x44964e
cmp dword [esi + 0x8c], 0
je 0x44964e
cmp eax, dword [esi + 0x88]
jbe 0x44964e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x38]
jbe case.0x40a286.157
cmp dword [ebp - 0x28], 0
je 0x4496aa
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4496aa
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.0040a200
add esp, 0x14
test eax, eax
je 0x44967e
jmp 0x40a3cb
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0x40a757
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x44d9fe
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x40a286.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40a569
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 0x40a5c6
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449771
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 0x40a25d
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4bff60]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
mov eax, dword [eax*8 + 0x4af414]
add eax, edx
cmp edi, eax
jne case.0x40a286.157
jmp 0x40a569
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x4497d6
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x4497d8
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x4497ef
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x40a286.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x40a569
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 0x4498ca
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 0x44983e
mov dword [ebp - 0x10], edx
cmp ecx, 0x35
jne 0x449845
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x4498ca
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x4498c3
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x4498c3
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 0x4498ca
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 + 0x4b1c4c]
movsx eax, byte [eax + 0x4b1c40]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x4498ca
mov dword [ebp - 0x18], bind
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
je 0x449b56
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 0x44993d
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 0x449940
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 0x449b5c
cmp edi, 0x2e
jb 0x449993
mov edi, dword [ebp - 0x24]
shr eax, 7
movzx ecx, byte [eax + 0x4bff60]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
mov ecx, dword [eax*8 + 0x4af414]
add ecx, edi
cmp ecx, edi
je 0x449993
lea edx, [ebp - 0x6c]
call fcn.0049b7a5
mov edx, dword [ebp - 0x14]
mov edi, eax
jmp 0x449995
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 1
cmp edx, 1
jl 0x449a2c
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 0x4499da
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00421444
add esp, 0xc
test eax, eax
jne 0x4499da
mov ecx, dword [ebp - 0x1c]
mov eax, edi
add eax, ecx
mov dword [ebp - 8], eax
jmp 0x449a19
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44d6e1
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44d6e1
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00421444
add esp, 0xc
test eax, eax
jne 0x44d6e1
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 0x4499b1
mov edi, dword [ebp - 0x20]
jmp 0x449a2f
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x40a569
cmp dword [ebp - 0x10], 0
jne 0x44da2e
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x18]
jge 0x449af2
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 0x449a87
push edx
push dword [ebp - 0x34]
push ecx
call fcn.00421444
add esp, 0xc
test eax, eax
jne 0x449a84
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x449aae
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x449abf
mov eax, dword [esi + 0x7c]
add edi, edi
sub eax, edi
cmp ecx, eax
ja 0x449abf
push edi
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00421444
add esp, 0xc
test eax, eax
jne 0x449abf
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 0x449a59
jmp 0x449aec
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x449aef
cmp eax, dword [esi + 0x7c]
jb 0x449aec
cmp eax, dword [esi + 0x88]
jbe 0x449aec
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, ecx
jbe 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
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 0x449b4c
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x449b07
jmp 0x40a382
lea ebx, [ecx + 2]
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x449c9a
cmp dword [ebp - 0x28], 0
je 0x449b9c
cmp eax, 0x7f
jbe 0x449b9c
shr eax, 7
movzx ecx, byte [eax + 0x4bff60]
mov eax, dword [ebp - 0x24]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
mov eax, dword [eax*8 + 0x4af414]
add dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
jmp 0x449bb5
cmp eax, 0xff
ja 0x449baf
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [eax + ecx]
jmp 0x449bb2
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp edx, 1
jl 0x449bee
cmp eax, dword [esi + 0x7c]
jae 0x44dcd9
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x449bdd
cmp edi, ecx
jne case.0x40a286.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 0x449bc4
cmp edx, dword [ebp - 0x18]
je 0x40a569
cmp dword [ebp - 0x10], 0
jne 0x44dae7
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp edx, dword [ebp - 0x18]
jge 0x449c52
cmp eax, dword [esi + 0x7c]
jae 0x449c2a
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x449c1c
cmp edi, ecx
jne 0x449c4f
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x449c0b
jmp 0x449c4f
cmp dword [esi + 0x8c], 0
je 0x449c4f
cmp eax, dword [esi + 0x88]
jbe 0x449c4f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, ecx
je 0x40a382
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.0040a200
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x40a3cb
cmp edi, dword [ebp - 0x14]
jne 0x449c67
jmp 0x40a382
mov ecx, 1
cmp edx, ecx
jge 0x449ca8
mov edi, dword [ebp - 8]
jmp 0x449cce
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dcd9
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], eax
jne case.0x40a286.157
inc ecx
cmp ecx, edx
jle 0x449ca8
cmp edx, dword [ebp - 0x18]
je 0x40a569
cmp dword [ebp - 0x10], 0
jne 0x44db5e
mov eax, dword [ebp - 8]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp edx, edi
jge 0x449d11
mov ecx, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x449d59
movzx eax, word [eax]
cmp ecx, eax
jne 0x449d0b
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, edi
jl 0x449cf3
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, ecx
je 0x40a382
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.0040a200
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x40a3cb
cmp edi, dword [ebp - 0x14]
jne 0x449d26
jmp 0x40a382
cmp dword [esi + 0x8c], 0
je 0x449d0e
cmp eax, dword [esi + 0x88]
jbe 0x449d0e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
jmp 0x449d0e
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dcd9
cmp dword [ebp - 0x28], 0
movzx ecx, word [ebx + 2]
je 0x449e75
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 0x449dd9
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 0x449e12
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 0x449e25
cmp dword [ebp - 0x24], edx
je case.0x40a286.157
jmp 0x40a569
mov edi, dword [ebp - 0x24]
cmp edi, 0x7f
jbe 0x449e56
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x4bff60]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
mov eax, dword [eax*8 + 0x4af414]
add eax, edi
jmp 0x449e60
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [eax + ecx]
cmp edi, edx
je case.0x40a286.157
cmp eax, edx
je case.0x40a286.157
jmp 0x40a569
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x40a286.157
cmp edi, 0x20
jne 0x449ea2
cmp ecx, 0xff
ja 0x449e9a
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x40a286.157
mov edx, dword [ebp - 8]
jmp 0x40a336
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 0x449f82
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x42
je 0x449ed9
mov dword [ebp - 0x10], edx
cmp ecx, 0x4f
jne 0x449ee0
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x449f82
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x449f7b
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x449f7b
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 0x449f82
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 0x449f82
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 + 0x4b1c4c]
movsx eax, byte [eax + 0x4b1c40]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x449f82
mov dword [ebp - 0x18], bind
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 0x449fca
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449fc7
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 0x449fca
mov eax, dword [ebp - 0x14]
cmp edi, 0x48
jb 0x44a273
cmp dword [ebp - 0x28], 0
je 0x44a009
cmp ecx, 0x7f
jbe 0x44a009
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4bff60]
mov eax, dword [ebp - 0x14]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
mov eax, dword [eax*8 + 0x4af414]
add eax, dword [ebp - 0x14]
jmp 0x44a01b
cmp ecx, 0xff
ja 0x44a01b
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 0x44a092
cmp edx, edi
jl 0x44a0c3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dcd9
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 0x44a079
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.0x40a286.157
cmp dword [ebp - 0x20], ecx
je case.0x40a286.157
inc edi
cmp edi, edx
jle 0x44a031
jmp 0x44a0c6
mov eax, dword [ebp - 8]
cmp edx, 1
jl 0x44a0c6
cmp eax, dword [esi + 0x7c]
jae 0x44dcd9
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je case.0x40a286.157
cmp dword [ebp - 0x20], ecx
je case.0x40a286.157
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, edx
jle 0x44a09a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
je 0x40a569
cmp dword [ebp - 0x10], 0
jne 0x44dbcd
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0x44a1dd
cmp edx, ecx
jge 0x44a14f
cmp eax, dword [esi + 0x7c]
jae 0x44a1b3
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a12c
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x44a131
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x44a149
cmp dword [ebp - 0x20], edi
je 0x44a149
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x44a0ee
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, edi
jbe 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
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 0x44a1a9
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44a164
jmp 0x40a382
cmp dword [esi + 0x8c], 0
je 0x44a14c
cmp eax, dword [esi + 0x88]
jbe 0x44a14c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
jmp 0x44a14c
cmp edx, ecx
jge 0x44a22b
mov edi, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x44a203
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je 0x44a228
cmp edi, ecx
je 0x44a228
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x44a1e4
jmp 0x44a228
cmp dword [esi + 0x8c], 0
je 0x44a228
cmp eax, dword [esi + 0x88]
jbe 0x44a228
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, edi
je 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x44a240
jmp 0x40a382
cmp dword [ebp - 0x28], 0
mov edi, 1
je 0x44a2e5
cmp edx, edi
jge 0x44a28a
mov ecx, dword [ebp - 0x14]
jmp 0x44a30d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dcd9
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 0x44a2d2
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.0x40a286.157
inc edi
cmp edi, edx
jle 0x44a28a
mov ecx, dword [ebp - 0x14]
jmp 0x44a310
mov ecx, dword [ebp - 0x14]
cmp edx, 1
jl 0x44a30d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dcd9
movzx eax, word [eax]
add dword [ebp - 8], 2
cmp ecx, eax
je case.0x40a286.157
inc edi
cmp edi, edx
jle 0x44a2ed
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x40a569
cmp dword [ebp - 0x10], 0
jne 0x44dd0b
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x20], edi
je 0x44a421
cmp edx, dword [ebp - 0x18]
jge 0x44a393
cmp eax, dword [esi + 0x7c]
jae 0x44a3f7
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a375
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x44a37a
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x44a38d
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x44a337
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, edi
jbe 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
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 0x44a3ed
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0x44a3a8
jmp 0x40a382
cmp dword [esi + 0x8c], 0
je 0x44a390
cmp eax, dword [esi + 0x88]
jbe 0x44a390
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
jmp 0x44a390
cmp edx, dword [ebp - 0x18]
jge 0x44a442
cmp eax, dword [esi + 0x7c]
jae 0x44a48a
movzx eax, word [eax]
cmp ecx, eax
je 0x44a43f
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jl 0x44a426
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp eax, edi
je 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0x44a457
jmp 0x40a382
cmp dword [esi + 0x8c], 0
je 0x44a442
cmp eax, dword [esi + 0x88]
jbe 0x44a442
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44a442
jmp 0x44efa0
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 0x40a7d1
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 0x40a7d1
xor ecx, ecx
jmp 0x44a4fc
mov ecx, 1
mov dword [ebp - 0x14], bind
jmp 0x44a50e
xor ecx, ecx
mov dword [ebp - 0x14], 1
add ebx, 2
jmp 0x44a51f
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 0x40a7d1
xor edx, edx
jmp 0x40a7ac
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 0x40a7f2
test eax, eax
js 0x44ac90
cmp eax, 0xa
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f3b0]
cmp dword [ebp - 0x3c], 0
jne case.0x40a286.157
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jge 0x44a598
mov ecx, dword [ebp - 0xc]
jmp 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
je 0x44a5c2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a5c2
add edi, 2
mov dword [ebp - 8], edi
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44a598
mov ecx, dword [ebp - 0xc]
jmp 0x44ae18
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a62b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a62b
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp eax, 9
je 0x44a662
cmp eax, 5
je 0x44a662
cmp eax, 8
je 0x44a662
xor eax, eax
jmp 0x44a667
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a5e3
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a6e2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a6e2
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 + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp dword [eax*4 + 0x4c5370], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a69a
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a790
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a790
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 + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a748
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a837
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a837
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 + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af410]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a7ef
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a8de
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a8de
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x44a917
cmp eax, 3
je 0x44a917
xor eax, eax
jmp 0x44a91c
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a896
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov eax, 1
mov dword [ebp - 0x24], eax
cmp ecx, eax
jl 0x44ae18
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x44a99b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a998
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 0x44a9e1
je 0x44aa56
cmp ecx, 0x85
ja 0x44a9cf
je 0x44aa56
cmp ecx, 9
jb case.0x44a9fd.8203
cmp ecx, 0xd
jbe 0x44aa56
cmp ecx, 0x20
jne case.0x44a9fd.8203
jmp 0x44aa56
cmp ecx, 0xa0
je 0x44aa56
cmp ecx, 0x1680
jne case.0x44a9fd.8203
jmp 0x44aa56
cmp ecx, 0x202f
ja 0x44aa04
je 0x44aa56
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44a9fd.8203
movzx eax, byte [ecx + 0x44f3e4]
jmp dword [eax*4 + 0x44f3dc]
cmp ecx, 0x205f
je 0x44aa56
cmp ecx, 0x3000
je 0x44aa56
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp dword [eax*4 + 0x4c5370], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x24]
jmp 0x44aa60
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne case.0x40a286.157
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, ecx
jle 0x44a94f
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x44aacf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44aacf
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 + 0x4bff60]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x44ab0f
cmp eax, 3
je 0x44ab0f
cmp edx, 0x5f
je 0x44ab0f
xor eax, eax
jmp 0x44ab14
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44aa87
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
je 0x44ab95
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ab95
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 + 0x4b0a90]
lea eax, [eax*4 + 0x4b0a90]
cmp dword [ebp - 0x24], edx
jb 0x44abb8
lea eax, [eax + 4]
cmp ecx, edx
je 0x44abd9
mov edx, dword [eax]
cmp ecx, edx
jae 0x44abab
cmp dword [ebp - 0x3c], 0
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44ab47
jmp 0x44ae15
cmp dword [ebp - 0x3c], 0
jne case.0x40a286.157
jmp 0x44abc2
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x40a800
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44ac40
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ac40
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 0x44ac6b
cmp ecx, 0x40
je 0x44ac6b
cmp ecx, 0x60
je 0x44ac6b
cmp ecx, 0xa0
jb 0x44ac5f
cmp ecx, 0xd7ff
jbe 0x44ac6b
cmp ecx, 0xe000
jae 0x44ac6b
xor eax, eax
jmp 0x44ac70
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44abf8
jmp 0x44ae15
cmp edi, 0x16
jne 0x44ae20
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
cmp ecx, 1
jl 0x40a800
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44b626
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 0x44ad06
mov dword [ebp - 0x24], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ad06
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx ecx, byte [eax*8 + 0x4af412]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44add9
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44ad7d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ad7d
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx ecx, byte [eax*8 + 0x4af412]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c2210], eax
je 0x44adcd
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 0x44ad42
jmp 0x44add0
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 0x44ae02
cmp edx, eax
jb 0x44ae02
cmp edx, dword [esi + 0x88]
jbe 0x44ae02
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44acac
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
jmp 0x40a800
cmp dword [ebp - 0x28], 0
lea eax, [edi - 6]
je 0x44b545
cmp eax, 0xf
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f410]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ae18
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b626
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44ae7a
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0040869b
add esp, 0xc
test eax, eax
jne case.0x40a286.157
jmp 0x44aea6
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44aea6
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44aea6
cmp edx, 1
je case.0x40a286.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a286.157
cmp dword [esi + 0x8c], 0
je 0x44aee0
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44aee0
cmp dword [esi + 0x18], 0
jne 0x44aee0
cmp dword [esi + 0x1c], 2
jne 0x44aee0
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44aee0
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov ecx, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44af08
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x44af08
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 0x44ae4f
jmp 0x44ae12
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44b626
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44af69
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 0x44af69
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x44af33
jmp 0x44ae12
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0x40a286.157
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44ae18
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ae18
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44b626
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 0x44afea
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 0x44b019
je 0x44b004
cmp ecx, 0xa
je 0x44b03a
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40a286.157
jmp 0x44b030
mov eax, dword [esi + 0x7c]
cmp edx, eax
jae 0x44b03d
cmp word [edi], 0xa
jne 0x44b03d
lea edi, [edx + 2]
mov dword [ebp - 8], edi
jmp 0x44b03d
cmp ecx, 0x85
je 0x44b030
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
cmp dword [esi + 0x6c], 0
jne case.0x40a286.157
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44afa8
jmp 0x44ae12
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b0a1
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 0x44b0df
je case.0x40a286.157
cmp ecx, 0xa0
ja 0x44b0d1
je case.0x40a286.157
cmp ecx, 9
je case.0x40a286.157
cmp ecx, 0x20
je case.0x40a286.157
jmp 0x44b11b
cmp ecx, 0x1680
je case.0x40a286.157
jmp 0x44b11b
cmp ecx, 0x205f
ja 0x44b10f
je case.0x40a286.157
cmp ecx, 0x2000
jb 0x44b11b
cmp ecx, 0x200a
jbe case.0x40a286.157
cmp ecx, 0x202f
je case.0x40a286.157
jmp 0x44b11b
cmp ecx, 0x3000
je case.0x40a286.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44b062
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b17b
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 0x44b1ad
je 0x44b1e5
cmp ecx, 0xa0
ja 0x44b19f
je 0x44b1e5
cmp ecx, 9
je 0x44b1e5
cmp ecx, 0x20
jne case.0x40a286.157
jmp 0x44b1e5
cmp ecx, 0x1680
jne case.0x40a286.157
jmp 0x44b1e5
cmp ecx, 0x205f
ja 0x44b1d9
je 0x44b1e5
cmp ecx, 0x2000
jb case.0x40a286.157
cmp ecx, 0x200a
jbe 0x44b1e5
cmp ecx, 0x202f
jne case.0x40a286.157
jmp 0x44b1e5
cmp ecx, 0x3000
jne case.0x40a286.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44b13c
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b245
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 0x44b263
je case.0x40a286.157
cmp ecx, 0xa
jb 0x44b277
cmp ecx, 0xd
jbe case.0x40a286.157
jmp 0x44b277
cmp ecx, 0x2028
jb 0x44b277
cmp ecx, 0x2029
jbe case.0x40a286.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44b206
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b2d3
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 0x44b2eb
je 0x44b2fa
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a286.157
jmp 0x44b2fa
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44b294
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ae18
cmp edi, dword [esi + 0x7c]
jae 0x44b626
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 0x44b35d
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 0x44b372
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b31a
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b395
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ae18
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44b626
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44b409
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a286.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44b431
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44b431
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44b3e6
jmp 0x44ae12
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b451
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ae18
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44b626
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44b4c5
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a286.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44b4ed
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44b4ed
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44b4a2
jmp 0x44ae12
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b50d
jmp 0x44ae15
cmp eax, 0xf
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f450]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ae18
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b626
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44b595
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0040869b
add esp, 0xc
test eax, eax
jne case.0x40a286.157
jmp 0x44b5c1
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44b5c1
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44b5c1
cmp edx, 1
je case.0x40a286.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a286.157
cmp dword [esi + 0x8c], 0
je 0x44b5fb
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44b5fb
cmp dword [esi + 0x18], 0
jne 0x44b5fb
cmp dword [esi + 0x1c], 2
jne 0x44b5fb
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44b5fb
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
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 0x44b568
jmp 0x44ae15
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
jbe 0x44b666
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp edi, dword [esi + 0x88]
jbe case.0x40a286.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40a286.157
jmp 0x44efa0
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x44b626
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44ae18
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b626
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
ja 0x44b6bf
je 0x44b6ad
cmp eax, 0xa
je 0x44b6de
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40a286.157
jmp 0x44b6d4
cmp edi, ecx
jae 0x44b6de
cmp word [edi], 0xa
jne 0x44b6de
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44b6de
cmp eax, 0x85
je 0x44b6d4
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a286.157
cmp dword [esi + 0x6c], 0
jne case.0x40a286.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44b686
jmp 0x44ae12
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a5c8
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44b747
je case.0x40a286.157
cmp eax, 0xa0
ja 0x44b73a
je case.0x40a286.157
cmp eax, 9
je case.0x40a286.157
cmp eax, 0x20
je case.0x40a286.157
jmp 0x44b77e
cmp eax, 0x1680
je case.0x40a286.157
jmp 0x44b77e
cmp eax, 0x205f
ja 0x44b773
je case.0x40a286.157
cmp eax, 0x2000
jb 0x44b77e
cmp eax, 0x200a
jbe case.0x40a286.157
cmp eax, 0x202f
je case.0x40a286.157
jmp 0x44b77e
cmp eax, 0x3000
je case.0x40a286.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b6fa
mov ecx, dword [ebp - 0xc]
jmp 0x44ae18
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a5c8
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44b7e2
je 0x44b815
cmp eax, 0xa0
ja 0x44b7d5
je 0x44b815
cmp eax, 9
je 0x44b815
cmp eax, 0x20
jne case.0x40a286.157
jmp 0x44b815
cmp eax, 0x1680
jne case.0x40a286.157
jmp 0x44b815
cmp eax, 0x205f
ja 0x44b80a
je 0x44b815
cmp eax, 0x2000
jb case.0x40a286.157
cmp eax, 0x200a
jbe 0x44b815
cmp eax, 0x202f
jne case.0x40a286.157
jmp 0x44b815
cmp eax, 0x3000
jne case.0x40a286.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b7a1
mov ecx, dword [ebp - 0xc]
jmp 0x44ae18
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a5c8
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44b863
je case.0x40a286.157
cmp eax, 0xa
jb 0x44b875
cmp eax, 0xd
jbe case.0x40a286.157
jmp 0x44b875
cmp eax, 0x2028
jb 0x44b875
cmp eax, 0x2029
jbe case.0x40a286.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b834
mov ecx, dword [ebp - 0xc]
jmp 0x44ae18
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a5c8
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44b8bd
je 0x44b8cb
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40a286.157
jmp 0x44b8cb
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a286.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b894
mov ecx, dword [ebp - 0xc]
jmp 0x44ae18
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44b914
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b8e9
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a286.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b934
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44b9ab
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b980
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a286.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b9cb
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44ba42
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44ba17
jmp 0x44ae15
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ae15
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a286.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a286.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44ba62
jmp 0x44ae15
mov edx, edi
mov dword [ebp - 0x10], edx
test eax, eax
js 0x44c315
cmp eax, 0xa
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f490]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jge 0x44c2b0
cmp edi, dword [esi + 0x7c]
jae 0x44bb19
cmp dword [ebp - 0x28], 0
mov ecx, 1
je 0x44baf9
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 0x44baf9
mov ecx, 2
cmp dword [ebp - 0x3c], 0
jne 0x44c2b0
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 0x44bac6
jmp 0x44c2b0
cmp dword [esi + 0x8c], 0
je 0x44c2b0
cmp edi, dword [esi + 0x88]
jbe 0x44c2b0
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c2b0
jmp 0x44efa0
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
cmp edi, dword [esi + 0x7c]
jae 0x44bc09
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bba4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bb9f
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bba9
mov edx, dword [ebp - 0x38]
jmp 0x44bba9
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp eax, 9
je 0x44bbe0
cmp eax, 5
je 0x44bbe0
cmp eax, 8
je 0x44bbe0
xor eax, eax
jmp 0x44bbe5
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c2ad
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 0x44bb54
jmp 0x44c2ad
cmp dword [esi + 0x8c], 0
je 0x44c2ad
cmp edi, dword [esi + 0x88]
jbe 0x44c2ad
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c2ad
jmp 0x44efa0
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
cmp edi, dword [esi + 0x7c]
jae 0x44bc09
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bc90
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bc8b
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bc95
mov edx, dword [ebp - 0x38]
jmp 0x44bc95
mov edx, 1
mov esi, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp dword [eax*4 + 0x4c5370], esi
mov esi, dword [ebp + 0x10]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c2ad
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 0x44bc44
jmp 0x44c2ad
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
cmp edi, dword [esi + 0x7c]
jae 0x44bc09
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bd48
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bd43
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bd4d
mov edx, dword [ebp - 0x38]
jmp 0x44bd4d
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c2ad
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 0x44bcf8
jmp 0x44c2ad
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
cmp edi, dword [esi + 0x7c]
jae 0x44bc09
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bdf6
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bdf1
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bdfb
mov edx, dword [ebp - 0x38]
jmp 0x44bdfb
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af410]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c2ad
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 0x44bda6
jmp 0x44c2ad
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
cmp edi, dword [esi + 0x7c]
jae 0x44bc09
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bea4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44be9f
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bea9
mov edx, dword [ebp - 0x38]
jmp 0x44bea9
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x44bee2
cmp eax, 3
je 0x44bee2
xor eax, eax
jmp 0x44bee7
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c2ad
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 0x44be54
jmp 0x44c2ad
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
mov eax, 1
mov dword [ebp - 0x24], eax
cmp edi, dword [esi + 0x7c]
jae 0x44c047
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
je 0x44bf67
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bf64
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 0x44bf67
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x44bfad
je 0x44c022
cmp ecx, 0x85
ja 0x44bf9b
je 0x44c022
cmp ecx, 9
jb case.0x44bfc9.8203
cmp ecx, 0xd
jbe 0x44c022
cmp ecx, 0x20
jne case.0x44bfc9.8203
jmp 0x44c022
cmp ecx, 0xa0
je 0x44c022
cmp ecx, 0x1680
jne case.0x44bfc9.8203
jmp 0x44c022
cmp ecx, 0x202f
ja 0x44bfd0
je 0x44c022
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44bfc9.8203
movzx eax, byte [ecx + 0x44f4c4]
jmp dword [eax*4 + 0x44f4bc]
cmp ecx, 0x205f
je 0x44c022
cmp ecx, 0x3000
je 0x44c022
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp dword [eax*4 + 0x4c5370], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c2ad
mov eax, dword [ebp - 0x24]
jmp 0x44c02c
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne 0x44c2ad
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 0x44bf14
jmp 0x44c2ad
cmp dword [esi + 0x8c], 0
je 0x44c2ad
cmp edi, dword [esi + 0x88]
jbe 0x44c2ad
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x44c2ad
jmp 0x44efa0
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
cmp edi, dword [esi + 0x7c]
jae 0x44bc09
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
mov dword [ebp - 0x1c], 1
je 0x44c0c8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c0c8
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 + 0x4bff60]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x44c108
cmp eax, 3
je 0x44c108
cmp edx, 0x5f
je 0x44c108
xor eax, eax
jmp 0x44c10d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c2ad
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 0x44c07d
jmp 0x44c2ad
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44bc09
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x24], ecx
je 0x44c18e
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c18e
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 + 0x4b0a90]
lea eax, [eax*4 + 0x4b0a90]
cmp dword [ebp - 0x24], edx
jb 0x44c1b1
lea eax, [eax + 4]
cmp ecx, edx
je 0x44c1d9
mov edx, dword [eax]
cmp ecx, edx
jae 0x44c1a4
cmp dword [ebp - 0x3c], 0
je 0x44c2ad
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 0x44c13d
jmp 0x44c2ad
cmp dword [ebp - 0x3c], 0
je 0x44c1bb
jmp 0x44c2ad
cmp ecx, dword [ebp - 0x14]
jge 0x44c2b0
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44c288
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
je 0x44c238
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c238
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 0x44c263
cmp ecx, 0x40
je 0x44c263
cmp ecx, 0x60
je 0x44c263
cmp ecx, 0xa0
jb 0x44c257
cmp ecx, 0xd7ff
jbe 0x44c263
cmp ecx, 0xe000
jae 0x44c263
xor eax, eax
jmp 0x44c268
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c2ad
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 0x44c1ed
jmp 0x44c2ad
cmp dword [esi + 0x8c], 0
je 0x44c2ad
cmp edi, dword [esi + 0x88]
jbe 0x44c2ad
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp edi, edx
jbe 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
je 0x44c30b
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c30b
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44c2c2
jmp 0x40a382
mov eax, dword [ebp - 0x20]
cmp eax, 0x16
jne 0x44c502
cmp ecx, dword [ebp - 0x14]
jge 0x44c4b6
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44c48e
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 0x44c380
mov eax, edx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c380
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx ecx, byte [eax*8 + 0x4af412]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44c453
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44c3f7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c3f7
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx ecx, byte [eax*8 + 0x4af412]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c2210], eax
je 0x44c447
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 0x44c3bc
jmp 0x44c44a
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 0x44c47c
cmp edx, eax
jb 0x44c47c
cmp edx, dword [esi + 0x88]
jbe 0x44c47c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44c32a
jmp 0x44c4b3
cmp dword [esi + 0x8c], 0
je 0x44c4b3
cmp edi, dword [esi + 0x88]
jbe 0x44c4b3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp edi, edx
jbe 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
jne 0x44d3cd
movzx ecx, word [edi]
jmp 0x44d413
add eax, 0xfffffffa
cmp dword [ebp - 0x28], 0
je 0x44cd26
cmp eax, 0xf
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f4f0]
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44c601
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44c558
push dword [ebp - 0x28]
lea ecx, [esi + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.0040869b
add esp, 0xc
test eax, eax
je 0x44c587
jmp 0x44c626
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x24]
lea eax, [ecx + ecx]
sub edx, eax
cmp edi, edx
ja 0x44c587
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c587
cmp ecx, 1
je 0x44c626
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44c626
cmp dword [esi + 0x8c], 0
je 0x44c5c1
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44c5c1
cmp dword [esi + 0x18], 0
jne 0x44c5c1
cmp dword [esi + 0x1c], 2
jne 0x44c5c1
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c5c1
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44c5ef
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0x24]
jne 0x44c5ef
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 0x44c52e
jmp 0x44c626
cmp dword [esi + 0x8c], 0
je 0x44c626
cmp edi, dword [esi + 0x88]
jbe 0x44c626
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp edi, edx
jbe 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
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 0x44c684
add edi, 0xfffffffe
mov dword [ebp - 8], edi
mov ecx, edi
cmp dword [ebp - 0x20], 0x11
mov eax, dword [ebp - 0x10]
jne 0x44c6a4
cmp ecx, eax
jbe 0x44c6a4
cmp word [edi], 0xa
jne 0x44c6a4
cmp word [edi - 2], 0xd
jne 0x44c6a4
lea edi, [ecx - 2]
mov dword [ebp - 8], edi
cmp edi, eax
ja 0x44c63b
jmp 0x40a382
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fffffff
jge 0x44c705
cmp ecx, eax
jge 0x44c629
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44c70b
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44c6f7
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 0x44c6f7
add edi, 2
mov dword [ebp - 8], edi
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44c6c5
jmp 0x44c629
mov edi, dword [esi + 0x7c]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44c629
cmp edi, dword [esi + 0x88]
jbe 0x44c629
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c629
jmp 0x44efa0
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 0x44c785
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44c629
cmp ecx, dword [esi + 0x88]
jbe 0x44c629
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c629
jmp 0x44efa0
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44c629
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44c601
movzx ecx, word [edi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c7dc
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 0x44c7fd
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x44c626
cmp word [edi], 0xa
jne 0x44c83b
add edi, 2
jmp 0x44c838
cmp ecx, 0xa
je 0x44c832
cmp dword [esi + 0x6c], 0
jne 0x44c626
cmp ecx, 0xb
je 0x44c832
cmp ecx, 0xc
je 0x44c832
cmp ecx, 0x85
je 0x44c832
cmp ecx, 0x2028
je 0x44c832
cmp ecx, 0x2029
jne 0x44c626
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 0x44c79f
jmp 0x44c626
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44c923
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c897
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 0x44c8f3
je 0x44c8b5
cmp ecx, 0xa0
ja 0x44c8e9
je 0x44c8b5
cmp ecx, 9
je 0x44c8b5
cmp ecx, 0x20
jne 0x44c91f
mov ecx, 1
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x12
sete al
cmp ecx, eax
je 0x44c626
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 0x44c859
jmp 0x44c626
cmp ecx, 0x1680
jne 0x44c91f
jmp 0x44c8b5
cmp ecx, 0x205f
ja 0x44c917
je 0x44c8b5
cmp ecx, 0x2000
jb 0x44c91f
cmp ecx, 0x200a
jbe 0x44c8b5
cmp ecx, 0x202f
jne 0x44c91f
jmp 0x44c8b5
cmp ecx, 0x3000
je 0x44c8b5
xor ecx, ecx
jmp 0x44c8ba
cmp dword [esi + 0x8c], 0
je 0x44c626
cmp edi, dword [esi + 0x88]
jbe 0x44c626
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jmp 0x44c620
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44c923
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c98d
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 0x44c9ce
je 0x44c9d9
cmp ecx, 0xa
jb 0x44c9a1
cmp ecx, 0xd
jbe 0x44c9d9
xor ecx, ecx
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x14
sete al
cmp ecx, eax
je 0x44c626
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 0x44c953
jmp 0x44c626
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x44c9a1
mov ecx, 1
jmp 0x44c9a3
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
cmp edi, dword [esi + 0x7c]
jae 0x44c601
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44ca32
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 0x44ca37
mov eax, 1
cmp edx, 0x100
jae 0x44ca4f
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44c626
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 0x44c9e9
jmp 0x44c626
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
cmp edi, dword [esi + 0x7c]
jae 0x44c601
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44cab5
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 0x44c626
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44c626
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 0x44ca6f
jmp 0x44c626
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
cmp edi, dword [esi + 0x7c]
jae 0x44c601
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44cb3a
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 0x44cb3f
mov eax, 1
cmp edx, 0x100
jae 0x44cb57
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44c626
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 0x44caf1
jmp 0x44c626
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
cmp edi, dword [esi + 0x7c]
jae 0x44c601
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44cbbd
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 0x44c626
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44c626
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 0x44cb77
jmp 0x44c626
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
cmp edi, dword [esi + 0x7c]
jae 0x44c601
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44cc42
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 0x44cc47
mov eax, 1
cmp edx, 0x100
jae 0x44cc5f
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44c626
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 0x44cbf9
jmp 0x44c626
cmp ecx, dword [ebp - 0x14]
jge 0x44c629
cmp edi, dword [esi + 0x7c]
jae 0x44ccf4
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44ccc1
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 0x44c626
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44c626
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 0x44cc7f
jmp 0x44c626
cmp dword [esi + 0x8c], 0
je 0x44c626
cmp edi, dword [esi + 0x88]
jbe 0x44c626
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
jmp 0x44c626
cmp eax, 0xf
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f530]
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cde5
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44cd6b
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0040869b
add esp, 0xc
test eax, eax
je 0x44cd93
jmp 0x44ce0a
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44cd93
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44cd93
cmp edx, 1
je 0x44ce0a
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44ce0a
cmp dword [esi + 0x8c], 0
je 0x44cdcd
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44cdcd
cmp dword [esi + 0x18], 0
jne 0x44cdcd
cmp dword [esi + 0x1c], 2
jne 0x44cdcd
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44cdcd
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
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 0x44cd3f
jmp 0x44ce0a
cmp dword [esi + 0x8c], 0
je 0x44ce0a
cmp edi, dword [esi + 0x88]
jbe 0x44ce0a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov edx, dword [ebp - 0x10]
jmp 0x44d299
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 0x44ce5a
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44d299
cmp ecx, dword [esi + 0x88]
jbe 0x44d299
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d299
jmp 0x44efa0
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cef1
movzx eax, word [edi]
cmp eax, 0xd
jne 0x44ce96
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44d299
cmp word [edi], 0xa
je 0x44ceda
jmp 0x44cee0
cmp eax, 0xa
je 0x44ceda
cmp dword [esi + 0x6c], 0
jne 0x44d299
cmp eax, 0xb
je 0x44ceda
cmp eax, 0xc
je 0x44ceda
mov dword [ebp - 0x38], 0x85
cmp ax, word [ebp - 0x38]
je 0x44ceda
mov dword [ebp - 0x38], 0x2028
cmp ax, word [ebp - 0x38]
je 0x44ceda
mov dword [ebp - 0x38], 0x2029
cmp ax, word [ebp - 0x38]
jne 0x44d299
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 0x44ce74
jmp 0x44d299
cmp dword [esi + 0x8c], 0
je 0x44d299
cmp edi, dword [esi + 0x88]
jbe 0x44d299
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d299
jmp 0x44efa0
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44cf6d
je 0x44d299
cmp eax, 0xa0
ja 0x44cf61
je 0x44d299
cmp eax, 9
je 0x44d299
cmp eax, 0x20
jne 0x44cfa3
jmp 0x44d299
cmp eax, 0x1680
jne 0x44cfa3
jmp 0x44d299
cmp eax, 0x205f
ja 0x44cf98
je 0x44d299
cmp eax, 0x2000
jb 0x44cfa3
cmp eax, 0x200a
jbe 0x44d299
cmp eax, 0x202f
jne 0x44cfa3
jmp 0x44d299
cmp eax, 0x3000
je 0x44d299
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44cf2c
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44cffa
je 0x44d02c
cmp eax, 0xa0
ja 0x44cfee
je 0x44d02c
cmp eax, 9
je 0x44d02c
cmp eax, 0x20
je 0x44d02c
jmp 0x44d299
cmp eax, 0x1680
je 0x44d02c
jmp 0x44d299
cmp eax, 0x205f
ja 0x44d021
je 0x44d02c
cmp eax, 0x2000
jb 0x44d299
cmp eax, 0x200a
jbe 0x44d02c
cmp eax, 0x202f
je 0x44d02c
jmp 0x44d299
cmp eax, 0x3000
jne 0x44d299
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44cfc1
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44d06e
je 0x44d299
cmp eax, 0xa
jb 0x44d080
cmp eax, 0xd
ja 0x44d080
jmp 0x44d299
cmp eax, 0x2028
jb 0x44d080
cmp eax, 0x2029
jbe 0x44d299
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44d046
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44d0bc
je 0x44d0ca
add eax, 0xfffffff6
cmp eax, 3
jbe 0x44d0ca
jmp 0x44d299
add eax, 0xffffdfd8
cmp eax, 1
ja 0x44d299
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44d09a
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44d10f
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44d299
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 0x44d0e4
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44d299
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44d299
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 0x44d12c
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44d1a0
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44d299
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 0x44d175
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44d299
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44d299
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 0x44d1bd
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44cef1
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44d22d
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44d299
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 0x44d206
jmp 0x44d299
cmp ecx, dword [ebp - 0x14]
jge 0x44d299
cmp edi, dword [esi + 0x7c]
jae 0x44d274
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44d299
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44d299
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 0x44d243
jmp 0x44d299
cmp dword [esi + 0x8c], 0
je 0x44d299
cmp edi, dword [esi + 0x88]
jbe 0x44d299
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
cmp dword [ebp - 0x2c], 0
jne 0x40a569
cmp edi, edx
je 0x40a382
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x10]
add edi, 0xfffffffe
cmp dword [ebp - 0x20], 0x11
mov dword [ebp - 8], edi
jne 0x44d2f4
cmp edi, eax
jbe 0x44d2f6
cmp word [edi], 0xa
jne 0x44d2f4
cmp word [edi - 2], 0xd
jne 0x44d2f4
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, eax
jne 0x44d2ab
jmp 0x40a382
mov edx, dword [ebp - 0x20]
call fcn.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
add ebx, 4
jmp 0x40a37f
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 0x44d385
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov ecx, dword [ebp - 0x20]
mov edx, 0x81
movzx eax, word [ecx]
cmp ax, dx
je 0x44d637
mov edx, 0x88
cmp ax, dx
jb 0x447310
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.0040a200
add esp, 0x14
jmp 0x40a3cb
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.0040a200
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x44d3ac
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0x40a3cb
jmp 0x44d3b7
test eax, eax
jne 0x40a3cb
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x44d63b
add ebx, 4
jmp 0x40a37f
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44d3e8
add edi, 0xfffffffe
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d413
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af412]
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x10]
jbe 0x40a382
cmp dword [ebp - 0x28], 0
lea edx, [edi - 2]
jne 0x44d451
movzx ecx, word [edx]
jmp 0x44d494
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44d469
add edx, 0xfffffffe
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d494
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 + 0x4bff60]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af412]
mov dword [ebp - 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test dword [ecx*4 + 0x4c2210], eax
je 0x44c4c8
mov edi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edi
jmp 0x44d43a
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 + 0x4c2160]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a200
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc20
jne 0x44d57a
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44f023
cmp word [ebx], 0x77
je 0x44d552
cmp word [eax], 0x77
jne 0x44f023
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.0x40a286.157
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp case.0x40a286.129
test eax, eax
je 0x44d552
cmp eax, 0xfffffc1b
jne 0x40a3cb
movzx ecx, word [ebx]
mov edx, 0x81
cmp cx, dx
je 0x44d5b5
cmp ecx, 0x77
jne 0x44d5a9
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44d59b
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 0xb8], ebx
jne 0x40a3cb
jmp case.0x40a286.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4c2160]
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x40a3cb
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x40a3cb
push ecx
call fcn.0040abab
add esp, 4
jmp 0x44f023
mov eax, 0xfffffffa
jmp 0x40a3cb
mov edx, ecx
jmp 0x44d63e
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov edi, dword [ebp - 0x20]
jmp 0x44d687
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x40a3cb
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 0x40a3cb
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 0x40a3c6
cmp eax, 0xfffffffe
jne 0x44d6e1
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jb case.0x40a286.157
jmp 0x44b633
mov dword [ebp - 0x1c], eax
cmp edi, edx
jl 0x44d70a
mov edi, eax
jmp 0x44d76f
mov eax, dword [ebp - 8]
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0049b11f
add esp, 0xc
test eax, eax
js 0x44d734
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 0x44d707
jmp 0x44d764
cmp eax, 0xfffffffe
jne 0x44d761
cmp dword [esi + 0x8c], 0
je 0x44d761
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x44d761
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
cmp edx, edi
jb case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
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 0x44d76f
jmp case.0x40a286.157
cmp ecx, 0xfffffffe
jne 0x44d7b4
mov eax, dword [esi + 0x7c]
jmp 0x44d7b7
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp eax, dword [esi + 0x7c]
jb case.0x40a286.157
cmp eax, dword [esi + 0x88]
jmp 0x44b639
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.0040a200
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44d8ae
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x40a286.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0x44d9fe
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d854
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 0x44d867
cmp edi, 0x6e
je case.0x40a286.157
jmp 0x44d885
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.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44d806
jmp 0x40a3cb
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x40a286.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44da16
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x44d8ea
cmp edi, 0x6e
je case.0x40a286.157
jmp 0x44d905
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.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44d8b6
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x44d99f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d99f
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 fcn.0049b31a
add esp, 4
test eax, eax
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44d953
jmp 0x40a3cb
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp edx, ecx
jb case.0x40a286.157
cmp edx, dword [esi + 0x88]
jmp 0x44b639
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp ecx, dword [esi + 0x88]
jmp 0x44b639
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp eax, dword [esi + 0x88]
jmp 0x44b639
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
jge case.0x40a286.157
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44da85
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00421444
add esp, 0xc
test eax, eax
jne 0x44da85
mov eax, dword [ebp - 0xc]
jmp 0x44dab9
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44d6e1
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44d6e1
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00421444
add esp, 0xc
test eax, eax
jne 0x44d6e1
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.0040a200
add esp, 0x14
test eax, eax
je 0x44da54
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
cmp dword [ebp - 0x20], ecx
je 0x44db33
cmp dword [ebp - 0x24], ecx
jne case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44db0d
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x20], eax
jne case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44db81
jmp 0x40a3cb
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.0040a200
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44dc7c
test eax, eax
jne 0x40a3cb
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dc42
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.0x40a286.157
cmp dword [ebp - 0x20], ecx
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44dbfd
jmp 0x40a3cb
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
cmp dword [ebp - 0x14], ecx
je case.0x40a286.157
cmp dword [ebp - 0x20], ecx
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44dc84
jmp 0x40a3cb
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp eax, dword [esi + 0x88]
jbe case.0x40a286.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40a286.157
jmp 0x44efa0
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.0040a200
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44ddad
test eax, eax
jne 0x40a3cb
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dd7c
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.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44dd37
jmp 0x40a3cb
test eax, eax
jne 0x40a3cb
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x14], eax
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44ddb5
jmp 0x40a3cb
cmp eax, 0xa
ja case.default.0x448c58
jmp dword [eax*4 + 0x44f570]
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x14]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
je 0x44de64
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44de64
add edi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44de34
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44df06
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44df06
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp eax, 9
je 0x44df3d
cmp eax, 5
je 0x44df3d
cmp eax, 8
je 0x44df3d
xor eax, eax
jmp 0x44df42
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44deb9
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44dfe7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dfe7
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 + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp dword [eax*4 + 0x4c5370], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44df99
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e0be
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e0be
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 + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44e071
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e18e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e18e
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 + 0x4bff60]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af410]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44e141
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e25f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e25f
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x44e298
cmp eax, 3
je 0x44e298
xor eax, eax
jmp 0x44e29d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44e211
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44e346
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e343
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 0x44e38c
je 0x44e401
cmp ecx, 0x85
ja 0x44e37a
je 0x44e401
cmp ecx, 9
jb case.0x44e3a8.8203
cmp ecx, 0xd
jbe 0x44e401
cmp ecx, 0x20
jne case.0x44e3a8.8203
jmp 0x44e401
cmp ecx, 0xa0
je 0x44e401
cmp ecx, 0x1680
jne case.0x44e3a8.8203
jmp 0x44e401
cmp ecx, 0x202f
ja 0x44e3af
je 0x44e401
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44e3a8.8203
movzx eax, byte [ecx + 0x44f5a4]
jmp dword [eax*4 + 0x44f59c]
cmp ecx, 0x205f
je 0x44e401
cmp ecx, 0x3000
je 0x44e401
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4bff60]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
cmp dword [eax*4 + 0x4c5370], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a286.157
mov eax, dword [ebp - 0xc]
jmp 0x44e40b
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x3c], 0
jne case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44e2f4
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44e4a7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e4a7
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 + 0x4bff60]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c60]
movzx eax, byte [eax*8 + 0x4af411]
mov eax, dword [eax*4 + 0x4c5370]
cmp eax, 1
je 0x44e4e7
cmp eax, 3
je 0x44e4e7
cmp edx, 0x5f
je 0x44e4e7
xor eax, eax
jmp 0x44e4ec
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44e45a
jmp 0x40a3cb
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x34], ecx
je 0x44e597
mov eax, ecx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e597
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 + 0x4b0a90]
lea eax, [eax*4 + 0x4b0a90]
cmp dword [ebp - 0x34], edx
jb 0x44e5ba
lea eax, [eax + 4]
cmp ecx, edx
je 0x44e5ef
mov edx, dword [eax]
cmp ecx, edx
jae 0x44e5ad
cmp dword [ebp - 0x3c], 0
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44e543
jmp 0x40a3cb
cmp dword [ebp - 0x3c], 0
jne case.0x40a286.157
jmp 0x44e5c4
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.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e66c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e66c
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 0x44e697
cmp ecx, 0x40
je 0x44e697
cmp ecx, 0x60
je 0x44e697
cmp ecx, 0xa0
jb 0x44e68b
cmp ecx, 0xd7ff
jbe 0x44e697
cmp ecx, 0xe000
jae 0x44e697
xor eax, eax
jmp 0x44e69c
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44e61e
jmp 0x40a3cb
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
cmp edi, dword [esi + 0x7c]
jae 0x44b626
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x38], eax
mov edx, edi
je 0x44e72a
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e72a
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx ecx, byte [eax*8 + 0x4af412]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], ecx
cmp edx, eax
jae 0x44e7fc
mov dword [ebp - 0x38], edx
mov ebx, edx
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x34], 1
je 0x44e7a0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e7a0
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 + 0x4bff60]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c60]
movzx ecx, byte [eax*8 + 0x4af412]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c2210], eax
mov esi, dword [ebp + 0x10]
je 0x44e7f6
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 0x44e761
jmp 0x44e7f9
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x44e825
cmp edx, eax
jb 0x44e825
cmp edx, dword [esi + 0x88]
jbe 0x44e825
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
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.0040a200
add esp, 0x14
test eax, eax
je 0x44e6d8
jmp 0x40a3cb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x40a892
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x40a892
cmp edx, 1
je case.0x40a286.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a286.157
jmp 0x40a892
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 0x40a8af
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
cmp esi, 0xf
ja case.default.0x448c58
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
jmp dword [esi*4 + 0x44f5d0]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp ecx, 0xd
ja 0x44e90c
je 0x44e8f1
cmp ecx, 0xa
je case.0x44e8c6.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40a286.157
jmp 0x44e923
cmp edi, dword [esi + 0x7c]
jae case.0x44e8c6.13
cmp word [edi], 0xa
jne case.0x44e8c6.13
lea edi, [eax + 2]
jmp case.0x44e8c6.13
cmp ecx, 0x85
je 0x44e923
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
cmp dword [esi + 0x6c], 0
jne case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x180e
ja 0x44e976
je case.0x40a286.157
cmp ecx, 0xa0
ja 0x44e965
je case.0x40a286.157
cmp ecx, 9
je case.0x40a286.157
cmp ecx, 0x20
je case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x1680
je case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x205f
ja 0x44e9ad
je case.0x40a286.157
cmp ecx, 0x2000
jb case.0x44e8c6.13
cmp ecx, 0x200a
jbe case.0x40a286.157
cmp ecx, 0x202f
je case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x3000
je case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x180e
ja 0x44ea02
je case.0x44e8c6.13
cmp ecx, 0xa0
ja 0x44e9f1
je case.0x44e8c6.13
cmp ecx, 9
je case.0x44e8c6.13
cmp ecx, 0x20
jne case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x1680
jne case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x205f
ja 0x44ea39
je case.0x44e8c6.13
cmp ecx, 0x2000
jb case.0x40a286.157
cmp ecx, 0x200a
jbe case.0x44e8c6.13
cmp ecx, 0x202f
jne case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x3000
jne case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x85
ja 0x44ea6f
je case.0x40a286.157
cmp ecx, 0xa
jb case.0x44e8c6.13
cmp ecx, 0xd
jbe case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x2028
jb case.0x44e8c6.13
cmp ecx, 0x2029
jbe case.0x40a286.157
jmp case.0x44e8c6.13
cmp ecx, 0x85
ja 0x44eaab
je case.0x44e8c6.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a286.157
jmp case.0x44e8c6.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
jmp case.0x44e8c6.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44e8c6.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a286.157
jmp case.0x44e8c6.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a286.157
jmp case.0x44e8c6.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44e8c6.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a286.157
jmp case.0x44e8c6.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a286.157
jmp case.0x44e8c6.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44e8c6.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a286.157
jmp case.0x44e8c6.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a286.157
jmp case.0x44e8c6.13
cmp eax, dword [esi + 0x7c]
jb case.0x44e8c6.13
cmp dword [esi + 0x18], 0
jne case.0x44e8c6.13
cmp dword [esi + 0x1c], 2
jne case.0x44e8c6.13
movzx eax, word [esi + 0x34]
cmp edx, eax
jne case.0x44e8c6.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44efa0
jmp case.0x44e8c6.13
test eax, eax
jne 0x40a3cb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x40a286.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44ef73
cmp dword [ebp - 0x20], 0xc
jne 0x44ec3a
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44ec0e
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0040869b
add esp, 0xc
test eax, eax
jne case.0x40a286.157
jmp 0x44ec3a
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44ec3a
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44ec3a
cmp edx, 1
je case.0x40a286.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40a286.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.0x448c58
jmp dword [eax*4 + 0x44f610]
cmp dword [esi + 0x8c], 0
je case.0x44ec56.13
cmp edi, dword [esi + 0x7c]
jb case.0x44ec56.13
cmp dword [esi + 0x18], 0
jne case.0x44ec56.13
cmp dword [esi + 0x1c], 2
jne case.0x44ec56.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44ec56.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x44ec56.13
jmp 0x44efa0
cmp ecx, 0xd
ja 0x44ece5
je 0x44ecca
cmp ecx, 0xa
je case.0x44ec56.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40a286.157
jmp 0x44ecfc
cmp edi, dword [esi + 0x7c]
jae case.0x44ec56.13
cmp word [edi], 0xa
jne case.0x44ec56.13
add edi, 2
jmp case.0x44ec56.13
cmp ecx, 0x85
je 0x44ecfc
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
cmp dword [esi + 0x6c], 0
jne case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x180e
ja 0x44ed4f
je case.0x40a286.157
cmp ecx, 0xa0
ja 0x44ed3e
je case.0x40a286.157
cmp ecx, 9
je case.0x40a286.157
cmp ecx, 0x20
je case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x1680
je case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x205f
ja 0x44ed86
je case.0x40a286.157
cmp ecx, 0x2000
jb case.0x44ec56.13
cmp ecx, 0x200a
jbe case.0x40a286.157
cmp ecx, 0x202f
je case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x3000
je case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x180e
ja 0x44eddb
je case.0x44ec56.13
cmp ecx, 0xa0
ja 0x44edca
je case.0x44ec56.13
cmp ecx, 9
je case.0x44ec56.13
cmp ecx, 0x20
jne case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x1680
jne case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x205f
ja 0x44ee12
je case.0x44ec56.13
cmp ecx, 0x2000
jb case.0x40a286.157
cmp ecx, 0x200a
jbe case.0x44ec56.13
cmp ecx, 0x202f
jne case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x3000
jne case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x85
ja 0x44ee48
je case.0x40a286.157
cmp ecx, 0xa
jb case.0x44ec56.13
cmp ecx, 0xd
jbe case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x2028
jb case.0x44ec56.13
cmp ecx, 0x2029
jbe case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0x85
ja 0x44ee84
je case.0x44ec56.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a286.157
jmp case.0x44ec56.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a286.157
jmp case.0x44ec56.13
cmp ecx, 0xff
ja case.0x44ec56.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40a286.157
jmp case.0x44ec56.13
mov eax, 0xff
cmp word [ebp - 0x38], ax
ja case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40a286.157
jmp case.0x44ec56.13
mov eax, 0xff
cmp dx, ax
ja case.0x44ec56.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40a286.157
jmp case.0x44ec56.13
mov eax, 0xff
cmp dx, ax
ja case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40a286.157
jmp case.0x44ec56.13
mov eax, 0xff
cmp dx, ax
ja case.0x44ec56.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a286.157
jmp case.0x44ec56.13
mov eax, 0xff
cmp dx, ax
ja case.0x40a286.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a286.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.0040a200
add esp, 0x14
test eax, eax
je 0x44ebcf
jmp 0x40a3cb
mov eax, 0xfffffff2
jmp 0x40a3cb
cmp dword [esi + 0x8c], 0
je case.0x40a286.157
cmp edi, dword [esi + 0x88]
jbe case.0x40a286.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40a286.157
mov eax, 0xfffffff4
jmp 0x40a3cb
mov dword [esi + 0x9c], 2
jmp 0x40a95c
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44f023
cmp word [ebx], 0x77
je 0x44efd4
cmp word [eax], 0x77
jne 0x44f023
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 0x40a950
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 0x40a3cb
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 + 0x4c2160]
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.0040a200
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x44f07c
cmp eax, 0xfffffc19
jne 0x44f090
cmp dword [esi + 0xb0], 0
jne 0x44f090
mov dword [esi + 0xb0], edi
jmp 0x40a3cb
cmp eax, 0xfffffc1f
jne 0x40a3cb
mov edx, dword [esi + 0x80]
mov ecx, edi
call fcn.0049b74a
test eax, eax
jne 0x44f023
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x40a3cb
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 + 0x4c2160]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov eax, 0xfffffc1c
jmp 0x40a3cb
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 + 0x4c2160]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a200
add esp, 0x14
test eax, eax
je 0x44f18c
jmp 0x40a3cb
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 + 0x4c2160]
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.0040a200
add esp, 0x14
cmp eax, 1
je 0x44f175
cmp eax, 0xfffffc19
jne 0x44f184
cmp dword [esi + 0xb0], 0
jne 0x44f184
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x40a3cb
mov eax, 0xfffffc1d
jmp 0x40a3cb
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4c2160]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0040a200
add esp, 0x14
test eax, eax
jne 0x40a3cb
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x40a3cb
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 + 0x4c2160]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040a200
add esp, 0x14
test eax, eax
je 0x44f26a
jmp 0x40a3cb
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 + 0x4c2160]
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.0040a200
add esp, 0x14
cmp eax, 1
je 0x44f253
cmp eax, 0xfffffc19
jne 0x44f262
cmp dword [esi + 0xb0], 0
jne 0x44f262
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x40a3cb
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x40a3cb
cmp edi, 0x9f
je 0x40a3a9
cmp dword [esi + 0xa8], 0
jne 0x40a3a9
cmp dword [esi + 0x60], 0
jne case.0x40a286.157
cmp dword [esi + 0x64], 0
je 0x40a3a9
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x40a286.157
jmp 0x40a3a9
mov eax, 0xfffffc19
jmp 0x40a3cb
mov eax, 0xfffffffb
jmp 0x40a3cb
mov eax, 0xffffffeb
jmp 0x40a3cb
inc eax
mov dword [esi], eax
mov eax, 0xfffffff8
jmp 0x40a3cb