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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
mov ebx, edx
mov eax, ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], eax
push esi
push edi
test ebx, ebx
je 0x446848
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov eax, dword [esi]
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0x24], ecx
cmp eax, dword [esi + 4]
jae 0x44e80a
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x41095a
cmp dword [esi + 0x9c], 2
je 0x446879
movzx ecx, word [ebx]
mov edi, ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x20], 0
cmp edi, 0xa1
ja case.0x40ffa5.98
movzx eax, byte [edi + 0x410ab0]
jmp dword [eax*4 + 0x410964]
movzx eax, word [ebx + 2]
mov edi, ebx
add eax, eax
mov ecx, 0x88
sub edi, eax
mov dword [ebp - 0x1c], edi
movzx eax, word [edi]
cmp ax, cx
jae 0x44749e
mov ecx, 0x81
cmp ax, cx
je 0x44749e
xor ecx, ecx
mov dword [ebp - 0x28], ecx
cmp eax, 0x7d
jb 0x40fff3
mov dword [ebp - 0x14], 0x80
cmp ax, word [ebp - 0x14]
jbe 0x44cb4e
mov dword [ebp - 0x14], 0x82
cmp ax, word [ebp - 0x14]
je 0x44cb4e
mov dword [ebp - 0x14], 0x85
cmp ax, word [ebp - 0x14]
je 0x410370
mov dword [ebp - 0x14], 0x8a
cmp ax, word [ebp - 0x14]
je 0x410370
mov dword [ebp - 0x14], 0x86
cmp ax, word [ebp - 0x14]
je 0x410370
mov dword [ebp - 0x14], 0x8b
cmp ax, word [ebp - 0x14]
je 0x410370
cmp word [ebx], 0x78
jne 0x447510
mov eax, 0x81
cmp word [edi], ax
je 0x44cb19
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x44e7c4
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x410946
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x88
jae 0x44c9ae
cmp edi, 0x81
je 0x44c9ae
cmp dword [esi + 0x70], 0
jne 0x410862
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x410862
movzx eax, word [ebx]
movzx eax, byte [eax + 0x4a6440]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x24], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0x40ff63
jmp 0x44e80a
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], edi
cmp eax, edi
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x41012e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x4483ce
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x410150
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f22]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x4101eb
mov ebx, dword [ebp - 0x2c]
mov esi, eax
cmp dword [ebp - 0x24], 0
mov edi, 1
movzx ecx, word [esi]
je 0x410191
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x4483f3
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x4101b3
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x14]
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x4a64f0], eax
jne 0x4102e7
mov ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
jne 0x448417
add ebx, 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40ff7f
movzx ecx, word [ebx + 0x22]
lea eax, [ebx + 2]
add ebx, 0x22
mov dword [ebp - 0x28], eax
mov edx, ecx
mov dword [ebp - 0x30], ebx
mov eax, edx
cmp eax, 0x6d
jle 0x410722
mov edx, dword [ebp - 0x20]
mov ecx, 1
mov eax, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x24], 0
je 0x4486dc
mov dword [ebp - 0x2c], 1
cmp eax, 1
jl 0x410781
lea ecx, [ecx]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x14], ecx
cmp eax, 0xd800
je 0x4486a6
cmp ecx, 0xff
ja 0x4486ce
mov esi, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x14]
shr ecx, 3
test byte [ecx + esi], al
mov esi, dword [ebp + 0x10]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, dword [ebp - 0x10]
jle 0x410250
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], ecx
je 0x4101fe
test edx, edx
jne 0x44ccff
mov ecx, eax
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x24], edx
je 0x4487af
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], ecx
jge 0x4107e0
jmp 0x410793
lea esi, [esi + edi*2]
mov dword [ebp - 0x14], ecx
cmp esi, ebx
jb 0x410171
jmp 0x4101dc
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
cmp dword [ebp - 0x24], 0
je 0x448be0
movzx edi, word [ebx + 2]
add ebx, 2
mov eax, edi
mov edx, 1
and eax, 0xfc00
cmp eax, 0xd800
je 0x448b2d
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp edi, 0x80
jae 0x448b51
cmp ecx, 0xff
ja 0x41034f
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edi]
cmp eax, ecx
jne case.0x40ffa5.157
add ebx, 2
add dword [ebp - 8], 2
mov edx, dword [ebp - 8]
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
movzx ecx, word [edi + 4]
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x2c], ecx
lea edi, [ecx + ecx]
mov dword [ebp - 0x14], edi
test eax, eax
jne 0x4474b4
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, ecx
mov dword [esi + 0x94], eax
cmp edi, dword [esi + 0x14]
jge 0x4474d9
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jg 0x4474e9
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x2c]
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
cmp dword [ebp + 0xc], edi
jg 0x4103de
lea eax, [edi + 2]
mov dword [ebp + 0xc], eax
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
jmp 0x410048
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], eax
je 0x410419
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448199
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x41043f
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x4a6530]
cmp eax, 9
jne 0x4481c1
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x4a52c0]
lea eax, [eax*4 + 0x4a52c0]
cmp edx, ecx
jb 0x4483c0
lea eax, [eax + 4]
cmp edx, ecx
je 0x410482
mov ecx, dword [eax]
cmp edx, ecx
jae 0x410470
jmp 0x4483c0
cmp edi, 0x10
jne case.0x40ffa5.157
mov edx, dword [ebp - 8]
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
cmp dword [ebp - 0x24], 0
je 0x448afe
mov ax, word [ebx + 2]
add ebx, 2
mov ecx, 0xfc00
mov dword [ebp - 0x30], ebx
and ax, cx
mov edi, 1
mov ecx, 0xd800
cmp ax, cx
je 0x410927
mov eax, dword [esi + 0x7c]
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp edi, eax
jg 0x44cf2d
test edi, edi
jle 0x4101fe
mov cx, word [ebx]
dec edi
mov ax, word [edx]
add ebx, 2
add edx, 2
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], edx
cmp cx, ax
jne case.0x40ffa5.157
test edi, edi
jle 0x4101fe
jmp 0x4104e2
movzx edx, word [ebx + 4]
mov dword [ebp - 0x2c], edx
lea eax, [edx + edx]
mov dword [ebp - 0x14], eax
cmp eax, dword [esi + 0x14]
jge case.0x40ffa5.129
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + edx*4 + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ecx], eax
jmp 0x410560
cmp edi, 0x88
jae 0x44e4b7
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 + 0x4a6440]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x44e50e
cmp edx, 0xfffffc20
je 0x44e4c6
test edx, edx
je 0x44e4eb
mov eax, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edi - 0x55]
add ebx, 2
test cl, 1
je 0x41093f
mov eax, 1
movsx edi, byte [ecx + 0x4a642c]
movsx edx, byte [ecx + 0x4a6420]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], edi
test edi, edi
jne 0x4105fd
mov dword [ebp - 0x18], bind
movzx edi, word [ebx]
add ebx, 2
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], ebx
cmp edi, 0x10
je 0x449998
cmp edi, 0xf
je 0x44998f
or ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
test edx, edx
jg 0x4499b7
mov edi, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x4101fe
test eax, eax
je 0x44af39
test ecx, ecx
jns 0x44d31c
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.0040ff20
add esp, 0x14
cmp dword [ebp - 0x1c], 0x16
je 0x44dc4c
cmp dword [ebp - 0x24], 0
je 0x44e124
test eax, eax
jne 0x41009b
lea esp, [esp]
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40ffa5.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf15
cmp dword [ebp - 0x1c], 0xc
jne 0x4106c5
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44ddd5
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
mov edx, dword [ebp - 0xc]
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44de0e
mov eax, dword [ebp - 0x1c]
cmp eax, 0xc
jne 0x44de2f
cmp dword [esi + 0x8c], 0
jne 0x44e0e2
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
jmp 0x410680
sub eax, 0x62
cmp eax, 0xb
ja case.default.0x410735
movzx eax, byte [eax + 0x410b5c]
jmp dword [eax*4 + 0x410b54]
lea eax, [edx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jb 0x4108d9
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x34], 1
movsx ecx, byte [eax + 0x4a6420]
mov dword [ebp - 0x10], ecx
movsx ecx, byte [eax + 0x4a642c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x410233
mov ecx, bind
jmp 0x410230
mov eax, dword [ebp - 8]
jmp 0x4102b7
mov eax, dword [ebp - 8]
mov ecx, 1
mov dword [ebp - 0x14], ecx
cmp eax, dword [esi + 0x7c]
jae 0x448782
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44874a
cmp edx, 0xff
ja 0x448774
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x28]
test byte [edx + ecx], al
jne 0x4108e4
cmp dword [ebp - 0x34], 0
jne 0x4101fe
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
jmp 0x44ccb5
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x40ffa5.119
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
jmp 0x44718f
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x2c], 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 + 0x4a6440]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x44c9bd
test edx, edx
jne 0x44e538
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
jne case.0x40ffa5.157
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x94], eax
jmp case.0x40ffa5.129
test al, 1
jne 0x41091d
xor edx, edx
jmp 0x410758
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x1c]
jl 0x410790
jmp 0x4107e0
add ebx, 2
jmp 0x4471e8
mov eax, dword [ebp - 8]
jmp 0x447534
mov edi, dword [ebp - 0x24]
jmp 0x447b41
mov edx, 1
jmp 0x410758
mov edi, 2
jmp 0x4104c8
xor ecx, ecx
jmp 0x448c73
xor ecx, ecx
jmp 0x449319
xor eax, eax
jmp 0x4105db
mov eax, 0xfffffc19
jmp 0x41009b
mov eax, 0xfffffffb
jmp 0x41009b
mov eax, 0xffffffeb
jmp 0x41009b
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x44686a
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.0040ff20
add esp, 0x14
jmp 0x41009b
sub ecx, eax
test ecx, ecx
jle 0x446872
neg ecx
mov eax, ecx
jmp 0x41009b
mov eax, dword [ebp - 8]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
mov dword [ebp + 0x14], eax
mov dword [esi + 0x9c], 0
jmp 0x4101fe
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x44c9e9
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x4a6440]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0xb0]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x2c], 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.0040ff20
add esp, 0x14
cmp eax, 1
je 0x446941
cmp eax, 0xfffffc20
jne 0x446921
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x41009b
cmp word [ebx], 0x77
je 0x446929
cmp word [ecx], 0x77
jne 0x41009b
jmp 0x446929
test eax, eax
jne 0x41009b
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x4468d3
mov ecx, dword [ebp + 8]
jmp 0x44694a
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x446960
cmp eax, 0x77
jne case.0x40ffa5.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446960
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 0x446f0b
cmp eax, dword [ebp - 0x2c]
jne 0x44c76c
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
mov dword [ebp - 0x28], 0
jmp 0x447223
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [ebp - 0x28], eax
cmp word [ebx], 0x76
jne 0x446a88
cmp dword [0x4c7524], 0
je 0x446a7f
mov dword [ebp - 0x9c], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x90], eax
mov eax, dword [esi + 0x7c]
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
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x84], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x74], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x80], eax
movzx eax, word [esi + 0x94]
mov dword [ebp - 0x7c], eax
test eax, eax
jne 0x446a49
mov dword [ebp - 0x7c], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x78], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x9c]
push eax
call dword [0x4c7524]
add esp, 4
test eax, eax
jg case.0x40ffa5.157
js 0x41009b
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
add ebx, 8
sub eax, 4
mov dword [ebp - 0x28], eax
movzx eax, word [ebx]
xor ecx, ecx
mov dword [ebp - 0x34], eax
add eax, 0xffffff73
mov dword [ebp - 0x1c], ecx
cmp eax, 4
ja case.default.0x446aa1
jmp dword [eax*4 + 0x44e818]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x446c35
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x446b45
cmp eax, dword [ecx + 4]
je 0x446b45
xor ecx, ecx
jmp case.0x446aa1.145
cmp dword [esi + 0xa8], ecx
je case.0x446aa1.145
movzx ecx, word [ebx + 2]
imul ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x30]
lea eax, [eax + ecx*2]
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x2c], eax
test ecx, ecx
jle 0x446c35
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x1c], 0
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
dec ecx
movzx eax, word [eax]
cmp eax, dword [ebp - 0x14]
je 0x446b45
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x24]
lea edx, [edx + eax*2]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 8]
test ecx, ecx
jg 0x446b0d
jmp 0x446c35
movzx ecx, word [ebx + 2]
add ecx, ecx
cmp ecx, dword [ebp + 0xc]
jge 0x446aca
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x446aca
mov ecx, 1
jmp 0x446c17
movzx ecx, word [ebx + 2]
imul ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x30]
lea ecx, [eax + ecx*2]
movzx eax, word [ebx + 4]
mov dword [ebp - 0x14], ecx
test eax, eax
jle 0x446c35
mov dword [ebp - 0x1c], 0
movzx ecx, word [ecx]
dec eax
add ecx, ecx
mov dword [ebp - 0x2c], eax
cmp ecx, dword [ebp + 0xc]
jge 0x446b8a
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x446b45
mov eax, dword [esi + 0x24]
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], ecx
test eax, eax
jg 0x446b73
jmp 0x446c35
mov ecx, dword [ebp - 8]
mov edx, ebx
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.0040ff20
add esp, 0x14
cmp eax, 1
jne 0x446c23
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x446bda
mov dword [ebp + 0xc], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
mov dword [ebp - 0x1c], 1
jne 0x446bfd
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x446bef
mov eax, dword [ebp - 0x34]
mov ecx, 2
movzx eax, byte [eax + 0x4a6440]
sub ecx, eax
lea ebx, [edx + ecx*2]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + 0x4a6440]
jmp 0x446c3b
test eax, eax
je 0x446c32
cmp eax, 0xfffffc20
jne 0x41009b
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x446c50
cmp word [ebx - 4], 0x77
jne 0x40ff7f
cmp edi, 0x8c
jne 0x4100e6
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.0040ff20
add esp, 0x14
jmp 0x41009b
movzx ecx, word [ebx + 2]
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
mov dword [ebp - 0x14], ecx
or eax, ecx
lea edi, [ecx + ecx]
mov dword [esi + 0x94], eax
cmp edi, dword [esi + 0x14]
jl 0x446cb6
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x446ce2
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x14]
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
cmp dword [ebp + 0xc], edi
jg 0x446ce2
lea eax, [edi + 2]
mov dword [ebp + 0xc], eax
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x14], eax
jne 0x446d10
mov edi, 1
mov dword [esi + 0x9c], 0
jmp 0x446d12
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.0040ff20
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x446d8b
cmp ecx, 0xfffffc19
je 0x446d8b
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x446d73
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446872
cmp word [ebx], 0x77
je 0x446d7b
cmp word [eax], 0x77
jne 0x446872
jmp 0x446d7b
test ecx, ecx
jne 0x446872
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446d12
jmp 0x446d94
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x40ffa5.157
test edi, edi
jne 0x410096
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446da6
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x4101fe
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x446dea
mov dword [ebp - 0x14], 1
mov dword [esi + 0x9c], 0
jmp 0x446df1
mov dword [ebp - 0x14], 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.0040ff20
mov ecx, eax
mov dword [esi + 0xb0], edi
add esp, 0x14
cmp ecx, 0xfffffc20
jg 0x446e4a
jne 0x446e5d
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446e78
cmp word [ebx], 0x77
je 0x446e3a
cmp word [eax], 0x77
jne 0x446e78
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446df1
jmp 0x446e86
mov eax, ecx
sub eax, 0
je 0x446e3a
dec eax
je case.0x40ffa5.157
jmp 0x446872
cmp ecx, 0xfffffc19
je case.0x40ffa5.157
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x446872
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446e78
cmp dword [ebp - 0x14], 0
jne 0x410096
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
cmp dword [ebp - 0x24], 0
je 0x446ee0
movzx ecx, word [ebx + 2]
test ecx, ecx
jle 0x446efa
mov eax, dword [ebp - 8]
dec ecx
sub eax, 2
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x40ffa5.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x446eda
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x446ea9
jmp 0x446efd
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.0x40ffa5.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x446f0b
mov dword [esi + 0x88], eax
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
cmp dword [0x4c7524], 0
je 0x446fe9
mov dword [ebp - 0xd0], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0xc4], eax
mov eax, dword [esi + 0x7c]
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
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xb8], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0xa8], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb4], eax
movzx eax, word [esi + 0x94]
mov dword [ebp - 0xb0], eax
test eax, eax
jne 0x446fb0
mov dword [ebp - 0xb0], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0xac], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xd0]
push eax
call dword [0x4c7524]
add esp, 4
test eax, eax
jg case.0x40ffa5.157
js 0x41009b
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea edi, [ecx + eax*2]
mov dword [ebp - 0x14], edi
cmp edi, ecx
jne 0x447009
xor edx, edx
jmp 0x44700d
movzx edx, word [edi + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x447034
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x44702e
cmp eax, dword [ecx + 0x14]
jne 0x44702e
mov eax, 0xffffffe6
jmp 0x41009b
mov ecx, dword [ecx]
test ecx, ecx
jne 0x44701a
mov dword [ebp - 0x50], edx
add ebx, 4
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x54]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x48], ecx
cmp ecx, 0x1e
jg 0x447074
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x4c], eax
jmp 0x447093
lea eax, [ecx*4]
push eax
call dword [0x4a643c]
add esp, 4
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x44ca83
mov ecx, dword [ebp - 0x48]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00420fa0
mov eax, 0x88
add esp, 0xc
cmp word [edi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x4470bf
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 [edi]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x4a6440]
push dword [ebp + 8]
lea edx, [edi + eax*2]
call fcn.0040ff20
mov ecx, dword [ebp - 0x48]
add esp, 0x14
shl ecx, 2
mov edi, eax
push ecx
push dword [ebp - 0x4c]
push dword [esi + 0xc]
call fcn.00420fa0
mov eax, dword [ebp - 0x44]
add esp, 0xc
mov dword [esi + 0x94], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 0xa8], eax
cmp edi, 1
je 0x447161
cmp edi, 0xfffffc19
je 0x447161
cmp edi, 0xfffffc1c
jl 0x447130
cmp edi, 0xfffffc20
jle case.0x40ffa5.157
test edi, edi
jne 0x44ca5a
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x54]
mov dword [esi + 0xa8], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
mov dword [ebp - 0x14], edi
jne 0x44ca31
mov eax, dword [ebp - 0x2c]
jmp 0x4470b1
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x447178
push eax
call dword [0x4a6438]
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x4101fe
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44718f
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
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 0x4471b0
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
jmp 0x4101fe
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4471e8
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x28], 1
cmp edi, 0x86
je 0x447223
cmp edi, 0x8b
jne 0x4473a4
movzx edx, word [ebx + 4]
mov dword [ebp - 0x2c], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge case.0x40ffa5.132
xor ecx, ecx
shl eax, 2
mov dword [ebp - 0x1c], ecx
mov ecx, ebx
sub ecx, dword [esi + 0x74]
sar ecx, 1
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x14], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp - 8]
sub edx, dword [esi + 0x78]
sub ecx, dword [ebp - 0x2c]
mov eax, dword [esi + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp edi, 0x88
jb 0x447296
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 + 0x4a6440]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x447301
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x34]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x74]
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x14], eax
mov ecx, 1
mov eax, dword [esi + 0x80]
mov dword [ebp - 0x1c], ecx
mov dword [ebp + 8], eax
jmp 0x447270
cmp ecx, 0xfffffc20
jne 0x44732e
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446872
cmp word [ebx], 0x77
je 0x447336
cmp word [eax], 0x77
jne 0x446872
jmp 0x447336
test ecx, ecx
jne 0x446872
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447270
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x447380
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x20]
mov dword [ecx + eax], edx
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x30]
mov dword [ecx + eax + 4], edx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
sub ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x28], 0
jne 0x446f0b
test eax, eax
je case.0x40ffa5.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
mov dword [ebp - 0x28], 0
mov eax, ebx
mov dword [ebp - 0x14], 0
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
cmp edi, 0x88
jb 0x4473d0
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 + 0x4a6440]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x44742e
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x14], 1
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x4473be
cmp ecx, 0xfffffc20
jne 0x44745b
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446872
cmp word [ebx], 0x77
je 0x447463
cmp word [eax], 0x77
jne 0x446872
jmp 0x447463
test ecx, ecx
jne 0x446872
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x44747f
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp 0x4473be
cmp dword [ebp - 0x14], 0
jne 0x446f0b
cmp dword [ebp - 0x28], 0
je case.0x40ffa5.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [edx]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp - 8]
jmp 0x40ffda
cmp dword [eax + 4], ecx
jne 0x41038b
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x41009b
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x4103de
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x4103b2
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 - 0x14]
jmp 0x4103b2
mov eax, dword [ebp - 8]
cmp eax, ecx
jne 0x44c7b6
mov edx, eax
jmp 0x410052
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x447534
cmp eax, dword [esi + 0x78]
je case.0x40ffa5.157
cmp eax, dword [esi + 0x78]
jne case.0x40ffa5.157
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x44755a
cmp eax, dword [esi + 0x78]
je case.0x40ffa5.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x4101f8
cmp eax, dword [esi + 0x7c]
je case.0x40ffa5.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44759d
cmp eax, ecx
jbe case.0x40ffa5.157
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0048ef53
add esp, 0xc
test eax, eax
je case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [esi + 0x1c]
lea edi, [eax + eax]
lea eax, [edi + ecx]
cmp dword [ebp - 8], eax
jb case.0x40ffa5.157
mov ecx, dword [ebp - 8]
sub ecx, edi
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x40ffa5.157
cmp dword [esi + 0x1c], 1
je 0x4101f8
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x40ffa5.157
jmp 0x4101f8
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x40ffa5.157
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4476d3
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44769c
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne 0x4101f8
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x40ffa5.157
cmp dword [esi + 0x18], 0
jne case.0x40ffa5.157
cmp dword [esi + 0x1c], 2
jne case.0x40ffa5.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x40ffa5.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40ffa5.157
mov eax, 0xfffffff4
jmp 0x41009b
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447641
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44763e
cmp edx, 1
je 0x4101f8
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44763e
jmp 0x4101f8
cmp dword [esi + 0x4c], 0
jne case.0x40ffa5.157
cmp dword [esi + 0x8c], 0
je 0x4101f8
cmp eax, dword [esi + 0x88]
jbe 0x4101f8
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x4101fe
cmp dword [esi + 0x4c], 0
jne case.0x40ffa5.157
cmp dword [esi + 0x5c], 0
je case.0x40ffa5.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x40ffa5.157
jmp 0x4476dd
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4476dd
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x44775b
push dword [ebp - 0x24]
push edi
push ecx
mov ecx, eax
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne 0x447790
jmp 0x44763e
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447641
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44763e
cmp edx, 1
je 0x447790
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44763e
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 0x447641
jmp 0x4476dd
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 8]
je 0x44795c
cmp eax, dword [esi + 0x78]
je 0x447894
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4477db
sub edx, 2
cmp edx, dword [esi + 0x88]
jae 0x4477e9
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447814
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [esi + 0x58], 0
je 0x447876
cmp ecx, 0x5f
jne 0x447827
mov eax, dword [ebp - 8]
lea edi, [ecx - 0x5e]
jmp 0x447896
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x447849
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x44786c
cmp eax, 3
jne 0x447891
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x447896
cmp ecx, 0x100
jae 0x447891
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x447891
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x447896
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x4478fe
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4478c9
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
cmp dword [esi + 0x58], 0
je 0x447945
cmp ecx, 0x5f
je 0x447a86
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
js 0x447a32
jmp 0x447a37
cmp dword [esi + 0x8c], 0
je 0x447923
cmp eax, dword [esi + 0x88]
jbe 0x447923
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
xor ecx, ecx
mov ax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp ax, 5
jne 0x447a90
cmp ecx, edi
je case.0x40ffa5.157
jmp 0x4101fe
cmp ecx, 0x100
jae 0x447923
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x447a86
jmp 0x447923
cmp eax, dword [esi + 0x78]
je 0x4479fc
cmp eax, dword [esi + 0x88]
ja 0x447979
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x4479dc
cmp ecx, 0x5f
jne 0x44798d
lea edi, [ecx - 0x5e]
jmp 0x4479fe
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x4479af
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x4479d2
cmp eax, 3
jne 0x4479f9
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4479fe
mov edx, 0xff
cmp cx, dx
ja 0x4479fc
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x4479f9
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4479fe
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x4478fe
cmp dword [esi + 0x58], 0
je 0x447a66
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x447a86
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x447a37
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x447a86
cmp eax, 3
jne 0x447923
lea ecx, [eax - 2]
jmp 0x447925
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x447923
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x447923
mov ecx, 1
jmp 0x447925
cmp ecx, edi
jne case.0x40ffa5.157
jmp 0x4101fe
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x447acc
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x24]
cmp eax, ecx
jae 0x447b04
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
jmp 0x447b01
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447afe
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447afe
cmp edx, 1
je case.0x40ffa5.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x40ffa5.157
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x447b44
add eax, 2
cmp eax, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
jb 0x447b44
cmp dword [esi + 0x18], 0
jne 0x447b44
cmp dword [esi + 0x1c], 2
jne 0x447b44
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447b41
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x44cb6e
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x4101f8
cmp eax, ecx
jae 0x4101f8
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4101f8
add dword [ebp - 8], 2
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
add eax, 2
mov dword [ebp - 8], eax
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447be7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447be7
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, 0x100
jae 0x4101f8
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447c4e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447c4e
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, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447cb5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447cb5
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, 0x100
jae 0x4101f8
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447d1c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447d1c
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, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447d83
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447d83
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, 0x100
jae 0x4101f8
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447dea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447dea
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, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40ffa5.157
jmp 0x4101f8
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447e56
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x447e56
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
cmp ecx, 0xd
ja 0x447ec2
je 0x447e77
cmp ecx, 0xa
je 0x4101f8
jbe case.0x40ffa5.157
cmp ecx, 0xc
ja case.0x40ffa5.157
jmp 0x447ed9
cmp eax, edx
jb 0x447ead
cmp dword [esi + 0x8c], 0
je 0x4101f8
cmp eax, dword [esi + 0x88]
jbe 0x4101f8
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
jmp 0x4101f8
cmp word [eax], 0xa
jne 0x4101f8
add eax, 2
mov dword [ebp - 8], eax
jmp 0x4101f8
cmp ecx, 0x85
je 0x447ed9
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447f31
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447f31
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 0x447f75
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x447f64
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp 0x4101f8
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp 0x4101f8
cmp ecx, 0x205f
ja 0x447fac
je case.0x40ffa5.157
cmp ecx, 0x2000
jb 0x4101f8
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp 0x4101f8
cmp ecx, 0x3000
je case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x448006
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448006
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 0x44804a
je 0x4101f8
cmp ecx, 0xa0
ja 0x448039
je 0x4101f8
cmp ecx, 9
je 0x4101f8
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp 0x4101f8
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp 0x4101f8
cmp ecx, 0x205f
ja 0x448081
je 0x4101f8
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe 0x4101f8
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp 0x4101f8
cmp ecx, 0x3000
jne case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x4480db
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4480db
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 0x448100
je case.0x40ffa5.157
cmp ecx, 0xa
jb 0x4101f8
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp 0x4101f8
cmp ecx, 0x2028
jb 0x4101f8
cmp ecx, 0x2029
jbe case.0x40ffa5.157
jmp 0x4101f8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x448166
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448166
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 0x448185
je 0x4101f8
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp 0x4101f8
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x4101f8
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 dword [ebp - 0x14], ecx
jmp 0x410419
cmp eax, 0xa
ja case.default.0x4481ca
jmp dword [eax*4 + 0x44e82c]
mov al, byte [ecx*8 + 0x4a3f21]
cmp al, 9
je 0x4481f6
cmp al, 5
je 0x4481f6
cmp al, 8
je 0x4481f6
xor ecx, ecx
jmp 0x448212
cmp edi, 0xf
je case.0x40ffa5.157
jmp 0x41048b
mov ecx, 1
jmp 0x448212
movzx eax, byte [ecx*8 + 0x4a3f21]
xor ecx, ecx
cmp dword [eax*4 + 0x4b7e70], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x40ffa5.157
jmp 0x41048b
movzx ecx, byte [ecx*8 + 0x4a3f21]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x4b7e70]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x40ffa5.157
jmp 0x41048b
movzx eax, byte [ecx*8 + 0x4a3f21]
jmp 0x448266
movzx eax, byte [ecx*8 + 0x4a3f20]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x40ffa5.157
jmp 0x41048b
movzx eax, byte [ecx*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x4481f6
cmp eax, 3
je 0x4481f6
xor ecx, ecx
jmp 0x448212
cmp edx, 0x180e
ja 0x448305
je case.0x4481ca.0
cmp edx, 0x85
ja 0x4482e8
je case.0x4481ca.0
cmp edx, 9
jb case.0x448329.8203
cmp edx, 0xd
jbe case.0x4481ca.0
cmp edx, 0x20
je case.0x4481ca.0
jmp case.0x448329.8203
cmp edx, 0xa0
je case.0x4481ca.0
cmp edx, 0x1680
je case.0x4481ca.0
jmp case.0x448329.8203
cmp edx, 0x202f
ja 0x448330
je case.0x4481ca.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x448329.8203
movzx eax, byte [edx + 0x44e860]
jmp dword [eax*4 + 0x44e858]
cmp edx, 0x205f
je case.0x4481ca.0
cmp edx, 0x3000
je case.0x4481ca.0
jmp case.0x448329.8203
movzx eax, byte [ecx*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x4481f6
cmp eax, 3
je 0x4481f6
cmp edx, 0x5f
je 0x4481f6
xor ecx, ecx
jmp 0x448212
cmp edx, 0x24
je 0x4481f6
cmp edx, 0x40
je 0x4481f6
cmp edx, 0x60
je 0x4481f6
cmp edx, 0xa0
jb 0x4483ad
cmp edx, 0xd7ff
jbe 0x4481f6
cmp edx, 0xe000
jae 0x4481f6
xor ecx, ecx
jmp 0x448212
cmp edi, 0x10
je case.0x40ffa5.157
jmp 0x41048b
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
jmp 0x41012e
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
jmp 0x410191
cmp eax, edi
jb 0x4101f8
jmp 0x4476ea
movzx ecx, word [ebx + 2]
xor eax, eax
cmp edi, 0x74
sete al
imul ecx, dword [esi + 0x24]
mov dword [ebp - 0x34], eax
movzx eax, word [ebx + 4]
add ebx, 6
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x30], ebx
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x54]
neg ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
sbb ecx, ecx
xor edi, edi
neg ecx
mov dword [ebp - 0x10], edi
dec ecx
mov dword [ebp - 0x1c], ecx
test eax, eax
jle 0x4484e2
dec eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
movzx edi, word [eax]
add edi, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp + 0xc]
jge 0x44848c
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x44848c
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x4484df
mov eax, dword [esi + 0x24]
mov edx, dword [ebp - 0x2c]
lea edx, [edx + eax*2]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 8]
test eax, eax
jg 0x448466
jmp 0x4484e2
xor eax, eax
cmp edi, 0x72
movzx edi, word [ebx + 2]
sete al
add edi, edi
add ebx, 4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x30], ebx
cmp edi, dword [ebp + 0xc]
jge 0x4484d5
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x4484d5
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x4484df
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [ebp - 0x1c], ecx
movzx eax, word [ebx]
mov dword [ebp - 0x14], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0x4484fb
movzx eax, byte [eax + 0x44e894]
jmp dword [eax*4 + 0x44e88c]
mov eax, dword [ebp - 0x14]
add ebx, 2
add eax, 0xffffff9e
mov dword [ebp - 0x30], ebx
movzx edi, al
and edi, 1
mov dword [ebp - 0x20], edi
movsx edi, byte [eax + 0x4a6420]
movsx eax, byte [eax + 0x4a642c]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x448563
mov dword [ebp - 0x28], bind
jmp 0x448563
movzx edi, word [ebx + 2]
xor eax, eax
cmp word [ebx], 0x69
mov dword [ebp - 0x2c], edi
sete al
mov dword [ebp - 0x20], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x44855d
mov dword [ebp - 0x28], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
test ecx, ecx
je 0x40ff7f
jns 0x448575
test edi, edi
je 0x40ff7f
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edi, 1
jl 0x4485b7
push dword [ebp - 0x34]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.0048ece3
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44cc8d
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], ecx
cmp ecx, edi
mov ecx, dword [ebp - 0x1c]
jle 0x448584
mov edx, dword [ebp - 0x28]
cmp edi, edx
je 0x4101fe
cmp dword [ebp - 0x20], 0
je 0x44cbdd
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x2c], eax
jge case.0x40ffa5.157
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
mov edx, edi
push esi
push dword [ebp - 0x1c]
call fcn.0048ece3
add esp, 0xc
test eax, eax
js 0x44cbb7
inc dword [ebp - 0x2c]
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.0040ff20
add esp, 0x14
test eax, eax
je 0x4485f2
jmp 0x41009b
push dword [ebp - 0x34]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.0048ece3
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44cc8d
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x4101fe
xor edx, edx
cmp ecx, 0x69
sete dl
xor eax, eax
cmp ecx, 0x6d
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x1c], ecx
sete al
mov dword [ebp - 0x34], eax
movzx eax, word [ebx + 2]
mov dword [ebp - 0x10], eax
test ecx, ecx
jne 0x44869b
mov ecx, bind
mov dword [ebp - 0x1c], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x410233
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 dword [ebp - 0x14], ecx
jmp 0x41027a
cmp edi, 0x6e
je case.0x40ffa5.157
jmp 0x4102a5
cmp eax, 1
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 8]
jl 0x4102b7
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x448717
cmp edi, 0x6e
je case.0x40ffa5.157
jmp 0x448739
mov esi, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x2c]
shr ecx, 3
test byte [ecx + esi], al
mov esi, dword [ebp + 0x10]
je case.0x40ffa5.157
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x10]
jle 0x4486ef
jmp 0x4102b4
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
mov ecx, 2
mov dword [ebp - 0x14], ecx
movzx eax, word [eax + 2]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
jmp 0x4107b9
cmp edi, 0x6e
je 0x4107e0
jmp 0x4108e7
cmp dword [esi + 0x8c], 0
je 0x4107e0
cmp eax, dword [esi + 0x88]
jbe 0x4107e0
mov dword [esi + 0x68], ecx
cmp dword [esi + 0x8c], ecx
jg 0x447692
jmp 0x4107e0
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], edx
jge 0x448827
mov ecx, dword [ebp - 0x10]
cmp eax, dword [esi + 0x7c]
jae 0x4487ff
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x4487d1
cmp edi, 0x6e
jne 0x4487ee
jmp 0x448824
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x28]
test byte [edx + ecx], al
mov eax, dword [ebp - 8]
je 0x448824
mov ecx, dword [ebp - 0x10]
inc ecx
add eax, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x4487ba
jmp 0x448824
cmp dword [esi + 0x8c], 0
je 0x448824
cmp eax, dword [esi + 0x88]
jbe 0x448824
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov ecx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, ecx
jb case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
sub edi, 2
cmp edi, dword [ebp - 0x20]
jae 0x44883c
jmp 0x41009b
lea eax, [ebx + 4]
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 2]
movzx edi, word [ebx + eax*2]
lea ebx, [ebx + eax*2]
mov ecx, edi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], ecx
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x448898
movzx eax, byte [eax + 0x44e8a4]
jmp dword [eax*4 + 0x44e89c]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x4488bb
mov ecx, dword [ebp - 0x34]
movzx eax, al
and eax, 1
mov dword [ebp - 0x20], eax
jmp 0x4488c6
mov eax, dword [ebp - 0x20]
mov ecx, 1
mov dword [ebp - 0x34], ecx
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
movsx esi, byte [esi + 0x4a63ca]
movsx edi, byte [edi + 0x4a63be]
test esi, esi
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x10], edi
jne 0x448942
mov edx, dword [ebp - 8]
mov dword [ebp - 0x1c], bind
jmp 0x448942
movzx esi, word [ebx + 4]
xor eax, eax
cmp edi, 0x69
mov dword [ebp - 0x1c], esi
sete al
xor ecx, ecx
cmp edi, 0x6d
mov dword [ebp - 0x20], eax
movzx edi, word [ebx + 2]
sete cl
mov dword [ebp - 0x10], edi
test esi, esi
mov dword [ebp - 0x34], ecx
mov esi, dword [ebp + 0x10]
jne 0x448925
mov dword [ebp - 0x1c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x448942
mov eax, dword [ebp - 0x20]
mov edi, 1
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], 1
cmp edi, 1
jl 0x4489c0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x24]
mov dword [ebp - 8], eax
test edx, edx
je 0x448998
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448998
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 - 0x2c]
call fcn.0048f00c
add esp, 4
test eax, eax
je case.0x40ffa5.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, edi
jle 0x44894e
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
cmp edi, dword [ebp - 0x1c]
je 0x40ff7f
test eax, eax
jne 0x44ce6c
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], eax
cmp edi, dword [ebp - 0x1c]
jl 0x4489e6
mov edi, eax
jmp 0x448a83
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp eax, dword [esi + 0x7c]
jae 0x448a58
mov edx, dword [ebp - 0x24]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
test edx, edx
je 0x448a2e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448a2e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
push edx
mov edx, dword [ebp - 0x2c]
call fcn.0048f00c
add esp, 4
test eax, eax
je 0x448a80
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
inc edi
mov dword [ebp - 0x10], edi
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x1c]
jl 0x4489e3
jmp 0x448a7d
cmp dword [esi + 0x8c], 0
je 0x448a7d
cmp eax, dword [esi + 0x88]
jbe 0x448a7d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x4101fe
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, edi
sub edi, 2
cmp eax, dword [ebp - 0x28]
je case.0x40ffa5.157
cmp dword [ebp - 0x24], 0
je 0x448ada
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x448ada
sub edi, 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.0040ff20
add esp, 0x14
test eax, eax
je 0x448aae
jmp 0x41009b
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x44cdd5
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x40ffa5.157
add ebx, 4
jmp 0x4101fb
movzx eax, word [ebx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov edx, 2
add edi, 0x10000
jmp 0x41032e
add eax, 2
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448b8b
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 dword [ebp - 0x14], ecx
lea ebx, [ebx + edx*2]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x30], ebx
cmp edi, ecx
je 0x40ff7f
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x448bbf
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edi
cmp dword [ebp - 0x14], eax
jne case.0x40ffa5.157
jmp 0x4101fe
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x448bfa
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x448bfc
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x448c13
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x40ffa5.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
jmp 0x4101fb
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, dword [ebp - 0x20]
mov ecx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
jmp 0x448cd4
mov dword [ebp - 0x34], 1
xor eax, eax
mov dword [ebp - 0x10], eax
movzx eax, word [ebx + 2]
mov dword [ebp - 0x18], eax
cmp ecx, 0x28
je 0x448c61
cmp ecx, 0x35
je 0x448c61
xor edx, edx
jmp 0x448c66
mov edx, 1
mov dword [ebp - 0x20], edx
add ebx, 4
jmp 0x448cd1
mov ecx, 1
mov dword [ebp - 0x18], bind
jmp 0x448c85
xor ecx, ecx
mov dword [ebp - 0x18], 1
mov edx, dword [ebp - 0x20]
add ebx, 2
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x10], ecx
jmp 0x448cd4
cmp edi, 0x2e
mov ecx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
movzx edx, cl
and edx, 1
mov dword [ebp - 0x20], edx
movsx eax, byte [ecx + 0x4a6420]
mov dword [ebp - 0x10], eax
movsx eax, byte [ecx + 0x4a642c]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x448cd1
mov dword [ebp - 0x18], bind
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x24], 0
movzx eax, word [ebx]
mov dword [ebp - 0xc], eax
je 0x448f41
and eax, 0xfc00
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x14], ebx
cmp eax, 0xd800
jne 0x448d20
and dword [ebp - 0xc], 0x3ff
movzx eax, word [ebx + 2]
shl dword [ebp - 0xc], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0xc]
add eax, 0x10000
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 0x1c]
lea eax, [esi + esi]
add ebx, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
cmp esi, 1
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x30], ebx
jle 0x448f47
cmp edi, 0x2e
jb 0x448d95
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x448d66
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
mov ecx, dword [eax*8 + 0x4a3f24]
add ecx, edx
cmp ecx, edx
je 0x448d8f
lea edx, [ebp - 0x68]
call fcn.0048f450
mov edx, dword [ebp - 0x20]
mov edi, eax
mov ecx, dword [ebp - 0x10]
jmp 0x448d97
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
xor edi, edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0xc], 1
cmp ecx, 1
jge 0x448dab
mov eax, dword [ebp - 8]
jmp 0x448e27
mov eax, dword [esi + 0x7c]
sub eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x448ddc
mov eax, dword [ebp - 0x1c]
add eax, eax
push eax
push dword [ebp - 0x14]
push ecx
call fcn.004215e4
add esp, 0xc
test eax, eax
jne 0x448dd9
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 8], eax
jmp 0x448e16
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x44cf51
mov eax, dword [esi + 0x7c]
lea edx, [edi + edi]
sub eax, edx
cmp ecx, eax
ja 0x44cf51
lea eax, [edi + edi]
push eax
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.004215e4
add esp, 0xc
test eax, eax
jne 0x44cf4e
lea eax, [edi + edi]
add dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, ecx
jle 0x448dab
mov edx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x18]
je 0x4101fe
test edx, edx
jne 0x44cf6c
mov edx, eax
mov dword [ebp - 0x28], edx
cmp ecx, dword [ebp - 0x18]
jge 0x448edd
mov eax, dword [esi + 0x7c]
sub eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x448e71
mov eax, dword [ebp - 0x1c]
add eax, eax
push eax
push dword [ebp - 0x14]
push ecx
call fcn.004215e4
add esp, 0xc
test eax, eax
jne 0x448e6e
mov eax, dword [ebp - 0x2c]
jmp 0x448e99
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x448eaa
mov eax, dword [esi + 0x7c]
lea edx, [edi + edi]
sub eax, edx
cmp ecx, eax
ja 0x448eaa
lea eax, [edi + edi]
push eax
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.004215e4
add esp, 0xc
test eax, eax
jne 0x448eaa
lea eax, [edi + edi]
add dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x448e46
jmp 0x448ed7
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x448eda
cmp eax, dword [esi + 0x7c]
jb 0x448ed7
cmp eax, dword [esi + 0x88]
jbe 0x448ed7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, edx
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x448f37
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x28]
jne 0x448ef2
jmp 0x4100e3
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x44909a
cmp dword [ebp - 0x24], 0
je 0x448f9a
cmp eax, 0x7f
jbe 0x448f9a
mov edi, dword [ebp - 0xc]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x448f7f
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x20]
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
mov ecx, dword [ebp - 0x10]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edi
jmp 0x448fab
mov edi, dword [ebp - 0xc]
cmp eax, 0xff
ja 0x448fab
mov eax, dword [esi + 0x40]
movzx eax, byte [eax + edi]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
cmp ecx, 1
jl 0x448ff0
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx esi, word [eax]
mov dword [ebp - 0x14], esi
cmp edi, esi
mov esi, dword [ebp + 0x10]
je 0x448fe2
mov edi, dword [ebp - 0x1c]
cmp edi, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
jne case.0x40ffa5.157
inc dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x2c], ecx
jle 0x448fbd
cmp ecx, dword [ebp - 0x18]
je 0x4101fe
test edx, edx
jne 0x44d034
mov edx, eax
mov dword [ebp - 0x28], edx
cmp ecx, dword [ebp - 0x18]
jge 0x449052
cmp eax, dword [esi + 0x7c]
jae 0x44902a
movzx edx, word [eax]
cmp edi, edx
je 0x44901c
cmp dword [ebp - 0x1c], edx
jne 0x44904f
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x18]
jl 0x44900b
jmp 0x44904f
cmp dword [esi + 0x8c], 0
je 0x44904f
cmp eax, dword [esi + 0x88]
jbe 0x44904f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov edx, dword [ebp - 0x28]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, edx
je 0x4100e3
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.0040ff20
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x41009b
cmp edi, dword [ebp - 0x28]
jne 0x449067
jmp 0x4100e3
mov dword [ebp - 0x14], 1
cmp ecx, 1
jge 0x4490ab
mov edi, dword [ebp - 8]
jmp 0x4490d7
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], eax
jne case.0x40ffa5.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, ecx
jle 0x4490ab
cmp ecx, dword [ebp - 0x18]
je 0x4101fe
test edx, edx
jne 0x44d0ab
mov eax, dword [ebp - 8]
mov edx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x28], edx
cmp ecx, edi
jge 0x449118
mov edx, dword [ebp - 0xc]
cmp eax, dword [esi + 0x7c]
jae 0x449160
movzx eax, word [eax]
cmp edx, eax
jne 0x449112
add dword [ebp - 8], 2
inc ecx
mov eax, dword [ebp - 8]
cmp ecx, edi
jl 0x4490fa
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, edx
je 0x4100e3
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.0040ff20
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x41009b
cmp edi, dword [ebp - 0x28]
jne 0x44912d
jmp 0x4100e3
cmp dword [esi + 0x8c], 0
je 0x449115
cmp eax, dword [esi + 0x88]
jbe 0x449115
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
jmp 0x449115
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
cmp dword [ebp - 0x24], 0
je 0x449297
movzx edx, word [ebx + 2]
add ebx, 4
mov eax, edx
mov dword [ebp - 0x14], edx
and eax, 0xfc00
mov dword [ebp - 0x30], ebx
cmp eax, 0xd800
jne 0x4491da
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x2c], ecx
cmp eax, 0xd800
jne 0x44921a
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 dword [ebp - 0x2c], ecx
cmp edi, 0x1f
jne 0x44922c
cmp edx, ecx
je case.0x40ffa5.157
jmp 0x4101fe
cmp edx, 0x7f
jbe 0x44926f
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x449257
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edx
jmp 0x449282
cmp edx, 0xff
ja 0x449280
mov eax, dword [esi + 0x40]
movzx eax, byte [eax + edx]
jmp 0x449282
mov eax, edx
cmp edx, ecx
je case.0x40ffa5.157
cmp eax, ecx
je case.0x40ffa5.157
jmp 0x4101fe
movzx edx, word [eax]
add eax, 2
movzx ecx, word [ebx + 2]
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x40ffa5.157
cmp edi, 0x20
jne 0x446f0b
cmp ecx, 0xff
ja 0x4492c4
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x40ffa5.157
add ebx, 4
jmp 0x4101fb
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, dword [ebp - 0x20]
mov ecx, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
jmp 0x449388
movzx eax, word [ebx + 2]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
cmp ecx, 0x42
je 0x449307
cmp ecx, 0x4f
je 0x449307
xor edx, edx
jmp 0x44930c
mov edx, 1
mov dword [ebp - 0x20], edx
add ebx, 4
jmp 0x449385
mov ecx, 1
mov dword [ebp - 0xc], bind
jmp 0x44932b
xor ecx, ecx
mov dword [ebp - 0xc], 1
add ebx, 2
jmp 0x44933c
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0xc], eax
add ebx, 4
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x10], ecx
jmp 0x449388
cmp edi, 0x48
mov ecx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
movzx edx, cl
and edx, 1
mov dword [ebp - 0x20], edx
movsx eax, byte [ecx + 0x4a6420]
mov dword [ebp - 0x10], eax
movsx eax, byte [ecx + 0x4a642c]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x449385
mov dword [ebp - 0xc], bind
mov ecx, dword [ebp - 0x10]
movzx eax, word [ebx]
add ebx, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], ebx
je 0x4493cf
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4493cc
and dword [ebp - 0x18], 0x3ff
movzx eax, word [ebx]
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add ebx, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], ebx
jmp 0x4493cf
mov eax, dword [ebp - 0x18]
cmp edi, 0x48
jb 0x449699
cmp dword [ebp - 0x24], 0
je 0x449422
cmp eax, 0x7f
jbe 0x449422
mov edi, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x449407
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x20]
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
mov ecx, dword [ebp - 0x10]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edi
jmp 0x449433
mov edi, dword [ebp - 0x18]
cmp eax, 0xff
ja 0x449433
mov eax, dword [esi + 0x40]
movzx eax, byte [eax + edi]
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 1
je 0x4494b7
cmp ecx, 1
jge 0x449450
mov eax, dword [ebp - 8]
jmp 0x4494f1
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x449498
movzx eax, word [eax]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, dword [ebp - 8]
add edi, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], edi
je case.0x40ffa5.157
cmp dword [ebp - 0x1c], edi
je case.0x40ffa5.157
mov edi, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x14], edi
cmp edi, ecx
jle 0x449450
jmp 0x4494ee
mov eax, dword [ebp - 8]
cmp ecx, 1
jl 0x4494f1
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx edi, word [eax]
cmp dword [ebp - 0x18], edi
je case.0x40ffa5.157
cmp dword [ebp - 0x1c], edi
je case.0x40ffa5.157
mov edi, dword [ebp - 0x14]
add eax, 2
inc edi
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], edi
cmp edi, ecx
jle 0x4494bf
mov edi, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0xc]
je 0x4101fe
test edx, edx
jne 0x44d11a
cmp dword [ebp - 0x24], 0
mov edx, eax
mov dword [ebp - 0x20], edx
je 0x449605
cmp ecx, dword [ebp - 0xc]
jge 0x44957c
mov edi, 1
cmp eax, dword [esi + 0x7c]
jae 0x4495e0
movzx edx, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449557
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
cmp dword [ebp - 0x18], edx
je 0x449576
cmp dword [ebp - 0x1c], edx
je 0x449576
lea ecx, [ecx + edi*2]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, dword [ebp - 0xc]
jl 0x449516
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, edx
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4495d6
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0x449591
jmp 0x4100e3
cmp dword [esi + 0x8c], 0
je 0x449579
cmp eax, dword [esi + 0x88]
jbe 0x449579
mov dword [esi + 0x68], edi
cmp dword [esi + 0x8c], edi
jg 0x447692
jmp 0x449579
cmp ecx, dword [ebp - 0xc]
jge 0x449651
cmp eax, dword [esi + 0x7c]
jae 0x449629
movzx edx, word [eax]
cmp edi, edx
je 0x44964e
cmp dword [ebp - 0x1c], edx
je 0x44964e
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0xc]
jl 0x44960a
jmp 0x44964e
cmp dword [esi + 0x8c], 0
je 0x44964e
cmp eax, dword [esi + 0x88]
jbe 0x44964e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, edx
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0x449666
jmp 0x4100e3
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], 1
je 0x44970d
cmp ecx, 1
jl 0x449741
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x4496f7
movzx eax, word [eax]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, dword [ebp - 8]
add edi, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], edi
je case.0x40ffa5.157
mov edi, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x14], edi
cmp edi, ecx
jle 0x4496af
jmp 0x449744
cmp ecx, 1
jl 0x449741
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
cmp ecx, dword [esi + 0x7c]
jae 0x44cdd5
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x18], eax
je case.0x40ffa5.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, edi
jle 0x449718
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
cmp ecx, edi
je 0x4101fe
test edx, edx
jne 0x44d226
cmp dword [ebp - 0x24], 0
mov edx, eax
mov dword [ebp - 0x1c], edx
je 0x449853
cmp ecx, edi
jge 0x4497ca
mov edi, 1
cmp eax, dword [esi + 0x7c]
jae 0x44982e
movzx edx, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4497ab
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
cmp dword [ebp - 0x18], edx
je 0x4497c4
mov eax, dword [ebp - 0x10]
lea ecx, [ecx + edi*2]
inc eax
mov dword [ebp - 8], ecx
cmp eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, ecx
jl 0x44976a
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, edx
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x449824
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x1c]
jne 0x4497df
jmp 0x4100e3
cmp dword [esi + 0x8c], 0
je 0x4497c7
cmp eax, dword [esi + 0x88]
jbe 0x4497c7
mov dword [esi + 0x68], edi
cmp dword [esi + 0x8c], edi
jg 0x447692
jmp 0x4497c7
cmp ecx, edi
jge 0x449878
mov edx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0x4498c0
movzx eax, word [eax]
cmp edx, eax
je 0x449872
add dword [ebp - 8], 2
inc ecx
mov eax, dword [ebp - 8]
cmp ecx, edi
jl 0x44985a
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp eax, edx
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x1c]
jne 0x44988d
jmp 0x4100e3
cmp dword [esi + 0x8c], 0
je 0x449875
cmp eax, dword [esi + 0x88]
jbe 0x449875
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
jmp 0x449875
movzx edi, word [ebx + 2]
mov eax, 1
mov edx, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xc], edx
add ebx, 4
mov dword [ebp - 0x20], eax
jmp 0x4105fd
movzx edi, word [ebx + 2]
xor eax, eax
xor edx, edx
mov dword [ebp - 0x18], edi
cmp ecx, 0x5c
mov dword [ebp - 0xc], edx
sete al
add ebx, 4
mov dword [ebp - 0x20], eax
jmp 0x4105fd
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
jmp 0x4105f6
mov eax, dword [ebp - 0x20]
mov edx, 1
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
jmp 0x4105f6
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
jmp 0x4105fd
movzx ecx, word [ebx + 2]
xor edx, edx
mov eax, dword [ebp - 0x20]
add ebx, 4
mov dword [ebp - 0x34], 1
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], ecx
jmp 0x4105fd
mov dword [ebp - 0x38], 1
jmp 0x44999f
mov dword [ebp - 0x38], 0
movzx esi, word [ebx + 2]
movzx ecx, word [ebx]
add ebx, 4
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x30], ebx
jmp 0x41061e
test ecx, ecx
js 0x44a154
cmp ecx, 0xa
ja case.default.0x4481ca
jmp dword [ecx*4 + 0x44e8b0]
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.157
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44af31
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449a16
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x449a16
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x4499ea
jmp 0x44a149
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449a79
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449a79
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 eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x449a9b
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, 9
je 0x449ac0
cmp eax, 5
je 0x449ac0
cmp eax, 8
je 0x449ac0
xor eax, eax
jmp 0x449ac5
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x449a34
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449b40
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449b40
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 eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x449b62
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b7e70], edx
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x449afb
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449bfe
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449bfe
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 eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x449c20
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x449bb9
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449cb5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449cb5
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 eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x449cd7
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f20]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x449c70
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449d6c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449d6c
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 eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x449d8e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x449db5
cmp eax, 3
je 0x449db5
xor eax, eax
jmp 0x449dba
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x449d27
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
mov eax, dword [ebp - 0x24]
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
test eax, eax
je 0x449e39
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449e36
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 eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x449e86
je 0x449f0e
cmp ecx, 0x85
ja 0x449e6d
je 0x449f0e
cmp ecx, 9
jb case.0x449ea2.8203
cmp ecx, 0xd
jbe 0x449f0e
cmp ecx, 0x20
jne case.0x449ea2.8203
jmp 0x449f0e
cmp ecx, 0xa0
je 0x449f0e
cmp ecx, 0x1680
jne case.0x449ea2.8203
jmp 0x449f0e
cmp ecx, 0x202f
ja 0x449ea9
je 0x449f0e
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x449ea2.8203
movzx eax, byte [eax + 0x44e8e4]
jmp dword [eax*4 + 0x44e8dc]
cmp ecx, 0x205f
je 0x449f0e
cmp ecx, 0x3000
je 0x449f0e
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x449edb
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b7e70], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.157
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
jmp 0x449f18
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x449df3
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], edi
je 0x449f8d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449f8d
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 - 0x14], ecx
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x449fb3
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x449fdf
cmp eax, 3
je 0x449fdf
cmp edx, 0x5f
je 0x449fdf
xor eax, eax
jmp 0x449fe4
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, edx
jle 0x449f42
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44a05f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a05f
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 eax, dword [ebp - 0x3c]
mov edx, dword [eax*4 + 0x4a52c0]
lea eax, [eax*4 + 0x4a52c0]
cmp ecx, edx
jb 0x44a081
lea eax, [eax + 4]
cmp ecx, edx
je 0x44a0a1
mov edx, dword [eax]
cmp ecx, edx
jae 0x44a074
cmp dword [ebp - 0x38], 0
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x44a01a
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.157
jmp 0x44a08b
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44af31
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44a103
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a103
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, 0x24
je 0x44a12e
cmp ecx, 0x40
je 0x44a12e
cmp ecx, 0x60
je 0x44a12e
cmp ecx, 0xa0
jb 0x44a122
cmp ecx, 0xd7ff
jbe 0x44a12e
cmp ecx, 0xe000
jae 0x44a12e
xor eax, eax
jmp 0x44a133
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a0be
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
jmp 0x41062c
cmp edi, 0x16
jne 0x44a2e6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
cmp edx, 1
jl 0x41062c
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x2c], eax
cmp edi, eax
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44a1ba
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a1ba
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 eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44a1dc
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x44a2a3
mov ebx, dword [ebp - 0x24]
mov esi, ecx
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
test ebx, ebx
je 0x44a23e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a23e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44a260
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4a64f0], eax
je 0x44a297
mov eax, dword [ebp - 0x14]
mov esi, ecx
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x2c]
cmp edi, eax
jb 0x44a201
jmp 0x44a29a
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44a2cc
cmp edi, eax
jb 0x44a2cc
cmp edi, dword [esi + 0x88]
jbe 0x44a2cc
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, edx
jle 0x44a170
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
cmp dword [ebp - 0x24], 0
lea ecx, [edi - 6]
je 0x44aa13
cmp ecx, 0xf
ja case.default.0x4481ca
jmp dword [ecx*4 + 0x44e910]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a14c
lea eax, [edi + 2]
mov dword [ebp - 0x28], eax
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf15
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44a3cd
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
mov edx, dword [ebp - 0x28]
cmp dword [esi + 0x8c], 0
je 0x44a386
cmp edx, dword [esi + 0x7c]
jb 0x44a386
cmp dword [esi + 0x18], 0
jne 0x44a386
cmp dword [esi + 0x1c], 2
jne 0x44a386
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a386
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
cmp edi, dword [esi + 0x7c]
jae 0x44a3b8
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44a3b8
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x14]
inc edx
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp - 0xc]
jle 0x44a31c
jmp 0x44a146
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44a34c
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a34c
cmp edx, 1
je case.0x40ffa5.157
mov edx, dword [ebp - 0x28]
mov ax, word [edx]
cmp ax, word [esi + 0x36]
je case.0x40ffa5.157
jmp 0x44a34f
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44cf15
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44a455
mov ax, word [edi]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xdc00
cmp ax, word [ebp - 0x14]
mov eax, dword [ebp - 0xc]
jne 0x44a455
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x44a41f
jmp 0x44a146
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0x40ffa5.157
mov eax, dword [ebp - 0x20]
add edi, ecx
mov dword [ebp - 8], edi
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a14c
mov edx, dword [esi + 0x7c]
cmp edi, edx
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a4d3
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, 0xd
ja 0x44a4ff
je 0x44a4ed
cmp ecx, 0xa
je 0x44a520
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44a516
cmp edi, edx
jae 0x44a520
cmp word [edi], 0xa
jne 0x44a520
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44a520
cmp ecx, 0x85
je 0x44a516
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x44a495
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a585
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 0x44a5c3
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x44a5b5
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp 0x44a5ff
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp 0x44a5ff
cmp ecx, 0x205f
ja 0x44a5f3
je case.0x40ffa5.157
cmp ecx, 0x2000
jb 0x44a5ff
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp 0x44a5ff
cmp ecx, 0x3000
je case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a546
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a65e
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 0x44a690
je 0x44a6c8
cmp ecx, 0xa0
ja 0x44a682
je 0x44a6c8
cmp ecx, 9
je 0x44a6c8
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp 0x44a6c8
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp 0x44a6c8
cmp ecx, 0x205f
ja 0x44a6bc
je 0x44a6c8
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe 0x44a6c8
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp 0x44a6c8
cmp ecx, 0x3000
jne case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a61f
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a727
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 0x44a745
je case.0x40ffa5.157
cmp ecx, 0xa
jb 0x44a759
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp 0x44a759
cmp ecx, 0x2028
jb 0x44a759
cmp ecx, 0x2029
jbe case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a6e8
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a7b4
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 0x44a7cc
je 0x44a7db
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp 0x44a7db
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a775
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a836
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, 0x80
jae 0x44a84b
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a7f7
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44a867
jmp 0x44a146
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a14c
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44cf15
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44a8d9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44a901
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44a901
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jle 0x44a8b6
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44a922
jmp 0x44a146
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a14c
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44cf15
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44a994
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x44a9bc
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44a9bc
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jle 0x44a971
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44a9dd
jmp 0x44a146
cmp ecx, 0xf
ja case.default.0x4481ca
jmp dword [ecx*4 + 0x44e950]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a14c
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf15
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44aa63
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
jmp 0x44aa8f
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44aa8f
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44aa8f
cmp edx, 1
je case.0x40ffa5.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40ffa5.157
cmp dword [esi + 0x8c], 0
je 0x44aac9
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44aac9
cmp dword [esi + 0x18], 0
jne 0x44aac9
cmp dword [esi + 0x1c], 2
jne 0x44aac9
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44aac9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov edx, dword [ebp - 0x14]
add edi, 2
inc edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp - 0xc]
jle 0x44aa36
jmp 0x44a146
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x44cf15
mov eax, dword [ebp - 0x20]
add edi, ecx
mov dword [ebp - 8], edi
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf15
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
jg 0x44ab55
je 0x44ab43
cmp eax, 0xa
je 0x44ab74
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44ab6a
cmp edi, ecx
jae 0x44ab74
cmp word [edi], 0xa
jne 0x44ab74
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44ab74
cmp eax, 0x85
je 0x44ab6a
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44ab18
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
jg 0x44abe0
je case.0x40ffa5.157
cmp ecx, 0xa0
jg 0x44abd2
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp 0x44ac1c
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp 0x44ac1c
cmp ecx, 0x205f
jg 0x44ac10
je case.0x40ffa5.157
cmp ecx, 0x2000
jl 0x44ac1c
cmp ecx, 0x200a
jle case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp 0x44ac1c
cmp ecx, 0x3000
je case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44ab90
jmp 0x44a149
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
jg 0x44ac80
je 0x44acb8
cmp ecx, 0xa0
jg 0x44ac72
je 0x44acb8
cmp ecx, 9
je 0x44acb8
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp 0x44acb8
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp 0x44acb8
cmp ecx, 0x205f
jg 0x44acac
je 0x44acb8
cmp ecx, 0x2000
jl case.0x40ffa5.157
cmp ecx, 0x200a
jle 0x44acb8
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp 0x44acb8
cmp ecx, 0x3000
jne case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44ac3c
jmp 0x44a149
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
jg 0x44ad08
je case.0x40ffa5.157
cmp ecx, 0xa
jl 0x44ad1c
cmp ecx, 0xd
jle case.0x40ffa5.157
jmp 0x44ad1c
cmp ecx, 0x2028
jl 0x44ad1c
cmp ecx, 0x2029
jle case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44acd8
jmp 0x44a149
mov edi, dword [ebp - 8]
mov ecx, 1
cmp edx, ecx
jl 0x44a14c
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
jg 0x44ad60
je 0x44ad6e
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40ffa5.157
jmp 0x44ad6e
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40ffa5.157
inc ecx
cmp ecx, edx
jle 0x44ad37
mov eax, dword [ebp - 0x20]
jmp 0x44a14c
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44adb1
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44ad8c
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40ffa5.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44add3
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44ae43
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44ae1e
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40ffa5.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44ae65
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44aed5
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44aeb0
jmp 0x44a146
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a149
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40ffa5.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40ffa5.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x44aef7
jmp 0x44a146
mov edx, dword [ebp - 0xc]
jmp 0x41062c
mov eax, edi
mov dword [ebp - 0x10], eax
test ecx, ecx
js 0x44b7d0
cmp ecx, 0xa
ja case.default.0x4481ca
jmp dword [ecx*4 + 0x44e990]
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov eax, dword [ebp - 0x18]
mov ecx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44afaf
cmp dword [ebp - 0x24], 0
je 0x44af95
mov ax, word [edi]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xd800
cmp ax, word [ebp - 0x14]
mov eax, dword [ebp - 0x18]
jne 0x44af95
mov ecx, 2
cmp dword [ebp - 0x38], 0
jne 0x44b768
inc edx
lea edi, [edi + ecx*2]
mov dword [ebp - 8], edi
cmp edx, eax
jl 0x44af62
jmp 0x44b768
cmp dword [esi + 0x8c], 0
je 0x44b768
cmp edi, dword [esi + 0x88]
jbe 0x44b768
mov dword [esi + 0x68], ecx
cmp dword [esi + 0x8c], ecx
jle 0x44b768
jmp 0x447692
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b0a0
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b02d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b02d
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b04f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, 9
je 0x44b074
cmp eax, 5
je 0x44b074
cmp eax, 8
je 0x44b074
xor eax, eax
jmp 0x44b079
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b768
mov eax, dword [ebp - 0x14]
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 - 0x18]
jl 0x44afe5
jmp 0x44b768
cmp dword [esi + 0x8c], 0
je 0x44b768
cmp edi, dword [esi + 0x88]
jbe 0x44b768
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44b768
jmp 0x447692
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b0a0
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b11f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b11f
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b141
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b7e70], edx
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b768
mov eax, dword [ebp - 0x14]
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 - 0x18]
jl 0x44b0db
jmp 0x44b768
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b0a0
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b1da
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b1da
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b1fc
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b768
mov eax, dword [ebp - 0x14]
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 - 0x18]
jl 0x44b192
jmp 0x44b768
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b0a0
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b28e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b28e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b2b0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f20]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b768
mov eax, dword [ebp - 0x14]
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 - 0x18]
jl 0x44b246
jmp 0x44b768
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b0a0
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b342
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b342
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b364
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x44b38b
cmp eax, 3
je 0x44b38b
xor eax, eax
jmp 0x44b390
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b768
mov eax, dword [ebp - 0x14]
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 - 0x18]
jl 0x44b2fa
jmp 0x44b768
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov eax, 1
mov dword [ebp - 0x2c], eax
cmp edi, dword [esi + 0x7c]
jae 0x44b506
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b40f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b40c
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 - 0x2c], eax
jmp 0x44b40f
mov eax, dword [ebp - 0x2c]
cmp ecx, 0x180e
ja 0x44b45c
je 0x44b4e4
cmp ecx, 0x85
ja 0x44b443
je 0x44b4e4
cmp ecx, 9
jb case.0x44b478.8203
cmp ecx, 0xd
jbe 0x44b4e4
cmp ecx, 0x20
jne case.0x44b478.8203
jmp 0x44b4e4
cmp ecx, 0xa0
je 0x44b4e4
cmp ecx, 0x1680
jne case.0x44b478.8203
jmp 0x44b4e4
cmp ecx, 0x202f
ja 0x44b47f
je 0x44b4e4
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x44b478.8203
movzx eax, byte [eax + 0x44e9c4]
jmp dword [eax*4 + 0x44e9bc]
cmp ecx, 0x205f
je 0x44b4e4
cmp ecx, 0x3000
je 0x44b4e4
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b4b1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b7e70], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b768
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
jmp 0x44b4ee
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x38], 0
jne 0x44b768
inc edx
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp - 0x18]
jl 0x44b3c0
jmp 0x44b768
cmp dword [esi + 0x8c], 0
je 0x44b768
cmp edi, dword [esi + 0x88]
jbe 0x44b768
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x44b768
jmp 0x447692
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov dword [ebp - 0x2c], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b0a0
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
mov dword [ebp - 0x14], ecx
je 0x44b58a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b58a
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x2c], 2
add ecx, 0x10000
mov dword [ebp - 0x14], ecx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x44b5b0
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x44b5dc
cmp eax, 3
je 0x44b5dc
cmp edx, 0x5f
je 0x44b5dc
xor eax, eax
jmp 0x44b5e1
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b768
mov eax, dword [ebp - 0x2c]
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 - 0x18]
jl 0x44b53c
jmp 0x44b768
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b0a0
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b659
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b659
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax*4 + 0x4a52c0]
lea eax, [eax*4 + 0x4a52c0]
cmp ecx, edx
jb 0x44b67b
lea eax, [eax + 4]
cmp ecx, edx
je 0x44b6a3
mov edx, dword [eax]
cmp ecx, edx
jae 0x44b66e
cmp dword [ebp - 0x38], 0
je 0x44b768
mov eax, dword [ebp - 0x14]
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 - 0x18]
jl 0x44b611
jmp 0x44b768
cmp dword [ebp - 0x38], 0
je 0x44b685
jmp 0x44b768
cmp edx, dword [ebp - 0x18]
jge 0x44b76b
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44b748
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b6fb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b6fb
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, 0x24
je 0x44b726
cmp ecx, 0x40
je 0x44b726
cmp ecx, 0x60
je 0x44b726
cmp ecx, 0xa0
jb 0x44b71a
cmp ecx, 0xd7ff
jbe 0x44b726
cmp ecx, 0xe000
jae 0x44b726
xor eax, eax
jmp 0x44b72b
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b768
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 - 0x18]
jl 0x44b6b7
jmp 0x44b768
cmp dword [esi + 0x8c], 0
je 0x44b768
cmp edi, dword [esi + 0x88]
jbe 0x44b768
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jg 0x447692
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp edi, eax
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x24], eax
je 0x44b7c6
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44b7c6
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x44b77d
jmp 0x4100e3
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0x16
jne 0x44b9c7
cmp edx, dword [ebp - 0x18]
jge 0x44b97b
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x2c], eax
cmp edi, eax
jae 0x44b953
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44b82f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b82f
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 eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b851
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x44b918
mov ebx, dword [ebp - 0x24]
mov esi, ecx
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
test ebx, ebx
je 0x44b8b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b8b3
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b8d5
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4a64f0], eax
je 0x44b90c
mov eax, dword [ebp - 0x14]
mov esi, ecx
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x2c]
cmp edi, eax
jb 0x44b876
jmp 0x44b90f
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44b941
cmp edi, eax
jb 0x44b941
cmp edi, dword [esi + 0x88]
jbe 0x44b941
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x44b7e5
jmp 0x44b978
cmp dword [esi + 0x8c], 0
je 0x44b978
cmp edi, dword [esi + 0x88]
jbe 0x44b978
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp edi, eax
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x24], eax
jne 0x44c878
movzx ecx, word [edi]
jmp 0x44c8be
cmp dword [ebp - 0x24], 0
lea eax, [ecx - 6]
je 0x44c22a
cmp eax, 0xf
ja case.default.0x4481ca
jmp dword [eax*4 + 0x44e9f0]
mov eax, dword [ebp - 0x18]
cmp eax, 0x7fffffff
jge 0x44baec
cmp edx, eax
jge 0x44c1a9
lea eax, [edi + 2]
mov dword [ebp - 0x28], eax
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44bc45
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44bab1
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne 0x44c1a9
mov edx, dword [ebp - 0x28]
cmp dword [esi + 0x8c], 0
je 0x44ba6a
cmp edx, dword [esi + 0x7c]
jb 0x44ba6a
cmp dword [esi + 0x18], 0
jne 0x44ba6a
cmp dword [esi + 0x1c], 2
jne 0x44ba6a
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44ba6a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
cmp edi, dword [esi + 0x7c]
jae 0x44ba9c
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44ba9c
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x44ba00
jmp 0x44c1a9
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44ba30
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44ba30
cmp edx, 1
je 0x44c1a9
mov edx, dword [ebp - 0x28]
mov ax, word [edx]
cmp ax, word [esi + 0x36]
jne 0x44ba33
jmp 0x44c1a9
cmp edx, eax
jge 0x44c1a9
lea eax, [edi + 2]
mov dword [ebp - 0x28], eax
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44bc45
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44bbab
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne 0x44c1a9
mov edx, dword [ebp - 0x28]
cmp dword [esi + 0x8c], 0
je 0x44bb64
cmp edx, dword [esi + 0x7c]
jb 0x44bb64
cmp dword [esi + 0x18], 0
jne 0x44bb64
cmp dword [esi + 0x1c], 2
jne 0x44bb64
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44bb64
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
cmp edi, dword [esi + 0x7c]
jae 0x44bb96
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44bb96
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x44bafa
jmp 0x44c1a9
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44bb2a
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44bb2a
cmp edx, 1
je 0x44c1a9
mov edx, dword [ebp - 0x28]
mov ax, word [edx]
cmp ax, word [esi + 0x36]
jne 0x44bb2d
jmp 0x44c1a9
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x7fffffff
jge 0x44bc3b
cmp edx, ecx
jge 0x44c1a9
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0x18]
cmp edi, ecx
jae 0x44bc45
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44bc31
mov ax, word [edi]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xdc00
cmp ax, word [ebp - 0x14]
mov eax, dword [ebp - 0x18]
jne 0x44bc31
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jl 0x44bbff
jmp 0x44c1a9
mov edi, dword [esi + 0x7c]
jmp 0x44bc42
mov edi, ecx
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44c1a9
cmp edi, dword [esi + 0x88]
jbe 0x44c1a9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c1a9
jmp 0x447692
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub dword [ebp - 0x18], edx
sub eax, edi
mov edx, dword [ebp - 0x18]
sar eax, 1
cmp edx, eax
ja 0x44bc40
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
jmp 0x44c1a9
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov eax, dword [esi + 0x7c]
mov edx, 1
cmp edi, eax
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bcde
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 0x44bcff
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x44c1a9
cmp word [edi], 0xa
jne 0x44bd3d
add edi, 2
jmp 0x44bd3a
cmp ecx, 0xa
je 0x44bd34
cmp dword [esi + 0x6c], 0
jne 0x44c1a9
cmp ecx, 0xb
je 0x44bd34
cmp ecx, 0xc
je 0x44bd34
cmp ecx, 0x85
je 0x44bd34
cmp ecx, 0x2028
je 0x44bd34
cmp ecx, 0x2029
jne 0x44c1a9
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 - 0x18]
jl 0x44bca1
jmp 0x44c1a9
cmp dword [esi + 0x8c], 0
je 0x44c1a9
cmp edi, dword [esi + 0x88]
jbe 0x44c1a9
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jle 0x44c1a9
jmp 0x447692
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bdc2
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 0x44be17
je 0x44bde0
cmp ecx, 0xa0
ja 0x44be0d
je 0x44bde0
cmp ecx, 9
je 0x44bde0
cmp ecx, 0x20
jne 0x44be43
mov ecx, 1
xor eax, eax
cmp dword [ebp - 0x1c], 0x12
sete al
cmp ecx, eax
je 0x44c1a9
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 - 0x18]
jl 0x44bd88
jmp 0x44c1a9
cmp ecx, 0x1680
jne 0x44be43
jmp 0x44bde0
cmp ecx, 0x205f
ja 0x44be3b
je 0x44bde0
cmp ecx, 0x2000
jb 0x44be43
cmp ecx, 0x200a
jbe 0x44bde0
cmp ecx, 0x202f
jne 0x44be43
jmp 0x44bde0
cmp ecx, 0x3000
je 0x44bde0
xor ecx, ecx
jmp 0x44bde5
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44be8e
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 0x44becc
je 0x44bed7
cmp ecx, 0xa
jb 0x44bea2
cmp ecx, 0xd
jbe 0x44bed7
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0x1c], 0x14
sete al
cmp ecx, eax
je 0x44c1a9
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 - 0x18]
jl 0x44be50
jmp 0x44c1a9
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x44bea2
mov ecx, 1
jmp 0x44bea4
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bf25
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, 0x100
jae 0x44bf3a
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44c1a9
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 - 0x18]
jl 0x44bee7
jmp 0x44c1a9
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bf98
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, 0x100
jae 0x44c1a9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44c1a9
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 - 0x18]
jl 0x44bf5a
jmp 0x44c1a9
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c00f
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, 0x100
jae 0x44c024
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44c1a9
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 - 0x18]
jl 0x44bfd1
jmp 0x44c1a9
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c082
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, 0x100
jae 0x44c1a9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44c1a9
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 - 0x18]
jl 0x44c044
jmp 0x44c1a9
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bd52
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c0f9
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, 0x100
jae 0x44c10e
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44c1a9
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 - 0x18]
jl 0x44c0bb
jmp 0x44c1a9
cmp edx, dword [ebp - 0x18]
jge 0x44c1a9
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44c189
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c164
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, 0x100
jae 0x44c1a9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44c1a9
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 - 0x18]
jl 0x44c12a
jmp 0x44c1a9
cmp dword [esi + 0x8c], 0
je 0x44c1a9
cmp edi, dword [esi + 0x88]
jbe 0x44c1a9
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jg 0x447692
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp edi, dword [ebp - 0x10]
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c201
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x1c], 0x11
mov ecx, dword [ebp - 0x10]
jne 0x44c221
cmp edi, ecx
jbe 0x44c223
cmp word [edi], 0xa
jne 0x44c221
cmp word [edi - 2], 0xd
jne 0x44c221
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, ecx
jne 0x44c1bc
jmp 0x4100e3
cmp eax, 0xf
ja case.default.0x4481ca
jmp dword [eax*4 + 0x44ea30]
cmp edx, dword [ebp - 0x18]
jge 0x44c707
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c308
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44c26f
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0041fc41
add esp, 0xc
test eax, eax
je 0x44c29b
jmp 0x44c707
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44c29b
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c29b
cmp edx, 1
je 0x44c707
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44c707
cmp dword [esi + 0x8c], 0
je 0x44c2d5
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44c2d5
cmp dword [esi + 0x18], 0
jne 0x44c2d5
cmp dword [esi + 0x1c], 2
jne 0x44c2d5
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c2d5
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x44c243
jmp 0x44c707
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub dword [ebp - 0x18], edx
sub eax, edi
mov edx, dword [ebp - 0x18]
sar eax, 1
cmp edx, eax
jbe 0x44c33a
mov edi, ecx
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44c707
cmp edi, dword [esi + 0x88]
jbe 0x44c707
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c707
jmp 0x447692
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
jmp 0x44c707
cmp edx, dword [ebp - 0x18]
jge 0x44c707
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c308
movzx eax, word [edi]
cmp eax, 0xd
jne 0x44c373
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44c707
cmp word [edi], 0xa
je 0x44c3a5
jmp 0x44c3ab
cmp eax, 0xa
je 0x44c3a5
cmp dword [esi + 0x6c], 0
jne 0x44c707
cmp eax, 0xb
je 0x44c3a5
cmp eax, 0xc
je 0x44c3a5
cmp eax, 0x85
je 0x44c3a5
cmp eax, 0x2028
je 0x44c3a5
cmp eax, 0x2029
jne 0x44c707
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x44c351
jmp 0x44c707
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
cmp eax, 0x180e
jg 0x44c406
je 0x44c707
cmp eax, 0xa0
jg 0x44c3fa
je 0x44c707
cmp eax, 9
je 0x44c707
cmp eax, 0x20
jne 0x44c43c
jmp 0x44c707
cmp eax, 0x1680
jne 0x44c43c
jmp 0x44c707
cmp eax, 0x205f
jg 0x44c431
je 0x44c707
cmp eax, 0x2000
jl 0x44c43c
cmp eax, 0x200a
jle 0x44c707
cmp eax, 0x202f
jne 0x44c43c
jmp 0x44c707
cmp eax, 0x3000
je 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c3c1
jmp 0x44c707
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
cmp eax, 0x180e
jg 0x44c494
je 0x44c4c6
cmp eax, 0xa0
jg 0x44c488
je 0x44c4c6
cmp eax, 9
je 0x44c4c6
cmp eax, 0x20
je 0x44c4c6
jmp 0x44c707
cmp eax, 0x1680
je 0x44c4c6
jmp 0x44c707
cmp eax, 0x205f
jg 0x44c4bb
je 0x44c4c6
cmp eax, 0x2000
jl 0x44c707
cmp eax, 0x200a
jle 0x44c4c6
cmp eax, 0x202f
je 0x44c4c6
jmp 0x44c707
cmp eax, 0x3000
jne 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c45b
jmp 0x44c707
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
cmp eax, 0x85
jg 0x44c509
je 0x44c707
cmp eax, 0xa
jl 0x44c51b
cmp eax, 0xd
jg 0x44c51b
jmp 0x44c707
cmp eax, 0x2028
jl 0x44c51b
cmp eax, 0x2029
jle 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c4e1
jmp 0x44c707
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
cmp eax, 0x85
jg 0x44c558
je 0x44c566
add eax, 0xfffffff6
cmp eax, 3
jbe 0x44c566
jmp 0x44c707
add eax, 0xffffdfd8
cmp eax, 1
ja 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c536
jmp 0x44c707
cmp edx, dword [ebp - 0x18]
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c5a4
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c57f
jmp 0x44c707
cmp edx, dword [ebp - 0x18]
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c707
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c5be
jmp 0x44c707
cmp edx, dword [ebp - 0x18]
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c626
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c601
jmp 0x44c707
cmp edx, dword [ebp - 0x18]
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c707
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c640
jmp 0x44c707
cmp edx, dword [ebp - 0x18]
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c308
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c6a4
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c683
jmp 0x44c707
cmp edx, dword [ebp - 0x18]
jge 0x44c707
cmp edi, dword [esi + 0x7c]
jae 0x44c6e2
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c707
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44c707
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c6b7
jmp 0x44c707
cmp dword [esi + 0x8c], 0
je 0x44c707
cmp edi, dword [esi + 0x88]
jbe 0x44c707
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
cmp dword [ebp - 0x34], 0
jne 0x4101fe
cmp edi, dword [ebp - 0x10]
je 0x4100e3
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ecx, dword [ebp - 0x10]
sub edi, 2
cmp dword [ebp - 0x1c], 0x11
mov dword [ebp - 8], edi
jne 0x44c763
cmp edi, ecx
jbe 0x44c765
cmp word [edi], 0xa
jne 0x44c763
cmp word [edi - 2], 0xd
jne 0x44c763
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, ecx
jne 0x44c71a
jmp 0x4100e3
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 0x44c79b
lea edx, [ebx + 4]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ebx, dword [ebp - 0x14]
jmp 0x4100e0
mov edx, dword [ebp - 0x14]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
add ebx, 4
jmp 0x4100e0
movzx ecx, word [ebx]
cmp ecx, 0x7b
je 0x44caf7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
cmp ecx, 0x7a
jne 0x44c830
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ebx, dword [ebp - 0x1c]
mov ecx, 0x81
movzx eax, word [ebx]
cmp ax, cx
je 0x44ca8d
mov ecx, 0x88
cmp ax, cx
jb 0x4100e0
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.0040ff20
add esp, 0x14
jmp 0x41009b
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.0040ff20
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x44c857
mov ecx, dword [ebp - 0x1c]
cmp dword [esi + 0xb8], ecx
jne 0x41009b
jmp 0x44c862
test eax, eax
jne 0x41009b
mov ecx, dword [ebp - 0x1c]
mov eax, 0x81
cmp word [ecx], ax
je 0x44cac0
add ebx, 4
jmp 0x4100e0
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c893
sub edi, 2
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c8be
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44c8e0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f22]
mov dword [ebp - 0x2c], eax
cmp edi, dword [ebp - 0x10]
je 0x4100e3
cmp dword [ebp - 0x24], 0
lea edx, [edi - 2]
mov dword [ebp - 0x14], edx
jne 0x44c90f
movzx ecx, word [edx]
jmp 0x44c955
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c92a
sub edx, 2
mov dword [ebp - 0x14], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c955
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44c977
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [ebp - 0x2c]
movzx eax, word [eax*2 + 0x4a6530]
movzx edx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x4a64f0], eax
je 0x44b98d
mov edi, dword [ebp - 0x14]
mov dword [ebp - 8], edi
mov dword [ebp - 0x2c], edx
jmp 0x44c8f5
mov dword [esi + 0x9c], 2
jmp 0x410862
movzx ecx, word [ebx + 2]
lea eax, [ebx + ecx*2]
cmp dword [esi + 0x80], eax
jae 0x44e577
cmp word [ebx], 0x77
je 0x4108b1
cmp word [eax], 0x77
jne 0x44e577
jmp 0x4108b1
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x4a6440]
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x41009b
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x14c]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x4c]
cmp eax, ecx
je case.0x40ffa5.157
push eax
call dword [0x4a6438]
add esp, 4
jmp case.0x40ffa5.157
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x44ca7c
push eax
call dword [0x4a6438]
add esp, 4
jmp 0x44ca7c
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0xb0], ecx
mov eax, edi
jmp 0x41009b
mov eax, 0xfffffffa
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov dword [esi + 0xb8], ebx
mov eax, 0xfffffc1b
jmp 0x41009b
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x41009b
mov ecx, dword [ebp + 8]
mov dword [esi + 0x80], ecx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x90], eax
mov eax, 0xfffffc1a
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x41009b
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 0x410096
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp eax, dword [esi + 0x88]
jmp 0x44cb89
cmp ecx, dword [esi + 0x88]
jbe case.0x40ffa5.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x40ffa5.157
mov eax, 0xfffffff4
jmp 0x41009b
mov eax, 0xfffffff2
jmp 0x41009b
cmp eax, 0xfffffffe
jne 0x44cbbf
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jb case.0x40ffa5.157
cmp edi, dword [esi + 0x88]
jmp 0x44cb89
mov dword [ebp - 0x14], eax
cmp edi, edx
jl 0x44cbeb
mov edi, eax
jmp 0x44cc50
mov eax, dword [ebp - 8]
push dword [ebp - 0x34]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.0048ece3
add esp, 0xc
test eax, eax
js 0x44cc15
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 0x1c]
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edi, dword [ebp - 0x28]
jl 0x44cbe8
jmp 0x44cc45
cmp eax, 0xfffffffe
jne 0x44cc42
cmp dword [esi + 0x8c], 0
je 0x44cc42
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x44cc42
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
cmp edx, edi
jb case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, edi
jae 0x44cc50
xor eax, eax
jmp 0x41009b
cmp ecx, 0xfffffffe
jne 0x44cc97
mov eax, dword [esi + 0x7c]
jmp 0x44cc9a
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp eax, dword [esi + 0x7c]
jb case.0x40ffa5.157
jmp 0x44cb7b
mov eax, edi
sub edi, 2
cmp eax, dword [ebp - 0x20]
je case.0x40ffa5.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44ccdb
sub edi, 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.0040ff20
add esp, 0x14
test eax, eax
je 0x44ccb5
jmp 0x41009b
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.0040ff20
add esp, 0x14
cmp dword [ebp - 0x24], 0
je 0x44cded
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], eax
jge case.0x40ffa5.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0x44cdd5
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cd7b
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 0x44cd8e
cmp edi, 0x6e
je case.0x40ffa5.157
jmp 0x44cdac
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x28]
test byte [edx + ecx], al
je case.0x40ffa5.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040ff20
add esp, 0x14
test eax, eax
je 0x44cd2d
jmp 0x41009b
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp ecx, dword [esi + 0x88]
jmp 0x44cb89
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], eax
jge case.0x40ffa5.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cb6e
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x44ce29
cmp edi, 0x6e
je case.0x40ffa5.157
jmp 0x44ce44
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x28]
test byte [edx + ecx], al
je case.0x40ffa5.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
inc dword [ebp - 0x10]
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040ff20
add esp, 0x14
test eax, eax
je 0x44cdf5
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x44ceda
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ceda
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 - 0x2c]
call fcn.0048f00c
add esp, 4
test eax, eax
je case.0x40ffa5.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040ff20
add esp, 0x14
test eax, eax
je 0x44ce92
jmp 0x41009b
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp edi, dword [esi + 0x88]
jmp 0x44cb89
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp edx, dword [esi + 0x7c]
jb case.0x40ffa5.157
cmp edx, dword [esi + 0x88]
jmp 0x44cb89
mov ecx, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp ecx, dword [esi + 0x7c]
jb case.0x40ffa5.157
jmp 0x44cb83
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov edx, dword [ebp - 0x1c]
lea ecx, [edx + edx]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jge case.0x40ffa5.157
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44cfc9
lea eax, [edx + edx]
push eax
push dword [ebp - 0x14]
push edi
call fcn.004215e4
add esp, 0xc
test eax, eax
jne 0x44cfc9
add edi, dword [ebp - 0x2c]
jmp 0x44d003
mov edx, dword [ebp - 0x28]
test edx, edx
jle 0x44cbbf
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
sub eax, ecx
cmp edi, eax
ja 0x44cbbf
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.004215e4
add esp, 0xc
test eax, eax
jne 0x44cbbf
mov ecx, dword [ebp - 0x28]
lea edi, [edi + ecx*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040ff20
mov ecx, dword [ebp - 0x2c]
add esp, 0x14
mov edx, dword [ebp - 0x1c]
test eax, eax
je 0x44cf9b
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
cmp dword [ebp - 0xc], ecx
je 0x44d080
cmp dword [ebp - 0x1c], ecx
jne case.0x40ffa5.157
inc eax
add edi, 2
mov dword [ebp - 0x10], 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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d05a
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0xc], eax
jne case.0x40ffa5.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0x10], 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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d0ce
jmp 0x41009b
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.0040ff20
add esp, 0x14
cmp dword [ebp - 0x24], 0
je 0x44d1c9
test eax, eax
jne 0x41009b
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0xc]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d18f
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 - 0x18], ecx
je case.0x40ffa5.157
cmp dword [ebp - 0x1c], ecx
je case.0x40ffa5.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0x10], 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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d14a
jmp 0x41009b
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
cmp dword [ebp - 0x18], ecx
je case.0x40ffa5.157
cmp dword [ebp - 0x1c], ecx
je case.0x40ffa5.157
inc eax
add edi, 2
mov dword [ebp - 0x10], 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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d1d1
jmp 0x41009b
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.0040ff20
add esp, 0x14
cmp dword [ebp - 0x24], 0
je 0x44d2c8
test eax, eax
jne 0x41009b
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0xc]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d297
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 - 0x18], ecx
je case.0x40ffa5.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0x10], 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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d252
jmp 0x41009b
test eax, eax
jne 0x41009b
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0xc]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x18], eax
je case.0x40ffa5.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0x10], 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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d2d0
jmp 0x41009b
cmp ecx, 0xa
ja case.default.0x4481ca
jmp dword [ecx*4 + 0x44ea70]
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d37f
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d37f
add edi, 2
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d34f
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d41f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d41f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d441
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, 9
je 0x44d466
cmp eax, 5
je 0x44d466
cmp eax, 8
je 0x44d466
xor eax, eax
jmp 0x44d46b
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d3d4
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d50d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d50d
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d52f
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b7e70], edx
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d4c2
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d5f2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d5f2
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d614
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d5a7
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d6d0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d6d0
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d6f2
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f20]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d685
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d7ae
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d7ae
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d7d0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x44d7f7
cmp eax, 3
je 0x44d7f7
xor eax, eax
jmp 0x44d7fc
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d763
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d8a1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d89e
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, dword [ebp - 0xc]
cmp ecx, 0x180e
ja 0x44d8ee
je 0x44d973
cmp ecx, 0x85
ja 0x44d8d5
je 0x44d973
cmp ecx, 9
jb case.0x44d90a.8203
cmp ecx, 0xd
jbe 0x44d973
cmp ecx, 0x20
jne case.0x44d90a.8203
jmp 0x44d973
cmp ecx, 0xa0
je 0x44d973
cmp ecx, 0x1680
jne case.0x44d90a.8203
jmp 0x44d973
cmp ecx, 0x202f
ja 0x44d911
je 0x44d973
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x44d90a.8203
movzx eax, byte [eax + 0x44eaa4]
jmp dword [eax*4 + 0x44ea9c]
cmp ecx, 0x205f
je 0x44d973
cmp ecx, 0x3000
je 0x44d973
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d943
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b7e70], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.157
mov eax, dword [ebp - 0xc]
jmp 0x44d97d
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d853
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
je 0x44da1d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44da1d
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 - 0x14], ecx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x4b3030]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x44da43
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6530]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b7e70]
cmp eax, 1
je 0x44da6f
cmp eax, 3
je 0x44da6f
cmp edx, 0x5f
je 0x44da6f
xor eax, eax
jmp 0x44da74
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44d9cc
jmp 0x41009b
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44db16
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44db16
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax*4 + 0x4a52c0]
lea eax, [eax*4 + 0x4a52c0]
cmp ecx, edx
jb 0x44db38
lea eax, [eax + 4]
cmp ecx, edx
je 0x44db6d
mov edx, dword [eax]
cmp ecx, edx
jae 0x44db2b
cmp dword [ebp - 0x38], 0
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44dacb
jmp 0x41009b
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.157
jmp 0x44db42
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.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44dbe7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dbe7
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp ecx, 0x24
je 0x44dc12
cmp ecx, 0x40
je 0x44dc12
cmp ecx, 0x60
je 0x44dc12
cmp ecx, 0xa0
jb 0x44dc06
cmp ecx, 0xd7ff
jbe 0x44dc12
cmp ecx, 0xe000
jae 0x44dc12
xor eax, eax
jmp 0x44dc17
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44db9c
jmp 0x41009b
test eax, eax
jne 0x41009b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf15
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44dc9f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dc9f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44dcc1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x44dd81
mov ebx, ecx
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
je 0x44dd22
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dd22
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b3030]
shl eax, 7
and ecx, 0x8000007f
jns 0x44dd44
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6530]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4a64f0], eax
je 0x44dd7b
mov eax, dword [ebp - 0x14]
mov ebx, ecx
lea edi, [edi + eax*2]
mov eax, dword [esi + 0x7c]
cmp edi, eax
jb 0x44dce3
jmp 0x44dd7e
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x44ddaa
cmp edi, eax
jb 0x44ddaa
cmp edi, dword [esi + 0x88]
jbe 0x44ddaa
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
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.0040ff20
add esp, 0x14
test eax, eax
je 0x44dc54
jmp 0x41009b
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x4106c2
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x4106c2
cmp edx, 1
je case.0x40ffa5.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40ffa5.157
jmp 0x4106c2
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
jmp 0x4106dd
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4481ca
jmp dword [eax*4 + 0x44ead0]
cmp ecx, 0xd
ja 0x44de7b
je 0x44de60
cmp ecx, 0xa
je case.0x44de3b.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44de92
cmp edi, dword [esi + 0x7c]
jae case.0x44de3b.13
cmp word [edi], 0xa
jne case.0x44de3b.13
add edi, 2
jmp case.0x44de3b.13
cmp ecx, 0x85
je 0x44de92
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x180e
ja 0x44dee5
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x44ded4
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x205f
ja 0x44df1c
je case.0x40ffa5.157
cmp ecx, 0x2000
jb case.0x44de3b.13
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x3000
je case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x180e
ja 0x44df71
je case.0x44de3b.13
cmp ecx, 0xa0
ja 0x44df60
je case.0x44de3b.13
cmp ecx, 9
je case.0x44de3b.13
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x205f
ja 0x44dfa8
je case.0x44de3b.13
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe case.0x44de3b.13
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x3000
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x85
ja 0x44dfde
je case.0x40ffa5.157
cmp ecx, 0xa
jb case.0x44de3b.13
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x2028
jb case.0x44de3b.13
cmp ecx, 0x2029
jbe case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x85
ja 0x44e01a
je case.0x44de3b.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp case.0x44de3b.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x100
jae case.0x44de3b.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x100
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x100
jae case.0x44de3b.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x100
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x100
jae case.0x44de3b.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
jmp case.0x44de3b.13
cmp ecx, 0x100
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40ffa5.157
jmp case.0x44de3b.13
cmp edi, dword [esi + 0x7c]
jb case.0x44de3b.13
cmp dword [esi + 0x18], 0
jne case.0x44de3b.13
cmp dword [esi + 0x1c], 2
jne case.0x44de3b.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44de3b.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
jmp case.0x44de3b.13
test eax, eax
jne 0x41009b
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40ffa5.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf15
mov eax, dword [ebp - 0x1c]
cmp eax, 0xc
jne 0x44e19f
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44e16d
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fc41
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
jmp 0x44e199
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44e199
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44e199
cmp edx, 1
je case.0x40ffa5.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x40ffa5.157
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
movzx ecx, word [edi]
add eax, 0xfffffffa
add edi, 2
cmp eax, 0xf
ja case.default.0x4481ca
jmp dword [eax*4 + 0x44eb10]
cmp dword [esi + 0x8c], 0
je case.0x44e1b1.13
cmp edi, dword [esi + 0x7c]
jb case.0x44e1b1.13
cmp dword [esi + 0x18], 0
jne case.0x44e1b1.13
cmp dword [esi + 0x1c], 2
jne case.0x44e1b1.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44e1b1.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x447692
jmp case.0x44e1b1.13
cmp ecx, 0xd
ja 0x44e240
je 0x44e225
cmp ecx, 0xa
je case.0x44e1b1.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44e257
cmp edi, dword [esi + 0x7c]
jae case.0x44e1b1.13
cmp word [edi], 0xa
jne case.0x44e1b1.13
add edi, 2
jmp case.0x44e1b1.13
cmp ecx, 0x85
je 0x44e257
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x180e
ja 0x44e2aa
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x44e299
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x205f
ja 0x44e2e1
je case.0x40ffa5.157
cmp ecx, 0x2000
jb case.0x44e1b1.13
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x3000
je case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x180e
ja 0x44e336
je case.0x44e1b1.13
cmp ecx, 0xa0
ja 0x44e325
je case.0x44e1b1.13
cmp ecx, 9
je case.0x44e1b1.13
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x205f
ja 0x44e36d
je case.0x44e1b1.13
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe case.0x44e1b1.13
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x3000
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x85
ja 0x44e3a3
je case.0x40ffa5.157
cmp ecx, 0xa
jb case.0x44e1b1.13
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x2028
jb case.0x44e1b1.13
cmp ecx, 0x2029
jbe case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0x85
ja 0x44e3df
je case.0x44e1b1.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp case.0x44e1b1.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0xff
ja case.0x44e1b1.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0xff
ja case.0x44e1b1.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0xff
ja case.0x44e1b1.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
jmp case.0x44e1b1.13
cmp ecx, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40ffa5.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.0040ff20
add esp, 0x14
test eax, eax
je 0x44e12c
jmp 0x41009b
mov dword [esi + 0x9c], 2
jmp 0x41056c
movzx ecx, word [ebx + 2]
lea eax, [ebx + ecx*2]
cmp dword [esi + 0x80], eax
jae 0x4105b5
cmp word [ebx], 0x77
je 0x44e4e9
cmp word [eax], 0x77
jne 0x4105b5
xor edx, edx
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
je 0x410560
mov eax, dword [esi + 0xc]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + ebx*4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x34]
mov dword [eax + ebx*4 + 4], ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
sub ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x38]
mov dword [eax + ecx*4], esi
jmp 0x4105b5
cmp edx, 0xfffffc1b
jne 0x44e577
movzx eax, word [ebx]
mov ecx, 0x81
cmp ax, cx
je 0x44e569
cmp eax, 0x77
jne 0x44e560
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44e552
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [esi + 0xb8]
sub eax, ebx
neg eax
sbb eax, eax
and edx, eax
mov eax, edx
jmp 0x41009b
lea eax, [ebx + 4]
mov dword [esi + 0xb4], eax
mov dword [ebp - 0x14], eax
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 + 0x4a6440]
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.0040ff20
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x44e5d2
cmp edi, 0xfffffc19
jne 0x44e5df
cmp dword [esi + 0xb0], 0
je 0x44ca73
cmp edi, 0xfffffc1f
jne 0x44ca7c
mov edx, dword [esi + 0x80]
mov ecx, dword [ebp - 0x14]
call fcn.0048eeee
test eax, eax
jne 0x44ca7c
jmp 0x44e716
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 + 0x4a6440]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, 0xfffffc1c
jmp 0x41009b
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 + 0x4a6440]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov eax, 0xfffffc1d
jmp 0x41009b
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 + 0x4a6440]
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.0040ff20
add esp, 0x14
cmp eax, 1
je 0x44e6c4
cmp eax, 0xfffffc19
jne 0x44e6d3
cmp dword [esi + 0xb0], 0
jne 0x44e6d3
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x41009b
mov eax, 0xfffffc1d
jmp 0x41009b
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4a6440]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009b
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x41009b
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 + 0x4a6440]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
add esp, 0x14
jmp 0x44e755
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x41009b
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x41009b
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 + 0x4a6440]
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.0040ff20
add esp, 0x14
cmp eax, 1
je 0x44e7b9
cmp eax, 0xfffffc19
jne 0x44e755
cmp dword [esi + 0xb0], 0
jne 0x44e755
jmp 0x44e74f
cmp edi, 0x9f
je 0x410079
cmp dword [esi + 0xa8], 0
jne 0x410079
cmp dword [esi + 0x60], 0
jne case.0x40ffa5.157
cmp dword [esi + 0x64], 0
je 0x410079
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x40ffa5.157
jmp 0x410079
inc dword [esi]
mov eax, 0xfffffff8
jmp 0x41009b