Function at 0x4092a0
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 0x4470e5
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 0x44f22f
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x44f225
cmp dword [esi + 0x9c], 2
je 0x447119
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.0x409326.98
movzx eax, byte [edi + 0x409ba0]
jmp dword [eax*4 + 0x409a54]
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 0x447e74
mov eax, 0x81
cmp cx, ax
je 0x447e74
mov dword [ebp - 0x2c], 0
cmp ecx, 0x7d
jb 0x409373
mov eax, 0x80
cmp cx, ax
jbe 0x44d60a
mov eax, 0x82
cmp cx, ax
je 0x44d60a
mov eax, 0x85
cmp cx, ax
je 0x409736
mov eax, 0x8a
cmp cx, ax
je 0x409736
mov eax, 0x86
cmp cx, ax
je 0x409736
mov eax, 0x8b
cmp cx, ax
je 0x409736
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x447eec
mov eax, 0x81
cmp word [edi], ax
je 0x44d5b5
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4092fd
cmp edi, 0x88
jae 0x44d433
cmp edi, 0x81
je 0x44d433
cmp dword [esi + 0x70], 0
jne 0x44d43d
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x44d43d
movzx eax, word [ebx]
movzx eax, byte [eax + 0x4c3120]
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 0x4092e1
jmp 0x44f22f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x44f1cb
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x44f211
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 0x44d967
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov edi, eax
je 0x4094a8
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448dae
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d2]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x409546
mov esi, dword [ebp - 8]
mov ebx, edi
jmp 0x4094e0
cmp dword [ebp - 0x28], 0
mov edx, 1
movzx ecx, word [esi]
je 0x409500
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448dda
mov esi, dword [ebp - 0x34]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edi, ebx
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx ecx, byte [eax*8 + 0x4b03d2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c31d0], eax
mov eax, dword [ebp - 0x24]
jne 0x409611
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
jne 0x448dfe
mov edx, dword [ebp - 8]
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x4092fd
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 0x449072
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 0x449140
cmp edx, ecx
jl 0x4095fd
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44910d
cmp edx, 0xff
ja 0x449132
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.0x409326.157
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x4095a1
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x20]
jne 0x4491a2
mov edx, dword [ebp - 8]
jmp 0x4092fd
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 0x4094e0
jmp 0x409540
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
cmp dword [ebp - 0x28], 0
je 0x44970d
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 0x44965e
mov eax, dword [ebp - 8]
cmp edx, 0x80
jae 0x449689
movzx edx, word [eax]
mov eax, dword [esi + 0x3c]
cmp edx, 0xff
ja 0x409687
movzx edx, byte [eax + edx]
movzx eax, byte [eax + ecx]
cmp eax, edx
jne case.0x409326.157
add ebx, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x4092fd
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
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 0x4096da
mov eax, edx
mov dword [ebp - 0x20], ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448b76
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f20]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x4b2c20]
cmp eax, 9
jne 0x448ba0
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x4b1a50]
lea eax, [eax*4 + 0x4b1a50]
cmp dword [ebp - 0x20], ecx
jb 0x448da0
lea eax, [eax + 4]
cmp edx, ecx
je 0x4097b1
mov ecx, dword [eax]
cmp edx, ecx
jae 0x409720
jmp 0x448da0
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 0x447e8c
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, dword [ebp - 0x24]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jge 0x447eb8
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jg 0x447ecb
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 0x4097a9
lea ecx, [edi + 2]
mov dword [ebp + 0xc], ecx
mov edi, dword [ebp - 0x20]
jmp 0x4093bc
cmp edi, 0x10
jne case.0x409326.157
add ebx, 6
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x4092fd
cmp dword [ebp - 0x28], 0
je 0x44962c
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 0x44961f
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 0x44d92f
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.0x409326.157
test edi, edi
jle 0x409609
jmp 0x409810
lea ecx, [edi - 0x55]
add ebx, 2
mov eax, ebx
test cl, 1
je 0x44a484
mov edx, 1
movsx edi, byte [ecx + 0x4b2c0c]
mov dword [ebp - 0xc], edi
movsx edi, byte [ecx + 0x4b2c00]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x409871
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 0x44a48b
cmp edi, 0xf
je 0x44a48b
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
test ecx, ecx
jg 0x44a4b2
mov edi, dword [ebp - 8]
cmp ecx, dword [ebp - 0x14]
je 0x409609
test edx, edx
je 0x44b9ef
test eax, eax
jns 0x44dd52
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.004092a0
add esp, 0x14
cmp dword [ebp - 0x20], 0x16
je 0x44e621
cmp dword [ebp - 0x28], 0
je 0x44eb18
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b577
cmp dword [ebp - 0x20], 0xc
jne 0x409932
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44e7a1
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.004075fb
add esp, 0xc
test eax, eax
jne case.0x409326.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 0x44e7da
cmp dword [ebp - 0x20], 0xc
jne 0x44e802
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [esi + 0x8c], 0
jne 0x44ead6
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
jmp 0x4098f0
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.0x409326.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 0x44eefb
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 + 0x4c3120]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.004092a0
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1b
je 0x44ef4f
cmp eax, 0xfffffc20
je 0x44ef0a
test eax, eax
jne 0x40946b
jmp 0x44ef2c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
jne 0x447107
push 1
push 0
push 0
push 0
push 0
xor edx, edx
lea ecx, [ebp + 0x18]
call fcn.004092a0
add esp, 0x14
jmp 0x40946b
lea eax, [ebp + 0x18]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
neg eax
jmp 0x40946b
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 0x409609
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x44d517
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x4c3120]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x4092fd
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.004092a0
add esp, 0x14
cmp eax, 1
je 0x4471e1
cmp eax, 0xfffffc20
jne 0x4471c1
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x40946b
cmp word [ebx], 0x77
je 0x4471c9
cmp word [ecx], 0x77
jne 0x40946b
jmp 0x4471c9
test eax, eax
jne 0x40946b
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x447173
mov ecx, dword [ebp + 8]
jmp 0x4471ea
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x447200
cmp eax, 0x77
jne case.0x409326.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447200
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 0x447da4
cmp eax, dword [ebp - 0x1c]
je 0x447da4
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 0x44d24e
lea edx, [ebx + 4]
call fcn.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov ecx, dword [ebp - 0x20]
mov ebx, ecx
jmp 0x40941f
mov dword [ebp - 0x24], 0
jmp 0x447c58
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 0x4472a7
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 + 0x4c3120]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.004092a0
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x447d47
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 0x447d96
mov dword [ebp - 8], eax
jmp 0x447295
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 0x447403
cmp dword [0x4d363c], 0
je 0x4473f5
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 0x4473bc
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 [0x4d363c]
add esp, 4
test eax, eax
jg case.0x409326.157
js 0x40946b
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.0x447426.146
movzx eax, byte [eax + 0x44f255]
jmp dword [eax*4 + 0x44f23d]
mov ecx, dword [esi + 0xa8]
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
je 0x447637
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x447452
cmp eax, dword [ecx + 4]
jne 0x447637
mov ecx, 1
jmp 0x44760e
cmp dword [esi + 0xa8], ecx
je case.0x447426.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 0x44762f
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 0x4474ff
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 0x447490
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 0x4474c8
cmp word [ebx - 4], 0x77
jne 0x4092fd
cmp edi, 0x8c
jne 0x409425
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.004092a0
add esp, 0x14
jmp 0x40946b
mov ebx, dword [ebp - 0x2c]
mov ecx, 1
jmp 0x44760e
mov ebx, dword [ebp - 0x2c]
movzx eax, word [ebx + 2]
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x44752b
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x44752b
mov ecx, 1
jmp 0x44752d
xor ecx, ecx
test ecx, ecx
jne 0x44760e
jmp 0x4474b0
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 0x44762f
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec ebx
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x44756f
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x4474ff
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 0x44755a
jmp 0x4474ab
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.004092a0
add esp, 0x14
cmp eax, 1
jne 0x44761d
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x4475bf
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x92
mov dword [ebp - 0x20], 1
cmp word [eax], cx
jne 0x4475d8
lea eax, [ebx + 2]
mov ebx, eax
movzx eax, word [eax + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x4475f4
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x4475e6
mov eax, dword [ebp - 0x30]
mov ecx, 2
movzx eax, byte [eax + 0x4c3120]
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 + 0x4c3120]
jmp 0x4474b3
test eax, eax
je 0x44762c
cmp eax, 0xfffffc20
jne 0x40946b
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp case.0x447426.145
mov ecx, dword [ebp - 0x20]
jmp 0x4474b0
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 0x447674
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x4093d6
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 0x449df3
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x4476bb
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 0x449df3
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
jne 0x4476e9
mov dword [esi + 0x9c], 0
mov edi, 1
jmp 0x4476eb
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.004092a0
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x447762
cmp eax, 0xfffffc19
je 0x447762
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], ecx
cmp eax, 0xfffffc20
jne 0x44774a
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ef74
cmp word [ebx], 0x77
je 0x447752
cmp word [eax], 0x77
je 0x447752
jmp 0x44ef74
test eax, eax
jne 0x40946b
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4476eb
jmp 0x44776b
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x409326.157
test edi, edi
jne 0x409466
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44777d
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x409609
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x4477c1
mov dword [esi + 0x9c], 0
mov dword [ebp - 0x34], 1
jmp 0x4477c8
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.004092a0
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xb0], edi
cmp eax, 0xfffffc20
jg 0x447821
jne 0x447836
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44784f
cmp word [ebx], 0x77
je 0x447811
cmp word [eax], 0x77
jne 0x44784f
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4477c8
jmp 0x44785d
mov ecx, eax
sub ecx, 0
je 0x447811
sub ecx, 1
je case.0x409326.157
jmp 0x40946b
cmp eax, 0xfffffc19
je case.0x409326.157
add eax, 0x3e4
cmp eax, 3
ja 0x44ef74
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44784f
cmp dword [ebp - 0x34], 0
jne 0x409466
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x409609
cmp dword [ebp - 0x28], 0
je 0x4478b7
movzx ecx, word [ebx + 2]
test ecx, ecx
je 0x4478d1
mov eax, dword [ebp - 8]
dec ecx
add eax, 0xfffffffe
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x409326.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x4478b1
add eax, 0xfffffffe
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x447880
jmp 0x4478d4
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.0x409326.157
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x4093d6
mov dword [esi + 0x88], eax
jmp 0x4093d6
cmp dword [0x4d363c], 0
je 0x4479c3
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 0x44798a
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 [0x4d363c]
add esp, 4
test eax, eax
jg case.0x409326.157
js 0x40946b
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x4092fd
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jne 0x4479e3
xor edx, edx
jmp 0x4479e7
movzx edx, word [eax + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x447a0e
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x447a08
cmp eax, dword [ecx + 0x14]
jne 0x447a08
mov eax, 0xffffffe6
jmp 0x40946b
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4479f4
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 0x447a4e
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x447a6c
lea eax, [ecx*4]
push eax
call fcn.00409c42
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x44d57e
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00421170
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov eax, 0x88
cmp word [ecx], ax
sbb edi, edi
inc edi
test edi, edi
je 0x447a98
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 + 0x4c3120]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 8]
call fcn.004092a0
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.00421170
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 0x447b57
cmp eax, 0xfffffc19
je 0x447b57
cmp eax, 0xfffffc1c
jl 0x447b06
cmp eax, 0xfffffc20
jle 0x447b38
test eax, eax
jne 0x44d55f
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 0x447a8a
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x409326.157
push eax
call fcn.00409c4b
add esp, 4
jmp case.0x409326.157
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x447b6d
push eax
call fcn.00409c4b
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x409609
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x409326.119
mov dword [ebp - 0x30], ebx
jmp 0x4092fd
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447bc1
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x409609
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 0x447be2
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
jmp 0x409609
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447c1d
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4092fd
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x24], 1
cmp edi, 0x86
je 0x447c58
cmp edi, 0x8b
jne 0x44727b
movzx edx, word [ebx + 4]
mov dword [ebp - 0x20], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x44727b
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 0x447ccf
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 + 0x4c3120]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.004092a0
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x447dca
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 0x447e49
mov dword [ebp - 8], eax
jmp 0x447caa
cmp eax, 0xfffffc20
jne 0x447d72
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ef74
cmp word [ebx], 0x77
je 0x447d7a
cmp word [eax], 0x77
je 0x447d7a
jmp 0x44ef74
test eax, eax
jne 0x40946b
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x447daf
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
jmp 0x447295
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447d96
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x409609
cmp dword [ebp - 0x34], 0
jne 0x447da4
cmp dword [ebp - 0x24], 0
je case.0x409326.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x409609
cmp eax, 0xfffffc20
jne 0x447df5
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ef74
cmp word [ebx], 0x77
je 0x447dfd
cmp word [eax], 0x77
je 0x447dfd
jmp 0x44ef74
test eax, eax
jne 0x40946b
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 0x447ca7
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x447e57
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 0x447e57
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447e49
cmp dword [ebp - 0x24], 0
jne 0x447da4
test ecx, ecx
je case.0x409326.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x409609
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 0x409360
mov edx, dword [ebp - 0x24]
mov ecx, edi
cmp dword [eax + 4], edx
mov edx, dword [ebp - 8]
jne 0x409753
mov eax, edx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x40946b
mov edi, dword [ebp - 0x20]
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x4093b9
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x447ee4
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 0x40977b
cmp eax, 0x7b
je 0x44d5e8
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 8], eax
jne 0x44d269
mov edx, dword [ebp - 8]
jmp 0x4093c8
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x447f20
cmp eax, dword [esi + 0x78]
je case.0x409326.157
jmp 0x447f20
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x78]
jne case.0x409326.157
jmp 0x409553
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x447f40
cmp eax, dword [esi + 0x78]
je case.0x409326.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x409553
cmp eax, dword [esi + 0x7c]
je case.0x409326.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x447f84
cmp eax, ecx
jbe case.0x409326.157
mov edi, dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push edi
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0049c146
add esp, 0xc
test eax, eax
je case.0x409326.157
jmp 0x409553
mov edi, dword [esi + 0x1c]
lea edx, [edi + edi]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jb case.0x409326.157
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x409326.157
cmp edi, 1
je 0x409553
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x409326.157
jmp 0x409553
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x409326.157
jmp 0x409556
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x409609
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x448095
mov edx, dword [esi + 0x18]
test edx, edx
je 0x448062
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.004075fb
add esp, 0xc
test eax, eax
jne 0x409553
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x409326.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x409326.157
cmp dword [esi + 0x18], 0
jne case.0x409326.157
cmp dword [esi + 0x1c], 2
jne case.0x409326.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x409326.157
jmp 0x44b590
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x448020
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44801d
cmp edx, 1
je 0x409553
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44801d
jmp 0x409553
cmp dword [esi + 0x4c], 0
jne case.0x409326.157
cmp dword [esi + 0x8c], 0
je 0x409553
cmp eax, dword [esi + 0x88]
jmp 0x4480ba
cmp edx, dword [esi + 0x88]
jbe 0x409553
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
jmp 0x409553
cmp dword [esi + 0x4c], 0
jne case.0x409326.157
cmp dword [esi + 0x5c], 0
je case.0x409326.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x409326.157
jmp 0x44809f
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x44809f
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x448123
push dword [ebp - 0x28]
push edi
push ecx
mov ecx, eax
call fcn.004075fb
add esp, 0xc
test eax, eax
jne 0x448158
jmp 0x44801d
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x448020
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44801d
cmp edx, 1
je 0x448158
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44801d
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 0x448020
jmp 0x44809f
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
je 0x4482e7
cmp eax, dword [esi + 0x78]
je 0x44824c
lea edx, [eax - 2]
mov edi, 0xfc00
mov ax, word [edx]
mov ecx, edx
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4481a7
lea ecx, [edx - 2]
mov edx, ecx
cmp ecx, dword [esi + 0x88]
jae 0x4481b5
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
mov edi, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4481e4
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 0x44822e
cmp edi, 0x5f
je 0x448224
mov eax, edi
and edi, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x448224
cmp eax, 3
jne 0x448249
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x44824e
cmp edi, 0x100
jae 0x448249
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x44824c
mov edi, 1
jmp 0x44824e
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x448409
movzx ecx, word [eax]
mov eax, ecx
mov edx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448289
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 0x4482b1
cmp edx, 0x5f
je 0x44845b
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, edx
jmp 0x4483a6
cmp edx, 0x100
jae 0x4482c6
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44845b
xor ecx, ecx
movzx eax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 5
jne 0x448465
cmp ecx, edi
je case.0x409326.157
jmp 0x409609
cmp eax, dword [esi + 0x78]
je 0x448360
cmp eax, dword [esi + 0x88]
ja 0x448300
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x4483e1
cmp ecx, 0x5f
je 0x4483da
mov eax, ecx
test eax, eax
jns 0x448320
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
and ecx, 0x8000007f
jns 0x44833a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x4483d7
cmp eax, 3
mov eax, dword [ebp - 8]
je 0x4483da
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x448409
cmp dword [esi + 0x58], 0
je 0x44843b
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x44845b
mov eax, ecx
test eax, eax
jns 0x44838a
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
and ecx, 0x8000007f
jns 0x4483a4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x44845b
cmp eax, 3
jne 0x4482c6
lea ecx, [eax - 2]
jmp 0x4482c8
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x448362
mov edx, 0xff
cmp cx, dx
ja 0x448360
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x448360
mov edi, 1
jmp 0x448362
cmp dword [esi + 0x8c], 0
je 0x4482c6
cmp eax, dword [esi + 0x88]
jbe 0x4482c6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x4482c6
jmp 0x44eef1
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x4482c6
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x4482c6
mov ecx, 1
jmp 0x4482c8
cmp ecx, edi
jne case.0x409326.157
jmp 0x409609
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x4484a1
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
cmp eax, ecx
jae 0x4484d9
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.004075fb
add esp, 0xc
test eax, eax
jne case.0x409326.157
jmp 0x4484d6
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x4484d3
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x4484d3
cmp edx, 1
je case.0x409326.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x409326.157
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x44851f
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, 2
cmp ecx, eax
jne 0x44851c
cmp dword [esi + 0x18], 0
jne 0x44851c
cmp dword [esi + 0x1c], 2
jne 0x44851c
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne 0x44851c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44851c
jmp 0x44eef1
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x44d967
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x409553
cmp eax, ecx
jae 0x409553
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x409553
add dword [ebp - 8], 2
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
add eax, 2
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x409609
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4485cc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4485cc
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 0x409553
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x448637
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448637
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.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4486a2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4486a2
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 0x409553
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x44870d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44870d
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.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x448778
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448778
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 0x409553
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x4487e3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4487e3
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.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x409326.157
jmp 0x409553
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, eax
mov dword [ebp - 8], eax
je 0x448853
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, edx
jne 0x448853
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 0x44889f
je 0x448874
cmp ecx, 0xa
je 0x409553
jbe case.0x409326.157
cmp ecx, 0xc
ja case.0x409326.157
jmp 0x4488b6
cmp edx, edi
jb 0x44888a
cmp dword [esi + 0x8c], 0
je 0x409553
jmp 0x4480b4
cmp word [eax], 0xa
jne 0x409553
lea eax, [edx + 2]
mov dword [ebp - 8], eax
jmp 0x409553
cmp ecx, 0x85
je 0x4488b6
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
cmp dword [esi + 0x6c], 0
jne case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x44890e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44890e
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 0x448952
je case.0x409326.157
cmp ecx, 0xa0
ja 0x448941
je case.0x409326.157
cmp ecx, 9
je case.0x409326.157
cmp ecx, 0x20
je case.0x409326.157
jmp 0x409553
cmp ecx, 0x1680
je case.0x409326.157
jmp 0x409553
cmp ecx, 0x205f
ja 0x448989
je case.0x409326.157
cmp ecx, 0x2000
jb 0x409553
cmp ecx, 0x200a
jbe case.0x409326.157
cmp ecx, 0x202f
je case.0x409326.157
jmp 0x409553
cmp ecx, 0x3000
je case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x4489e3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4489e3
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 0x448a27
je 0x409553
cmp ecx, 0xa0
ja 0x448a16
je 0x409553
cmp ecx, 9
je 0x409553
cmp ecx, 0x20
jne case.0x409326.157
jmp 0x409553
cmp ecx, 0x1680
jne case.0x409326.157
jmp 0x409553
cmp ecx, 0x205f
ja 0x448a5e
je 0x409553
cmp ecx, 0x2000
jb case.0x409326.157
cmp ecx, 0x200a
jbe 0x409553
cmp ecx, 0x202f
jne case.0x409326.157
jmp 0x409553
cmp ecx, 0x3000
jne case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x448ab8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448ab8
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 0x448add
je case.0x409326.157
cmp ecx, 0xa
jb 0x409553
cmp ecx, 0xd
jbe case.0x409326.157
jmp 0x409553
cmp ecx, 0x2028
jb 0x409553
cmp ecx, 0x2029
jbe case.0x409326.157
jmp 0x409553
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x448b43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448b43
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 0x448b62
je 0x409553
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x409326.157
jmp 0x409553
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
jmp 0x409553
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 0x4096da
cmp eax, 0xa
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f269]
mov al, byte [ecx*8 + 0x4b03d1]
cmp al, 9
je 0x448bd5
cmp al, 5
je 0x448bd5
cmp al, 8
je 0x448bd5
xor ecx, ecx
jmp 0x448bf1
cmp edi, 0xf
je case.0x409326.157
jmp 0x4097ba
mov ecx, 1
jmp 0x448bf1
movzx eax, byte [ecx*8 + 0x4b03d1]
xor ecx, ecx
cmp dword [eax*4 + 0x4c6330], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x409326.157
jmp 0x4097ba
movzx ecx, byte [ecx*8 + 0x4b03d1]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x4c6330]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x409326.157
jmp 0x4097ba
movzx eax, byte [ecx*8 + 0x4b03d1]
jmp 0x448c45
movzx eax, byte [ecx*8 + 0x4b03d0]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x409326.157
jmp 0x4097ba
movzx eax, byte [ecx*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x448bd5
cmp eax, 3
je 0x448bd5
xor ecx, ecx
jmp 0x448bf1
cmp edx, 0x180e
ja 0x448ce4
je case.0x448ba9.0
cmp edx, 0x85
ja 0x448cc7
je case.0x448ba9.0
cmp edx, 9
jb case.0x448d08.8203
cmp edx, 0xd
jbe case.0x448ba9.0
cmp edx, 0x20
je case.0x448ba9.0
jmp case.0x448d08.8203
cmp edx, 0xa0
je case.0x448ba9.0
cmp edx, 0x1680
je case.0x448ba9.0
jmp case.0x448d08.8203
cmp edx, 0x202f
ja 0x448d0f
je case.0x448ba9.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x448d08.8203
movzx eax, byte [edx + 0x44f29d]
jmp dword [eax*4 + 0x44f295]
cmp edx, 0x205f
je case.0x448ba9.0
cmp edx, 0x3000
je case.0x448ba9.0
jmp case.0x448d08.8203
movzx eax, byte [ecx*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x448bd5
cmp eax, 3
je 0x448bd5
cmp dword [ebp - 0x20], 0x5f
je 0x448bd5
xor ecx, ecx
jmp 0x448bf1
mov eax, dword [ebp - 0x20]
cmp eax, 0x24
je 0x448bd5
cmp eax, 0x40
je 0x448bd5
cmp eax, 0x60
je 0x448bd5
cmp eax, 0xa0
jb 0x448d8e
cmp eax, 0xd7ff
jbe 0x448bd5
cmp eax, 0xe000
jae 0x448bd5
xor ecx, ecx
jmp 0x448bf1
cmp edi, 0x10
je case.0x409326.157
jmp 0x4097ba
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 0x4094a8
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
jmp 0x409500
cmp edi, eax
jb 0x409553
cmp edi, dword [esi + 0x88]
jbe 0x409553
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
jmp 0x409553
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 0x448ee4
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 0x448e8e
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x448e8e
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448ee1
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 0x448e6b
jmp 0x448ee4
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 0x448ed7
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x448ed7
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448ee1
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.0x448efd
movzx eax, byte [eax + 0x44f2d1]
jmp dword [eax*4 + 0x44f2c9]
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 + 0x4b2baa]
movsx eax, byte [eax + 0x4b2b9e]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x448f65
mov dword [ebp - 0x2c], bind
jmp 0x448f65
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 0x448f5f
mov dword [ebp - 0x2c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
mov eax, edi
test ecx, ecx
je 0x4092fd
jns 0x448f79
test edi, edi
je 0x4092fd
cmp eax, 1
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 8]
jl 0x448fbb
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0049ba0d
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44d6fb
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 0x448f88
mov edx, dword [ebp - 0x2c]
cmp edi, edx
je 0x409609
cmp dword [ebp - 0x1c], 0
je 0x44d64d
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
jge case.0x409326.157
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.0049ba0d
add esp, 0xc
test eax, eax
js 0x44d62a
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.004092a0
add esp, 0x14
test eax, eax
je 0x448ff6
jmp 0x40946b
push dword [ebp - 0x24]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.0049ba0d
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44d6fb
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x409609
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x449085
movzx eax, byte [eax + 0x44f2e1]
jmp dword [eax*4 + 0x44f2d9]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x4490a4
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x4490ab
mov dword [ebp - 0x2c], 1
movsx edx, byte [eax + 0x4b2c0c]
movsx eax, byte [eax + 0x4b2c00]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x40958b
mov dword [ebp - 0x20], bind
jmp 0x40958b
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 0x449102
mov dword [ebp - 0x20], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x40958b
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 0x4095c8
cmp edi, 0x6e
je case.0x409326.157
jmp 0x4095f2
cmp edx, 1
jl 0x4095fd
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x449171
cmp edi, 0x6e
je case.0x409326.157
jmp 0x449192
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.0x409326.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 0x44914c
jmp 0x409600
cmp dword [ebp - 0x10], 0
jne 0x44d729
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0x4492f2
cmp edx, dword [ebp - 0x20]
jl 0x4491c8
jmp 0x449278
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x449253
movzx edx, word [eax]
mov ecx, 1
mov eax, edx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44920f
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 0x44921e
cmp edi, 0x6e
jne 0x449238
jmp 0x449278
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 0x449278
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 0x4491c5
jmp 0x449278
cmp dword [esi + 0x8c], 0
je 0x449278
cmp eax, dword [esi + 0x88]
jbe 0x449278
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
cmp dword [ebp - 0x2c], 0
jne 0x409609
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x14]
jbe case.0x409326.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4492ce
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.004092a0
add esp, 0x14
test eax, eax
je 0x4492a8
jmp 0x40946b
cmp edx, dword [ebp - 0x20]
jge 0x449367
mov ecx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0x44933f
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x449311
cmp edi, 0x6e
jne 0x44932e
jmp 0x449364
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 0x449364
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 0x4492fa
jmp 0x449364
cmp dword [esi + 0x8c], 0
je 0x449364
cmp eax, dword [esi + 0x88]
jbe 0x449364
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, ecx
jb case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
sub edi, 2
cmp edi, dword [ebp - 0x14]
jae 0x44937c
jmp case.0x409326.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.0x4493d5
movzx eax, byte [eax + 0x44f2f5]
jmp dword [eax*4 + 0x44f2ed]
lea eax, [edi - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x4493f4
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x4493fb
mov dword [ebp - 0x2c], 1
movsx ecx, byte [eax + 0x4b2c00]
movsx edi, byte [eax + 0x4b2c0c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x449468
mov ecx, bind
jmp 0x449465
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 0x449450
mov ecx, bind
mov dword [ebp - 0x20], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x449468
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 0x4494e6
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], eax
test edx, edx
je 0x4494be
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4494be
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.0049bc08
add esp, 4
test eax, eax
je case.0x409326.157
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jle 0x449474
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp edi, ecx
je 0x4092fd
test eax, eax
jne 0x44d87e
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0x449508
jmp 0x44959f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44957a
mov edx, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
test edx, edx
je 0x449550
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449550
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.0049bc08
add esp, 4
test eax, eax
je 0x4495a2
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 0x449505
jmp 0x44959f
cmp dword [esi + 0x8c], 0
je 0x44959f
cmp eax, dword [esi + 0x88]
jbe 0x44959f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x409609
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x38]
jbe case.0x409326.157
cmp dword [ebp - 0x28], 0
je 0x4495fb
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4495fb
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.004092a0
add esp, 0x14
test eax, eax
je 0x4495cf
jmp 0x40946b
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0x4097f7
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x44d94f
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x409326.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x409609
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 0x409666
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4496c2
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 0x4092fd
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
mov eax, dword [eax*8 + 0x4b03d4]
add eax, edx
cmp edi, eax
jne case.0x409326.157
jmp 0x409609
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x449727
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x449729
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x449740
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x409326.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x409609
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 0x44981b
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 0x44978f
mov dword [ebp - 0x10], edx
cmp ecx, 0x35
jne 0x449796
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x44981b
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x449814
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x449814
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 0x44981b
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 + 0x4b2c0c]
movsx eax, byte [eax + 0x4b2c00]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x44981b
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 0x449aa7
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 0x44988e
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 0x449891
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 0x449aad
cmp edi, 0x2e
jb 0x4498e4
mov edi, dword [ebp - 0x24]
shr eax, 7
movzx ecx, byte [eax + 0x4c0f20]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
mov ecx, dword [eax*8 + 0x4b03d4]
add ecx, edi
cmp ecx, edi
je 0x4498e4
lea edx, [ebp - 0x6c]
call fcn.0049c093
mov edx, dword [ebp - 0x14]
mov edi, eax
jmp 0x4498e6
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 1
cmp edx, 1
jl 0x44997d
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 0x44992b
push ecx
push dword [ebp - 0x34]
push edi
call fcn.004216e4
add esp, 0xc
test eax, eax
jne 0x44992b
mov ecx, dword [ebp - 0x1c]
mov eax, edi
add eax, ecx
mov dword [ebp - 8], eax
jmp 0x44996a
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44d632
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44d632
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.004216e4
add esp, 0xc
test eax, eax
jne 0x44d632
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 0x449902
mov edi, dword [ebp - 0x20]
jmp 0x449980
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x409609
cmp dword [ebp - 0x10], 0
jne 0x44d97f
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x18]
jge 0x449a43
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 0x4499d8
push edx
push dword [ebp - 0x34]
push ecx
call fcn.004216e4
add esp, 0xc
test eax, eax
jne 0x4499d5
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x4499ff
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x449a10
mov eax, dword [esi + 0x7c]
add edi, edi
sub eax, edi
cmp ecx, eax
ja 0x449a10
push edi
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.004216e4
add esp, 0xc
test eax, eax
jne 0x449a10
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 0x4499aa
jmp 0x449a3d
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x449a40
cmp eax, dword [esi + 0x7c]
jb 0x449a3d
cmp eax, dword [esi + 0x88]
jbe 0x449a3d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, ecx
jbe 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
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 0x449a9d
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x449a58
jmp 0x409422
lea ebx, [ecx + 2]
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x449beb
cmp dword [ebp - 0x28], 0
je 0x449aed
cmp eax, 0x7f
jbe 0x449aed
shr eax, 7
movzx ecx, byte [eax + 0x4c0f20]
mov eax, dword [ebp - 0x24]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
mov eax, dword [eax*8 + 0x4b03d4]
add dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
jmp 0x449b06
cmp eax, 0xff
ja 0x449b00
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [eax + ecx]
jmp 0x449b03
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp edx, 1
jl 0x449b3f
cmp eax, dword [esi + 0x7c]
jae 0x44dc2a
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x449b2e
cmp edi, ecx
jne case.0x409326.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 0x449b15
cmp edx, dword [ebp - 0x18]
je 0x409609
cmp dword [ebp - 0x10], 0
jne 0x44da38
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp edx, dword [ebp - 0x18]
jge 0x449ba3
cmp eax, dword [esi + 0x7c]
jae 0x449b7b
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x449b6d
cmp edi, ecx
jne 0x449ba0
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x449b5c
jmp 0x449ba0
cmp dword [esi + 0x8c], 0
je 0x449ba0
cmp eax, dword [esi + 0x88]
jbe 0x449ba0
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, ecx
je 0x409422
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.004092a0
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x40946b
cmp edi, dword [ebp - 0x14]
jne 0x449bb8
jmp 0x409422
mov ecx, 1
cmp edx, ecx
jge 0x449bf9
mov edi, dword [ebp - 8]
jmp 0x449c1f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dc2a
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], eax
jne case.0x409326.157
inc ecx
cmp ecx, edx
jle 0x449bf9
cmp edx, dword [ebp - 0x18]
je 0x409609
cmp dword [ebp - 0x10], 0
jne 0x44daaf
mov eax, dword [ebp - 8]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp edx, edi
jge 0x449c62
mov ecx, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x449caa
movzx eax, word [eax]
cmp ecx, eax
jne 0x449c5c
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, edi
jl 0x449c44
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, ecx
je 0x409422
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.004092a0
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x40946b
cmp edi, dword [ebp - 0x14]
jne 0x449c77
jmp 0x409422
cmp dword [esi + 0x8c], 0
je 0x449c5f
cmp eax, dword [esi + 0x88]
jbe 0x449c5f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
jmp 0x449c5f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dc2a
cmp dword [ebp - 0x28], 0
movzx ecx, word [ebx + 2]
je 0x449dc6
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 0x449d2a
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 0x449d63
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 0x449d76
cmp dword [ebp - 0x24], edx
je case.0x409326.157
jmp 0x409609
mov edi, dword [ebp - 0x24]
cmp edi, 0x7f
jbe 0x449da7
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x4c0f20]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
mov eax, dword [eax*8 + 0x4b03d4]
add eax, edi
jmp 0x449db1
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [eax + ecx]
cmp edi, edx
je case.0x409326.157
cmp eax, edx
je case.0x409326.157
jmp 0x409609
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x409326.157
cmp edi, 0x20
jne 0x449df3
cmp ecx, 0xff
ja 0x449deb
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x409326.157
mov edx, dword [ebp - 8]
jmp 0x4093d6
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 0x449ed3
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x42
je 0x449e2a
mov dword [ebp - 0x10], edx
cmp ecx, 0x4f
jne 0x449e31
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x449ed3
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x449ecc
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x449ecc
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 0x449ed3
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 0x449ed3
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 + 0x4b2c0c]
movsx eax, byte [eax + 0x4b2c00]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x449ed3
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 0x449f1b
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449f18
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 0x449f1b
mov eax, dword [ebp - 0x14]
cmp edi, 0x48
jb 0x44a1c4
cmp dword [ebp - 0x28], 0
je 0x449f5a
cmp ecx, 0x7f
jbe 0x449f5a
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4c0f20]
mov eax, dword [ebp - 0x14]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
mov eax, dword [eax*8 + 0x4b03d4]
add eax, dword [ebp - 0x14]
jmp 0x449f6c
cmp ecx, 0xff
ja 0x449f6c
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 0x449fe3
cmp edx, edi
jl 0x44a014
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dc2a
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 0x449fca
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.0x409326.157
cmp dword [ebp - 0x20], ecx
je case.0x409326.157
inc edi
cmp edi, edx
jle 0x449f82
jmp 0x44a017
mov eax, dword [ebp - 8]
cmp edx, 1
jl 0x44a017
cmp eax, dword [esi + 0x7c]
jae 0x44dc2a
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je case.0x409326.157
cmp dword [ebp - 0x20], ecx
je case.0x409326.157
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, edx
jle 0x449feb
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
je 0x409609
cmp dword [ebp - 0x10], 0
jne 0x44db1e
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0x44a12e
cmp edx, ecx
jge 0x44a0a0
cmp eax, dword [esi + 0x7c]
jae 0x44a104
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a07d
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x44a082
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x44a09a
cmp dword [ebp - 0x20], edi
je 0x44a09a
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x44a03f
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, edi
jbe 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
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 0x44a0fa
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44a0b5
jmp 0x409422
cmp dword [esi + 0x8c], 0
je 0x44a09d
cmp eax, dword [esi + 0x88]
jbe 0x44a09d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
jmp 0x44a09d
cmp edx, ecx
jge 0x44a17c
mov edi, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x44a154
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je 0x44a179
cmp edi, ecx
je 0x44a179
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x44a135
jmp 0x44a179
cmp dword [esi + 0x8c], 0
je 0x44a179
cmp eax, dword [esi + 0x88]
jbe 0x44a179
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, edi
je 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x44a191
jmp 0x409422
cmp dword [ebp - 0x28], 0
mov edi, 1
je 0x44a236
cmp edx, edi
jge 0x44a1db
mov ecx, dword [ebp - 0x14]
jmp 0x44a25e
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dc2a
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 0x44a223
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.0x409326.157
inc edi
cmp edi, edx
jle 0x44a1db
mov ecx, dword [ebp - 0x14]
jmp 0x44a261
mov ecx, dword [ebp - 0x14]
cmp edx, 1
jl 0x44a25e
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44dc2a
movzx eax, word [eax]
add dword [ebp - 8], 2
cmp ecx, eax
je case.0x409326.157
inc edi
cmp edi, edx
jle 0x44a23e
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x409609
cmp dword [ebp - 0x10], 0
jne 0x44dc5c
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x20], edi
je 0x44a372
cmp edx, dword [ebp - 0x18]
jge 0x44a2e4
cmp eax, dword [esi + 0x7c]
jae 0x44a348
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a2c6
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x44a2cb
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x44a2de
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x44a288
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, edi
jbe 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
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 0x44a33e
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0x44a2f9
jmp 0x409422
cmp dword [esi + 0x8c], 0
je 0x44a2e1
cmp eax, dword [esi + 0x88]
jbe 0x44a2e1
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
jmp 0x44a2e1
cmp edx, dword [ebp - 0x18]
jge 0x44a393
cmp eax, dword [esi + 0x7c]
jae 0x44a3db
movzx eax, word [eax]
cmp ecx, eax
je 0x44a390
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jl 0x44a377
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp eax, edi
je 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0x44a3a8
jmp 0x409422
cmp dword [esi + 0x8c], 0
je 0x44a393
cmp eax, dword [esi + 0x88]
jbe 0x44a393
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44a393
jmp 0x44eef1
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 0x409871
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 0x409871
xor ecx, ecx
jmp 0x44a44d
mov ecx, 1
mov dword [ebp - 0x14], bind
jmp 0x44a45f
xor ecx, ecx
mov dword [ebp - 0x14], 1
add ebx, 2
jmp 0x44a470
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 0x409871
xor edx, edx
jmp 0x40984c
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 0x409892
test eax, eax
js 0x44abe1
cmp eax, 0xa
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f301]
cmp dword [ebp - 0x3c], 0
jne case.0x409326.157
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jge 0x44a4e9
mov ecx, dword [ebp - 0xc]
jmp 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
je 0x44a513
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a513
add edi, 2
mov dword [ebp - 8], edi
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44a4e9
mov ecx, dword [ebp - 0xc]
jmp 0x44ad69
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a57c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a57c
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp eax, 9
je 0x44a5b3
cmp eax, 5
je 0x44a5b3
cmp eax, 8
je 0x44a5b3
xor eax, eax
jmp 0x44a5b8
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a534
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a633
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a633
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp dword [eax*4 + 0x4c6330], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a5eb
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a6e1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a6e1
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a699
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a788
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a788
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a740
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44a82f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a82f
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x44a868
cmp eax, 3
je 0x44a868
xor eax, eax
jmp 0x44a86d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a7e7
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov eax, 1
mov dword [ebp - 0x24], eax
cmp ecx, eax
jl 0x44ad69
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x44a8ec
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a8e9
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 0x44a932
je 0x44a9a7
cmp ecx, 0x85
ja 0x44a920
je 0x44a9a7
cmp ecx, 9
jb case.0x44a94e.8203
cmp ecx, 0xd
jbe 0x44a9a7
cmp ecx, 0x20
jne case.0x44a94e.8203
jmp 0x44a9a7
cmp ecx, 0xa0
je 0x44a9a7
cmp ecx, 0x1680
jne case.0x44a94e.8203
jmp 0x44a9a7
cmp ecx, 0x202f
ja 0x44a955
je 0x44a9a7
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44a94e.8203
movzx eax, byte [ecx + 0x44f335]
jmp dword [eax*4 + 0x44f32d]
cmp ecx, 0x205f
je 0x44a9a7
cmp ecx, 0x3000
je 0x44a9a7
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp dword [eax*4 + 0x4c6330], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x24]
jmp 0x44a9b1
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne case.0x409326.157
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, ecx
jle 0x44a8a0
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x44aa20
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44aa20
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 + 0x4c0f20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x44aa60
cmp eax, 3
je 0x44aa60
cmp edx, 0x5f
je 0x44aa60
xor eax, eax
jmp 0x44aa65
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44a9d8
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
je 0x44aae6
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44aae6
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 + 0x4b1a50]
lea eax, [eax*4 + 0x4b1a50]
cmp dword [ebp - 0x24], edx
jb 0x44ab09
lea eax, [eax + 4]
cmp ecx, edx
je 0x44ab2a
mov edx, dword [eax]
cmp ecx, edx
jae 0x44aafc
cmp dword [ebp - 0x3c], 0
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44aa98
jmp 0x44ad66
cmp dword [ebp - 0x3c], 0
jne case.0x409326.157
jmp 0x44ab13
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x4098a0
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x44ab91
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ab91
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 0x44abbc
cmp ecx, 0x40
je 0x44abbc
cmp ecx, 0x60
je 0x44abbc
cmp ecx, 0xa0
jb 0x44abb0
cmp ecx, 0xd7ff
jbe 0x44abbc
cmp ecx, 0xe000
jae 0x44abbc
xor eax, eax
jmp 0x44abc1
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44ab49
jmp 0x44ad66
cmp edi, 0x16
jne 0x44ad71
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
cmp ecx, 1
jl 0x4098a0
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44b577
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 0x44ac57
mov dword [ebp - 0x24], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ac57
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx ecx, byte [eax*8 + 0x4b03d2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44ad2a
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44acce
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44acce
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx ecx, byte [eax*8 + 0x4b03d2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c31d0], eax
je 0x44ad1e
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 0x44ac93
jmp 0x44ad21
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 0x44ad53
cmp edx, eax
jb 0x44ad53
cmp edx, dword [esi + 0x88]
jbe 0x44ad53
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44abfd
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
jmp 0x4098a0
cmp dword [ebp - 0x28], 0
lea eax, [edi - 6]
je 0x44b496
cmp eax, 0xf
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f361]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ad69
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b577
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44adcb
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.004075fb
add esp, 0xc
test eax, eax
jne case.0x409326.157
jmp 0x44adf7
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44adf7
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44adf7
cmp edx, 1
je case.0x409326.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x409326.157
cmp dword [esi + 0x8c], 0
je 0x44ae31
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44ae31
cmp dword [esi + 0x18], 0
jne 0x44ae31
cmp dword [esi + 0x1c], 2
jne 0x44ae31
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44ae31
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov ecx, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44ae59
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x44ae59
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 0x44ada0
jmp 0x44ad63
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44b577
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44aeba
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 0x44aeba
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x44ae84
jmp 0x44ad63
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0x409326.157
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44ad69
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ad69
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44b577
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 0x44af3b
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 0x44af6a
je 0x44af55
cmp ecx, 0xa
je 0x44af8b
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x409326.157
jmp 0x44af81
mov eax, dword [esi + 0x7c]
cmp edx, eax
jae 0x44af8e
cmp word [edi], 0xa
jne 0x44af8e
lea edi, [edx + 2]
mov dword [ebp - 8], edi
jmp 0x44af8e
cmp ecx, 0x85
je 0x44af81
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
cmp dword [esi + 0x6c], 0
jne case.0x409326.157
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44aef9
jmp 0x44ad63
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44aff2
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 0x44b030
je case.0x409326.157
cmp ecx, 0xa0
ja 0x44b022
je case.0x409326.157
cmp ecx, 9
je case.0x409326.157
cmp ecx, 0x20
je case.0x409326.157
jmp 0x44b06c
cmp ecx, 0x1680
je case.0x409326.157
jmp 0x44b06c
cmp ecx, 0x205f
ja 0x44b060
je case.0x409326.157
cmp ecx, 0x2000
jb 0x44b06c
cmp ecx, 0x200a
jbe case.0x409326.157
cmp ecx, 0x202f
je case.0x409326.157
jmp 0x44b06c
cmp ecx, 0x3000
je case.0x409326.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44afb3
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b0cc
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 0x44b0fe
je 0x44b136
cmp ecx, 0xa0
ja 0x44b0f0
je 0x44b136
cmp ecx, 9
je 0x44b136
cmp ecx, 0x20
jne case.0x409326.157
jmp 0x44b136
cmp ecx, 0x1680
jne case.0x409326.157
jmp 0x44b136
cmp ecx, 0x205f
ja 0x44b12a
je 0x44b136
cmp ecx, 0x2000
jb case.0x409326.157
cmp ecx, 0x200a
jbe 0x44b136
cmp ecx, 0x202f
jne case.0x409326.157
jmp 0x44b136
cmp ecx, 0x3000
jne case.0x409326.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44b08d
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b196
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 0x44b1b4
je case.0x409326.157
cmp ecx, 0xa
jb 0x44b1c8
cmp ecx, 0xd
jbe case.0x409326.157
jmp 0x44b1c8
cmp ecx, 0x2028
jb 0x44b1c8
cmp ecx, 0x2029
jbe case.0x409326.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44b157
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b224
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 0x44b23c
je 0x44b24b
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x409326.157
jmp 0x44b24b
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x44b1e5
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ad69
cmp edi, dword [esi + 0x7c]
jae 0x44b577
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 0x44b2ae
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 0x44b2c3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x409326.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x44b26b
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b2e6
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ad69
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44b577
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44b35a
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x409326.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44b382
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44b382
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44b337
jmp 0x44ad63
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b3a2
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ad69
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44b577
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44b416
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x409326.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44b43e
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44b43e
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x44b3f3
jmp 0x44ad63
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b45e
jmp 0x44ad66
cmp eax, 0xf
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f3a1]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x44ad69
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b577
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44b4e6
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.004075fb
add esp, 0xc
test eax, eax
jne case.0x409326.157
jmp 0x44b512
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44b512
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44b512
cmp edx, 1
je case.0x409326.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x409326.157
cmp dword [esi + 0x8c], 0
je 0x44b54c
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44b54c
cmp dword [esi + 0x18], 0
jne 0x44b54c
cmp dword [esi + 0x1c], 2
jne 0x44b54c
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44b54c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
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 0x44b4b9
jmp 0x44ad66
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
jbe 0x44b5b7
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp edi, dword [esi + 0x88]
jbe case.0x409326.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x409326.157
jmp 0x44eef1
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x44b577
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x44ad69
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44b577
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
ja 0x44b610
je 0x44b5fe
cmp eax, 0xa
je 0x44b62f
add eax, 0xfffffff5
cmp eax, 1
ja case.0x409326.157
jmp 0x44b625
cmp edi, ecx
jae 0x44b62f
cmp word [edi], 0xa
jne 0x44b62f
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44b62f
cmp eax, 0x85
je 0x44b625
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x409326.157
cmp dword [esi + 0x6c], 0
jne case.0x409326.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44b5d7
jmp 0x44ad63
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a519
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44b698
je case.0x409326.157
cmp eax, 0xa0
ja 0x44b68b
je case.0x409326.157
cmp eax, 9
je case.0x409326.157
cmp eax, 0x20
je case.0x409326.157
jmp 0x44b6cf
cmp eax, 0x1680
je case.0x409326.157
jmp 0x44b6cf
cmp eax, 0x205f
ja 0x44b6c4
je case.0x409326.157
cmp eax, 0x2000
jb 0x44b6cf
cmp eax, 0x200a
jbe case.0x409326.157
cmp eax, 0x202f
je case.0x409326.157
jmp 0x44b6cf
cmp eax, 0x3000
je case.0x409326.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b64b
mov ecx, dword [ebp - 0xc]
jmp 0x44ad69
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a519
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x44b733
je 0x44b766
cmp eax, 0xa0
ja 0x44b726
je 0x44b766
cmp eax, 9
je 0x44b766
cmp eax, 0x20
jne case.0x409326.157
jmp 0x44b766
cmp eax, 0x1680
jne case.0x409326.157
jmp 0x44b766
cmp eax, 0x205f
ja 0x44b75b
je 0x44b766
cmp eax, 0x2000
jb case.0x409326.157
cmp eax, 0x200a
jbe 0x44b766
cmp eax, 0x202f
jne case.0x409326.157
jmp 0x44b766
cmp eax, 0x3000
jne case.0x409326.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b6f2
mov ecx, dword [ebp - 0xc]
jmp 0x44ad69
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a519
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44b7b4
je case.0x409326.157
cmp eax, 0xa
jb 0x44b7c6
cmp eax, 0xd
jbe case.0x409326.157
jmp 0x44b7c6
cmp eax, 0x2028
jb 0x44b7c6
cmp eax, 0x2029
jbe case.0x409326.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b785
mov ecx, dword [ebp - 0xc]
jmp 0x44ad69
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x44a519
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x44b80e
je 0x44b81c
add eax, 0xfffffff6
cmp eax, 3
ja case.0x409326.157
jmp 0x44b81c
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x409326.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44b7e5
mov ecx, dword [ebp - 0xc]
jmp 0x44ad69
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44b865
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b83a
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x409326.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b885
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44b8fc
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b8d1
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x409326.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b91c
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44b993
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b968
jmp 0x44ad66
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x44ad66
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x409326.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x409326.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x44b9b3
jmp 0x44ad66
mov edx, edi
mov dword [ebp - 0x10], edx
test eax, eax
js 0x44c266
cmp eax, 0xa
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f3e1]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jge 0x44c201
cmp edi, dword [esi + 0x7c]
jae 0x44ba6a
cmp dword [ebp - 0x28], 0
mov ecx, 1
je 0x44ba4a
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 0x44ba4a
mov ecx, 2
cmp dword [ebp - 0x3c], 0
jne 0x44c201
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 0x44ba17
jmp 0x44c201
cmp dword [esi + 0x8c], 0
je 0x44c201
cmp edi, dword [esi + 0x88]
jbe 0x44c201
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c201
jmp 0x44eef1
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
cmp edi, dword [esi + 0x7c]
jae 0x44bb5a
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44baf5
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44baf0
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bafa
mov edx, dword [ebp - 0x38]
jmp 0x44bafa
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp eax, 9
je 0x44bb31
cmp eax, 5
je 0x44bb31
cmp eax, 8
je 0x44bb31
xor eax, eax
jmp 0x44bb36
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c1fe
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 0x44baa5
jmp 0x44c1fe
cmp dword [esi + 0x8c], 0
je 0x44c1fe
cmp edi, dword [esi + 0x88]
jbe 0x44c1fe
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c1fe
jmp 0x44eef1
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
cmp edi, dword [esi + 0x7c]
jae 0x44bb5a
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bbe1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bbdc
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bbe6
mov edx, dword [ebp - 0x38]
jmp 0x44bbe6
mov edx, 1
mov esi, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp dword [eax*4 + 0x4c6330], esi
mov esi, dword [ebp + 0x10]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c1fe
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 0x44bb95
jmp 0x44c1fe
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
cmp edi, dword [esi + 0x7c]
jae 0x44bb5a
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bc99
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bc94
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bc9e
mov edx, dword [ebp - 0x38]
jmp 0x44bc9e
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c1fe
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 0x44bc49
jmp 0x44c1fe
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
cmp edi, dword [esi + 0x7c]
jae 0x44bb5a
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bd47
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bd42
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bd4c
mov edx, dword [ebp - 0x38]
jmp 0x44bd4c
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c1fe
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 0x44bcf7
jmp 0x44c1fe
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
cmp edi, dword [esi + 0x7c]
jae 0x44bb5a
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x44bdf5
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bdf0
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x44bdfa
mov edx, dword [ebp - 0x38]
jmp 0x44bdfa
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x44be33
cmp eax, 3
je 0x44be33
xor eax, eax
jmp 0x44be38
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c1fe
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 0x44bda5
jmp 0x44c1fe
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
mov eax, 1
mov dword [ebp - 0x24], eax
cmp edi, dword [esi + 0x7c]
jae 0x44bf98
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
je 0x44beb8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44beb5
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 0x44beb8
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x44befe
je 0x44bf73
cmp ecx, 0x85
ja 0x44beec
je 0x44bf73
cmp ecx, 9
jb case.0x44bf1a.8203
cmp ecx, 0xd
jbe 0x44bf73
cmp ecx, 0x20
jne case.0x44bf1a.8203
jmp 0x44bf73
cmp ecx, 0xa0
je 0x44bf73
cmp ecx, 0x1680
jne case.0x44bf1a.8203
jmp 0x44bf73
cmp ecx, 0x202f
ja 0x44bf21
je 0x44bf73
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44bf1a.8203
movzx eax, byte [ecx + 0x44f415]
jmp dword [eax*4 + 0x44f40d]
cmp ecx, 0x205f
je 0x44bf73
cmp ecx, 0x3000
je 0x44bf73
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp dword [eax*4 + 0x4c6330], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x44c1fe
mov eax, dword [ebp - 0x24]
jmp 0x44bf7d
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne 0x44c1fe
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 0x44be65
jmp 0x44c1fe
cmp dword [esi + 0x8c], 0
je 0x44c1fe
cmp edi, dword [esi + 0x88]
jbe 0x44c1fe
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x44c1fe
jmp 0x44eef1
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
cmp edi, dword [esi + 0x7c]
jae 0x44bb5a
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
mov dword [ebp - 0x1c], 1
je 0x44c019
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c019
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 + 0x4c0f20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x44c059
cmp eax, 3
je 0x44c059
cmp edx, 0x5f
je 0x44c059
xor eax, eax
jmp 0x44c05e
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c1fe
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 0x44bfce
jmp 0x44c1fe
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44bb5a
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x24], ecx
je 0x44c0df
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c0df
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 + 0x4b1a50]
lea eax, [eax*4 + 0x4b1a50]
cmp dword [ebp - 0x24], edx
jb 0x44c102
lea eax, [eax + 4]
cmp ecx, edx
je 0x44c12a
mov edx, dword [eax]
cmp ecx, edx
jae 0x44c0f5
cmp dword [ebp - 0x3c], 0
je 0x44c1fe
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 0x44c08e
jmp 0x44c1fe
cmp dword [ebp - 0x3c], 0
je 0x44c10c
jmp 0x44c1fe
cmp ecx, dword [ebp - 0x14]
jge 0x44c201
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44c1d9
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
je 0x44c189
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c189
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 0x44c1b4
cmp ecx, 0x40
je 0x44c1b4
cmp ecx, 0x60
je 0x44c1b4
cmp ecx, 0xa0
jb 0x44c1a8
cmp ecx, 0xd7ff
jbe 0x44c1b4
cmp ecx, 0xe000
jae 0x44c1b4
xor eax, eax
jmp 0x44c1b9
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x44c1fe
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 0x44c13e
jmp 0x44c1fe
cmp dword [esi + 0x8c], 0
je 0x44c1fe
cmp edi, dword [esi + 0x88]
jbe 0x44c1fe
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp edi, edx
jbe 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
je 0x44c25c
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c25c
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44c213
jmp 0x409422
mov eax, dword [ebp - 0x20]
cmp eax, 0x16
jne 0x44c453
cmp ecx, dword [ebp - 0x14]
jge 0x44c407
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x44c3df
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 0x44c2d1
mov eax, edx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c2d1
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx ecx, byte [eax*8 + 0x4b03d2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x44c3a4
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x44c348
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c348
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx ecx, byte [eax*8 + 0x4b03d2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4c31d0], eax
je 0x44c398
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 0x44c30d
jmp 0x44c39b
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 0x44c3cd
cmp edx, eax
jb 0x44c3cd
cmp edx, dword [esi + 0x88]
jbe 0x44c3cd
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44c27b
jmp 0x44c404
cmp dword [esi + 0x8c], 0
je 0x44c404
cmp edi, dword [esi + 0x88]
jbe 0x44c404
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp edi, edx
jbe 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
jne 0x44d31e
movzx ecx, word [edi]
jmp 0x44d364
add eax, 0xfffffffa
cmp dword [ebp - 0x28], 0
je 0x44cc77
cmp eax, 0xf
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f441]
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44c552
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44c4a9
push dword [ebp - 0x28]
lea ecx, [esi + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.004075fb
add esp, 0xc
test eax, eax
je 0x44c4d8
jmp 0x44c577
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x24]
lea eax, [ecx + ecx]
sub edx, eax
cmp edi, edx
ja 0x44c4d8
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c4d8
cmp ecx, 1
je 0x44c577
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44c577
cmp dword [esi + 0x8c], 0
je 0x44c512
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44c512
cmp dword [esi + 0x18], 0
jne 0x44c512
cmp dword [esi + 0x1c], 2
jne 0x44c512
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c512
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x44c540
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0x24]
jne 0x44c540
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 0x44c47f
jmp 0x44c577
cmp dword [esi + 0x8c], 0
je 0x44c577
cmp edi, dword [esi + 0x88]
jbe 0x44c577
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp edi, edx
jbe 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
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 0x44c5d5
add edi, 0xfffffffe
mov dword [ebp - 8], edi
mov ecx, edi
cmp dword [ebp - 0x20], 0x11
mov eax, dword [ebp - 0x10]
jne 0x44c5f5
cmp ecx, eax
jbe 0x44c5f5
cmp word [edi], 0xa
jne 0x44c5f5
cmp word [edi - 2], 0xd
jne 0x44c5f5
lea edi, [ecx - 2]
mov dword [ebp - 8], edi
cmp edi, eax
ja 0x44c58c
jmp 0x409422
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fffffff
jge 0x44c656
cmp ecx, eax
jge 0x44c57a
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44c65c
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44c648
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 0x44c648
add edi, 2
mov dword [ebp - 8], edi
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x44c616
jmp 0x44c57a
mov edi, dword [esi + 0x7c]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44c57a
cmp edi, dword [esi + 0x88]
jbe 0x44c57a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c57a
jmp 0x44eef1
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 0x44c6d6
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44c57a
cmp ecx, dword [esi + 0x88]
jbe 0x44c57a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c57a
jmp 0x44eef1
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44c57a
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x44c552
movzx ecx, word [edi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c72d
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 0x44c74e
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x44c577
cmp word [edi], 0xa
jne 0x44c78c
add edi, 2
jmp 0x44c789
cmp ecx, 0xa
je 0x44c783
cmp dword [esi + 0x6c], 0
jne 0x44c577
cmp ecx, 0xb
je 0x44c783
cmp ecx, 0xc
je 0x44c783
cmp ecx, 0x85
je 0x44c783
cmp ecx, 0x2028
je 0x44c783
cmp ecx, 0x2029
jne 0x44c577
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 0x44c6f0
jmp 0x44c577
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44c874
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c7e8
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 0x44c844
je 0x44c806
cmp ecx, 0xa0
ja 0x44c83a
je 0x44c806
cmp ecx, 9
je 0x44c806
cmp ecx, 0x20
jne 0x44c870
mov ecx, 1
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x12
sete al
cmp ecx, eax
je 0x44c577
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 0x44c7aa
jmp 0x44c577
cmp ecx, 0x1680
jne 0x44c870
jmp 0x44c806
cmp ecx, 0x205f
ja 0x44c868
je 0x44c806
cmp ecx, 0x2000
jb 0x44c870
cmp ecx, 0x200a
jbe 0x44c806
cmp ecx, 0x202f
jne 0x44c870
jmp 0x44c806
cmp ecx, 0x3000
je 0x44c806
xor ecx, ecx
jmp 0x44c80b
cmp dword [esi + 0x8c], 0
je 0x44c577
cmp edi, dword [esi + 0x88]
jbe 0x44c577
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jmp 0x44c571
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44c874
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c8de
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 0x44c91f
je 0x44c92a
cmp ecx, 0xa
jb 0x44c8f2
cmp ecx, 0xd
jbe 0x44c92a
xor ecx, ecx
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x14
sete al
cmp ecx, eax
je 0x44c577
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 0x44c8a4
jmp 0x44c577
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x44c8f2
mov ecx, 1
jmp 0x44c8f4
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
cmp edi, dword [esi + 0x7c]
jae 0x44c552
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44c983
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 0x44c988
mov eax, 1
cmp edx, 0x100
jae 0x44c9a0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44c577
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 0x44c93a
jmp 0x44c577
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
cmp edi, dword [esi + 0x7c]
jae 0x44c552
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44ca06
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 0x44c577
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44c577
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 0x44c9c0
jmp 0x44c577
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
cmp edi, dword [esi + 0x7c]
jae 0x44c552
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44ca8b
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 0x44ca90
mov eax, 1
cmp edx, 0x100
jae 0x44caa8
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44c577
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 0x44ca42
jmp 0x44c577
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
cmp edi, dword [esi + 0x7c]
jae 0x44c552
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44cb0e
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 0x44c577
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44c577
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 0x44cac8
jmp 0x44c577
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
cmp edi, dword [esi + 0x7c]
jae 0x44c552
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44cb93
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 0x44cb98
mov eax, 1
cmp edx, 0x100
jae 0x44cbb0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44c577
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 0x44cb4a
jmp 0x44c577
cmp ecx, dword [ebp - 0x14]
jge 0x44c57a
cmp edi, dword [esi + 0x7c]
jae 0x44cc45
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x44cc12
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 0x44c577
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44c577
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 0x44cbd0
jmp 0x44c577
cmp dword [esi + 0x8c], 0
je 0x44c577
cmp edi, dword [esi + 0x88]
jbe 0x44c577
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
jmp 0x44c577
cmp eax, 0xf
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f481]
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cd36
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44ccbc
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.004075fb
add esp, 0xc
test eax, eax
je 0x44cce4
jmp 0x44cd5b
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44cce4
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44cce4
cmp edx, 1
je 0x44cd5b
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44cd5b
cmp dword [esi + 0x8c], 0
je 0x44cd1e
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44cd1e
cmp dword [esi + 0x18], 0
jne 0x44cd1e
cmp dword [esi + 0x1c], 2
jne 0x44cd1e
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44cd1e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
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 0x44cc90
jmp 0x44cd5b
cmp dword [esi + 0x8c], 0
je 0x44cd5b
cmp edi, dword [esi + 0x88]
jbe 0x44cd5b
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov edx, dword [ebp - 0x10]
jmp 0x44d1ea
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 0x44cdab
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x44d1ea
cmp ecx, dword [esi + 0x88]
jbe 0x44d1ea
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d1ea
jmp 0x44eef1
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44ce42
movzx eax, word [edi]
cmp eax, 0xd
jne 0x44cde7
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44d1ea
cmp word [edi], 0xa
je 0x44ce2b
jmp 0x44ce31
cmp eax, 0xa
je 0x44ce2b
cmp dword [esi + 0x6c], 0
jne 0x44d1ea
cmp eax, 0xb
je 0x44ce2b
cmp eax, 0xc
je 0x44ce2b
mov dword [ebp - 0x38], 0x85
cmp ax, word [ebp - 0x38]
je 0x44ce2b
mov dword [ebp - 0x38], 0x2028
cmp ax, word [ebp - 0x38]
je 0x44ce2b
mov dword [ebp - 0x38], 0x2029
cmp ax, word [ebp - 0x38]
jne 0x44d1ea
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 0x44cdc5
jmp 0x44d1ea
cmp dword [esi + 0x8c], 0
je 0x44d1ea
cmp edi, dword [esi + 0x88]
jbe 0x44d1ea
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44d1ea
jmp 0x44eef1
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44cebe
je 0x44d1ea
cmp eax, 0xa0
ja 0x44ceb2
je 0x44d1ea
cmp eax, 9
je 0x44d1ea
cmp eax, 0x20
jne 0x44cef4
jmp 0x44d1ea
cmp eax, 0x1680
jne 0x44cef4
jmp 0x44d1ea
cmp eax, 0x205f
ja 0x44cee9
je 0x44d1ea
cmp eax, 0x2000
jb 0x44cef4
cmp eax, 0x200a
jbe 0x44d1ea
cmp eax, 0x202f
jne 0x44cef4
jmp 0x44d1ea
cmp eax, 0x3000
je 0x44d1ea
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44ce7d
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x44cf4b
je 0x44cf7d
cmp eax, 0xa0
ja 0x44cf3f
je 0x44cf7d
cmp eax, 9
je 0x44cf7d
cmp eax, 0x20
je 0x44cf7d
jmp 0x44d1ea
cmp eax, 0x1680
je 0x44cf7d
jmp 0x44d1ea
cmp eax, 0x205f
ja 0x44cf72
je 0x44cf7d
cmp eax, 0x2000
jb 0x44d1ea
cmp eax, 0x200a
jbe 0x44cf7d
cmp eax, 0x202f
je 0x44cf7d
jmp 0x44d1ea
cmp eax, 0x3000
jne 0x44d1ea
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44cf12
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44cfbf
je 0x44d1ea
cmp eax, 0xa
jb 0x44cfd1
cmp eax, 0xd
ja 0x44cfd1
jmp 0x44d1ea
cmp eax, 0x2028
jb 0x44cfd1
cmp eax, 0x2029
jbe 0x44d1ea
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44cf97
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
cmp eax, 0x85
ja 0x44d00d
je 0x44d01b
add eax, 0xfffffff6
cmp eax, 3
jbe 0x44d01b
jmp 0x44d1ea
add eax, 0xffffdfd8
cmp eax, 1
ja 0x44d1ea
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x44cfeb
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44d060
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44d1ea
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 0x44d035
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44d1ea
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44d1ea
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 0x44d07d
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44d0f1
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44d1ea
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 0x44d0c6
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44d1ea
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44d1ea
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 0x44d10e
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44ce42
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x44d17e
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44d1ea
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 0x44d157
jmp 0x44d1ea
cmp ecx, dword [ebp - 0x14]
jge 0x44d1ea
cmp edi, dword [esi + 0x7c]
jae 0x44d1c5
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44d1ea
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44d1ea
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 0x44d194
jmp 0x44d1ea
cmp dword [esi + 0x8c], 0
je 0x44d1ea
cmp edi, dword [esi + 0x88]
jbe 0x44d1ea
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
cmp dword [ebp - 0x2c], 0
jne 0x409609
cmp edi, edx
je 0x409422
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x10]
add edi, 0xfffffffe
cmp dword [ebp - 0x20], 0x11
mov dword [ebp - 8], edi
jne 0x44d245
cmp edi, eax
jbe 0x44d247
cmp word [edi], 0xa
jne 0x44d245
cmp word [edi - 2], 0xd
jne 0x44d245
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, eax
jne 0x44d1fc
jmp 0x409422
mov edx, dword [ebp - 0x20]
call fcn.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
add ebx, 4
jmp 0x40941f
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 0x44d2d6
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov ecx, dword [ebp - 0x20]
mov edx, 0x81
movzx eax, word [ecx]
cmp ax, dx
je 0x44d588
mov edx, 0x88
cmp ax, dx
jb 0x447261
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.004092a0
add esp, 0x14
jmp 0x40946b
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.004092a0
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x44d2fd
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0x40946b
jmp 0x44d308
test eax, eax
jne 0x40946b
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x44d58c
add ebx, 4
jmp 0x40941f
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44d339
add edi, 0xfffffffe
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d364
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d2]
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x10]
jbe 0x409422
cmp dword [ebp - 0x28], 0
lea edx, [edi - 2]
jne 0x44d3a2
movzx ecx, word [edx]
jmp 0x44d3e5
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44d3ba
add edx, 0xfffffffe
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d3e5
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d2]
mov dword [ebp - 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test dword [ecx*4 + 0x4c31d0], eax
je 0x44c419
mov edi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edi
jmp 0x44d38b
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 + 0x4c3120]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.004092a0
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc20
jne 0x44d4cb
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ef74
cmp word [ebx], 0x77
je 0x44d4a3
cmp word [eax], 0x77
jne 0x44ef74
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.0x409326.157
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp case.0x409326.129
test eax, eax
je 0x44d4a3
cmp eax, 0xfffffc1b
jne 0x40946b
movzx ecx, word [ebx]
mov edx, 0x81
cmp cx, dx
je 0x44d506
cmp ecx, 0x77
jne 0x44d4fa
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44d4ec
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 0xb8], ebx
jne 0x40946b
jmp case.0x409326.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4c3120]
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x40946b
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x40946b
push ecx
call fcn.00409c4b
add esp, 4
jmp 0x44ef74
mov eax, 0xfffffffa
jmp 0x40946b
mov edx, ecx
jmp 0x44d58f
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov edi, dword [ebp - 0x20]
jmp 0x44d5d8
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x40946b
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 0x40946b
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 0x409466
cmp eax, 0xfffffffe
jne 0x44d632
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp edi, dword [esi + 0x7c]
jb case.0x409326.157
jmp 0x44b584
mov dword [ebp - 0x1c], eax
cmp edi, edx
jl 0x44d65b
mov edi, eax
jmp 0x44d6c0
mov eax, dword [ebp - 8]
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0049ba0d
add esp, 0xc
test eax, eax
js 0x44d685
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 0x44d658
jmp 0x44d6b5
cmp eax, 0xfffffffe
jne 0x44d6b2
cmp dword [esi + 0x8c], 0
je 0x44d6b2
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x44d6b2
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
cmp edx, edi
jb case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
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 0x44d6c0
jmp case.0x409326.157
cmp ecx, 0xfffffffe
jne 0x44d705
mov eax, dword [esi + 0x7c]
jmp 0x44d708
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp eax, dword [esi + 0x7c]
jb case.0x409326.157
cmp eax, dword [esi + 0x88]
jmp 0x44b58a
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.004092a0
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44d7ff
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x409326.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0x44d94f
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d7a5
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 0x44d7b8
cmp edi, 0x6e
je case.0x409326.157
jmp 0x44d7d6
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.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44d757
jmp 0x40946b
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x409326.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d967
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x44d83b
cmp edi, 0x6e
je case.0x409326.157
jmp 0x44d856
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.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44d807
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x44d8f0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d8f0
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.0049bc08
add esp, 4
test eax, eax
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44d8a4
jmp 0x40946b
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp edx, ecx
jb case.0x409326.157
cmp edx, dword [esi + 0x88]
jmp 0x44b58a
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp ecx, dword [esi + 0x88]
jmp 0x44b58a
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp eax, dword [esi + 0x88]
jmp 0x44b58a
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
jge case.0x409326.157
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44d9d6
push ecx
push dword [ebp - 0x34]
push edi
call fcn.004216e4
add esp, 0xc
test eax, eax
jne 0x44d9d6
mov eax, dword [ebp - 0xc]
jmp 0x44da0a
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44d632
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44d632
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.004216e4
add esp, 0xc
test eax, eax
jne 0x44d632
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.004092a0
add esp, 0x14
test eax, eax
je 0x44d9a5
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
cmp dword [ebp - 0x20], ecx
je 0x44da84
cmp dword [ebp - 0x24], ecx
jne case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44da5e
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x20], eax
jne case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44dad2
jmp 0x40946b
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.004092a0
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44dbcd
test eax, eax
jne 0x40946b
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44db93
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.0x409326.157
cmp dword [ebp - 0x20], ecx
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44db4e
jmp 0x40946b
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
cmp dword [ebp - 0x14], ecx
je case.0x409326.157
cmp dword [ebp - 0x20], ecx
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44dbd5
jmp 0x40946b
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp eax, dword [esi + 0x88]
jbe case.0x409326.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x409326.157
jmp 0x44eef1
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.004092a0
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x44dcfe
test eax, eax
jne 0x40946b
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dccd
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.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44dc88
jmp 0x40946b
test eax, eax
jne 0x40946b
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x14], eax
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44dd06
jmp 0x40946b
cmp eax, 0xa
ja case.default.0x448ba9
jmp dword [eax*4 + 0x44f4c1]
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x14]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
je 0x44ddb5
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ddb5
add edi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44dd85
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44de57
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44de57
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp eax, 9
je 0x44de8e
cmp eax, 5
je 0x44de8e
cmp eax, 8
je 0x44de8e
xor eax, eax
jmp 0x44de93
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44de0a
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44df38
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44df38
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp dword [eax*4 + 0x4c6330], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44deea
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e00f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e00f
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44dfc2
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e0df
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e0df
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44e092
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e1b0
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e1b0
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x44e1e9
cmp eax, 3
je 0x44e1e9
xor eax, eax
jmp 0x44e1ee
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44e162
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44e297
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e294
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 0x44e2dd
je 0x44e352
cmp ecx, 0x85
ja 0x44e2cb
je 0x44e352
cmp ecx, 9
jb case.0x44e2f9.8203
cmp ecx, 0xd
jbe 0x44e352
cmp ecx, 0x20
jne case.0x44e2f9.8203
jmp 0x44e352
cmp ecx, 0xa0
je 0x44e352
cmp ecx, 0x1680
jne case.0x44e2f9.8203
jmp 0x44e352
cmp ecx, 0x202f
ja 0x44e300
je 0x44e352
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x44e2f9.8203
movzx eax, byte [ecx + 0x44f4f5]
jmp dword [eax*4 + 0x44f4ed]
cmp ecx, 0x205f
je 0x44e352
cmp ecx, 0x3000
je 0x44e352
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x4c0f20]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
cmp dword [eax*4 + 0x4c6330], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409326.157
mov eax, dword [ebp - 0xc]
jmp 0x44e35c
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x3c], 0
jne case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44e245
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x44e3f8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e3f8
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 + 0x4c0f20]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b2c20]
movzx eax, byte [eax*8 + 0x4b03d1]
mov eax, dword [eax*4 + 0x4c6330]
cmp eax, 1
je 0x44e438
cmp eax, 3
je 0x44e438
cmp edx, 0x5f
je 0x44e438
xor eax, eax
jmp 0x44e43d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44e3ab
jmp 0x40946b
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x34], ecx
je 0x44e4e8
mov eax, ecx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e4e8
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 + 0x4b1a50]
lea eax, [eax*4 + 0x4b1a50]
cmp dword [ebp - 0x34], edx
jb 0x44e50b
lea eax, [eax + 4]
cmp ecx, edx
je 0x44e540
mov edx, dword [eax]
cmp ecx, edx
jae 0x44e4fe
cmp dword [ebp - 0x3c], 0
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44e494
jmp 0x40946b
cmp dword [ebp - 0x3c], 0
jne case.0x409326.157
jmp 0x44e515
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.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x44e5bd
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e5bd
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 0x44e5e8
cmp ecx, 0x40
je 0x44e5e8
cmp ecx, 0x60
je 0x44e5e8
cmp ecx, 0xa0
jb 0x44e5dc
cmp ecx, 0xd7ff
jbe 0x44e5e8
cmp ecx, 0xe000
jae 0x44e5e8
xor eax, eax
jmp 0x44e5ed
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44e56f
jmp 0x40946b
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
cmp edi, dword [esi + 0x7c]
jae 0x44b577
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x38], eax
mov edx, edi
je 0x44e67b
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e67b
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx ecx, byte [eax*8 + 0x4b03d2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], ecx
cmp edx, eax
jae 0x44e74d
mov dword [ebp - 0x38], edx
mov ebx, edx
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x34], 1
je 0x44e6f1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44e6f1
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 + 0x4c0f20]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b2c20]
movzx ecx, byte [eax*8 + 0x4b03d2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c31d0], eax
mov esi, dword [ebp + 0x10]
je 0x44e747
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 0x44e6b2
jmp 0x44e74a
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x44e776
cmp edx, eax
jb 0x44e776
cmp edx, dword [esi + 0x88]
jbe 0x44e776
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
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.004092a0
add esp, 0x14
test eax, eax
je 0x44e629
jmp 0x40946b
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x409932
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x409932
cmp edx, 1
je case.0x409326.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x409326.157
jmp 0x409932
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 0x40994f
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
cmp esi, 0xf
ja case.default.0x448ba9
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
jmp dword [esi*4 + 0x44f521]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp ecx, 0xd
ja 0x44e85d
je 0x44e842
cmp ecx, 0xa
je case.0x44e817.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x409326.157
jmp 0x44e874
cmp edi, dword [esi + 0x7c]
jae case.0x44e817.13
cmp word [edi], 0xa
jne case.0x44e817.13
lea edi, [eax + 2]
jmp case.0x44e817.13
cmp ecx, 0x85
je 0x44e874
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
cmp dword [esi + 0x6c], 0
jne case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x180e
ja 0x44e8c7
je case.0x409326.157
cmp ecx, 0xa0
ja 0x44e8b6
je case.0x409326.157
cmp ecx, 9
je case.0x409326.157
cmp ecx, 0x20
je case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x1680
je case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x205f
ja 0x44e8fe
je case.0x409326.157
cmp ecx, 0x2000
jb case.0x44e817.13
cmp ecx, 0x200a
jbe case.0x409326.157
cmp ecx, 0x202f
je case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x3000
je case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x180e
ja 0x44e953
je case.0x44e817.13
cmp ecx, 0xa0
ja 0x44e942
je case.0x44e817.13
cmp ecx, 9
je case.0x44e817.13
cmp ecx, 0x20
jne case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x1680
jne case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x205f
ja 0x44e98a
je case.0x44e817.13
cmp ecx, 0x2000
jb case.0x409326.157
cmp ecx, 0x200a
jbe case.0x44e817.13
cmp ecx, 0x202f
jne case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x3000
jne case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x85
ja 0x44e9c0
je case.0x409326.157
cmp ecx, 0xa
jb case.0x44e817.13
cmp ecx, 0xd
jbe case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x2028
jb case.0x44e817.13
cmp ecx, 0x2029
jbe case.0x409326.157
jmp case.0x44e817.13
cmp ecx, 0x85
ja 0x44e9fc
je case.0x44e817.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x409326.157
jmp case.0x44e817.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
jmp case.0x44e817.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44e817.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x409326.157
jmp case.0x44e817.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x409326.157
jmp case.0x44e817.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44e817.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x409326.157
jmp case.0x44e817.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x409326.157
jmp case.0x44e817.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x44e817.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x409326.157
jmp case.0x44e817.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x409326.157
jmp case.0x44e817.13
cmp eax, dword [esi + 0x7c]
jb case.0x44e817.13
cmp dword [esi + 0x18], 0
jne case.0x44e817.13
cmp dword [esi + 0x1c], 2
jne case.0x44e817.13
movzx eax, word [esi + 0x34]
cmp edx, eax
jne case.0x44e817.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44eef1
jmp case.0x44e817.13
test eax, eax
jne 0x40946b
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x409326.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44eec4
cmp dword [ebp - 0x20], 0xc
jne 0x44eb8b
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44eb5f
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.004075fb
add esp, 0xc
test eax, eax
jne case.0x409326.157
jmp 0x44eb8b
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44eb8b
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44eb8b
cmp edx, 1
je case.0x409326.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x409326.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.0x448ba9
jmp dword [eax*4 + 0x44f561]
cmp dword [esi + 0x8c], 0
je case.0x44eba7.13
cmp edi, dword [esi + 0x7c]
jb case.0x44eba7.13
cmp dword [esi + 0x18], 0
jne case.0x44eba7.13
cmp dword [esi + 0x1c], 2
jne case.0x44eba7.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44eba7.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x44eba7.13
jmp 0x44eef1
cmp ecx, 0xd
ja 0x44ec36
je 0x44ec1b
cmp ecx, 0xa
je case.0x44eba7.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x409326.157
jmp 0x44ec4d
cmp edi, dword [esi + 0x7c]
jae case.0x44eba7.13
cmp word [edi], 0xa
jne case.0x44eba7.13
add edi, 2
jmp case.0x44eba7.13
cmp ecx, 0x85
je 0x44ec4d
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
cmp dword [esi + 0x6c], 0
jne case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x180e
ja 0x44eca0
je case.0x409326.157
cmp ecx, 0xa0
ja 0x44ec8f
je case.0x409326.157
cmp ecx, 9
je case.0x409326.157
cmp ecx, 0x20
je case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x1680
je case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x205f
ja 0x44ecd7
je case.0x409326.157
cmp ecx, 0x2000
jb case.0x44eba7.13
cmp ecx, 0x200a
jbe case.0x409326.157
cmp ecx, 0x202f
je case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x3000
je case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x180e
ja 0x44ed2c
je case.0x44eba7.13
cmp ecx, 0xa0
ja 0x44ed1b
je case.0x44eba7.13
cmp ecx, 9
je case.0x44eba7.13
cmp ecx, 0x20
jne case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x1680
jne case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x205f
ja 0x44ed63
je case.0x44eba7.13
cmp ecx, 0x2000
jb case.0x409326.157
cmp ecx, 0x200a
jbe case.0x44eba7.13
cmp ecx, 0x202f
jne case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x3000
jne case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x85
ja 0x44ed99
je case.0x409326.157
cmp ecx, 0xa
jb case.0x44eba7.13
cmp ecx, 0xd
jbe case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x2028
jb case.0x44eba7.13
cmp ecx, 0x2029
jbe case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0x85
ja 0x44edd5
je case.0x44eba7.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x409326.157
jmp case.0x44eba7.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409326.157
jmp case.0x44eba7.13
cmp ecx, 0xff
ja case.0x44eba7.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x409326.157
jmp case.0x44eba7.13
mov eax, 0xff
cmp word [ebp - 0x38], ax
ja case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x409326.157
jmp case.0x44eba7.13
mov eax, 0xff
cmp dx, ax
ja case.0x44eba7.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x409326.157
jmp case.0x44eba7.13
mov eax, 0xff
cmp dx, ax
ja case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x409326.157
jmp case.0x44eba7.13
mov eax, 0xff
cmp dx, ax
ja case.0x44eba7.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x409326.157
jmp case.0x44eba7.13
mov eax, 0xff
cmp dx, ax
ja case.0x409326.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x409326.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.004092a0
add esp, 0x14
test eax, eax
je 0x44eb20
jmp 0x40946b
mov eax, 0xfffffff2
jmp 0x40946b
cmp dword [esi + 0x8c], 0
je case.0x409326.157
cmp edi, dword [esi + 0x88]
jbe case.0x409326.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x409326.157
mov eax, 0xfffffff4
jmp 0x40946b
mov dword [esi + 0x9c], 2
jmp 0x4099fc
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44ef74
cmp word [ebx], 0x77
je 0x44ef25
cmp word [eax], 0x77
jne 0x44ef74
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 0x4099f0
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 0x40946b
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 + 0x4c3120]
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.004092a0
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x44efcd
cmp eax, 0xfffffc19
jne 0x44efe1
cmp dword [esi + 0xb0], 0
jne 0x44efe1
mov dword [esi + 0xb0], edi
jmp 0x40946b
cmp eax, 0xfffffc1f
jne 0x40946b
mov edx, dword [esi + 0x80]
mov ecx, edi
call fcn.0049c038
test eax, eax
jne 0x44ef74
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x40946b
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 + 0x4c3120]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov eax, 0xfffffc1c
jmp 0x40946b
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 + 0x4c3120]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.004092a0
add esp, 0x14
test eax, eax
je 0x44f0dd
jmp 0x40946b
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 + 0x4c3120]
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.004092a0
add esp, 0x14
cmp eax, 1
je 0x44f0c6
cmp eax, 0xfffffc19
jne 0x44f0d5
cmp dword [esi + 0xb0], 0
jne 0x44f0d5
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x40946b
mov eax, 0xfffffc1d
jmp 0x40946b
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4c3120]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.004092a0
add esp, 0x14
test eax, eax
jne 0x40946b
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x40946b
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 + 0x4c3120]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.004092a0
add esp, 0x14
test eax, eax
je 0x44f1bb
jmp 0x40946b
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 + 0x4c3120]
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.004092a0
add esp, 0x14
cmp eax, 1
je 0x44f1a4
cmp eax, 0xfffffc19
jne 0x44f1b3
cmp dword [esi + 0xb0], 0
jne 0x44f1b3
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x40946b
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x40946b
cmp edi, 0x9f
je 0x409449
cmp dword [esi + 0xa8], 0
jne 0x409449
cmp dword [esi + 0x60], 0
jne case.0x409326.157
cmp dword [esi + 0x64], 0
je 0x409449
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x409326.157
jmp 0x409449
mov eax, 0xfffffc19
jmp 0x40946b
mov eax, 0xfffffffb
jmp 0x40946b
mov eax, 0xffffffeb
jmp 0x40946b
inc eax
mov dword [esi], eax
mov eax, 0xfffffff8
jmp 0x40946b