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 0x446918
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 0x44e871
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x410953
cmp dword [esi + 0x9c], 2
je 0x446949
movzx ecx, word [ebx]
mov edi, ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0
cmp edi, 0xa1
ja case.0x40ffa5.98
movzx eax, byte [edi + 0x410aac]
jmp dword [eax*4 + 0x410960]
movzx eax, word [ebx + 2]
mov edi, ebx
add eax, eax
mov ecx, 0x88
sub edi, eax
mov dword [ebp - 0x20], edi
movzx eax, word [edi]
cmp ax, cx
jae 0x4475dd
mov ecx, 0x81
cmp ax, cx
je 0x4475dd
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
cmp eax, 0x7d
jb 0x40fff3
mov dword [ebp - 0x14], 0x80
cmp ax, word [ebp - 0x14]
jbe 0x44cbb8
mov dword [ebp - 0x14], 0x82
cmp ax, word [ebp - 0x14]
je 0x44cbb8
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
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x44764f
mov eax, 0x81
cmp word [edi], ax
je 0x44cb5e
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x44e82b
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x41093f
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x88
jae 0x44ca15
cmp edi, 0x81
je 0x44ca15
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 + 0x4a6720]
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 0x44e871
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], edi
cmp eax, edi
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x410130
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448518
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x410152
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f22]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x4101ed
mov ebx, dword [ebp - 0x28]
mov esi, eax
cmp dword [ebp - 0x24], 0
mov edi, 1
movzx ecx, word [esi]
je 0x410193
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44853d
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x4101b5
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x14]
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x4a67d0], eax
jne 0x4102e7
mov ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x28]
mov dword [ebp - 8], esi
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
jne 0x448561
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 - 0x20], eax
mov edx, ecx
mov dword [ebp - 0x30], ebx
mov eax, edx
cmp eax, 0x6d
jle 0x410722
mov edx, dword [ebp - 0x2c]
mov ecx, 1
mov eax, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x24], 0
je 0x448826
mov dword [ebp - 0x28], 1
cmp eax, 1
jl 0x410781
nop
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
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 0x4487f0
cmp ecx, 0xff
ja 0x448818
mov esi, dword [ebp - 0x20]
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 - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x10]
jle 0x410250
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], ecx
je 0x410200
test edx, edx
jne 0x44cd69
mov ecx, eax
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x24], edx
je 0x4488f9
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 0x410173
jmp 0x4101de
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
cmp dword [ebp - 0x24], 0
je 0x448d2a
movzx edi, word [ebx + 2]
add ebx, 2
mov eax, edi
mov edx, 1
and eax, 0xfc00
cmp eax, 0xd800
je 0x448c77
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp edi, 0x80
jae 0x448c9b
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 - 0x28], ecx
lea edi, [ecx + ecx]
mov dword [ebp - 0x14], edi
test eax, eax
jne 0x4475f3
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, ecx
mov dword [esi + 0x94], eax
cmp edi, dword [esi + 0x14]
jge 0x447618
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jg 0x447628
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x28]
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 - 0x20]
mov ecx, dword [ebp - 0x1c]
jmp 0x410048
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
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 0x4482e0
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x4b4b10]
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 + 0x4a6810]
mov dword [ebp - 0x14], ecx
cmp eax, 9
jne 0x448308
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x4a55a0]
lea eax, [eax*4 + 0x4a55a0]
cmp edx, ecx
jb 0x44850a
lea eax, [eax + 4]
cmp edx, ecx
je 0x410485
mov ecx, dword [eax]
cmp edx, ecx
jae 0x410473
jmp 0x44850a
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 0x448c48
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 0x44cf97
test edi, edi
jle 0x410200
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 0x410200
jmp 0x4104e5
movzx edx, word [ebx + 4]
mov dword [ebp - 0x28], 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 - 0x38], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x28]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x20], 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
mov edi, edi
cmp edi, 0x88
jae 0x44e51e
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 + 0x4a6720]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x44e575
cmp edx, 0xfffffc20
je 0x44e52d
test edx, edx
je 0x44e552
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 0x410938
mov eax, 1
movsx edi, byte [ecx + 0x4a670c]
movsx edx, byte [ecx + 0x4a6700]
mov dword [ebp - 0x2c], 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 0x449b0d
cmp edi, 0xf
je 0x449b04
or ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
test edx, edx
jg 0x449b2c
mov edi, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x410200
test eax, eax
je 0x44b0ae
test ecx, ecx
jns 0x44d383
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 0x44dcb3
cmp dword [ebp - 0x24], 0
je 0x44e18b
test eax, eax
jne 0x41009d
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 0x44cf7f
cmp dword [ebp - 0x1c], 0xc
jne 0x4106c5
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44de3c
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fd16
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 0x44de75
mov eax, dword [ebp - 0x1c]
cmp eax, 0xc
jne 0x44de96
cmp dword [esi + 0x8c], 0
jne 0x44e149
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 0x41009d
jmp 0x410680
sub eax, 0x62
cmp eax, 0xb
ja case.default.0x410735
movzx eax, byte [eax + 0x410b58]
jmp dword [eax*4 + 0x410b50]
lea eax, [edx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jb 0x4108d9
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], 1
movsx ecx, byte [eax + 0x4a6700]
mov dword [ebp - 0x10], ecx
movsx ecx, byte [eax + 0x4a670c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x410235
mov ecx, bind
jmp 0x410232
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 0x4488cc
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x448894
cmp edx, 0xff
ja 0x4488be
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], al
jne 0x4108e4
cmp dword [ebp - 0x34], 0
jne 0x410200
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 0x41009d
jmp 0x44cd1f
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 0x41009d
jmp 0x44732b
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x28], 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 + 0x4a6720]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x44ca24
test edx, edx
jne 0x44e59f
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 - 0x28]
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 0x447384
mov eax, dword [ebp - 8]
jmp 0x44767b
mov edi, dword [ebp - 0x24]
jmp 0x447c88
mov edx, 1
jmp 0x410758
mov edi, 2
jmp 0x4104cb
xor ecx, ecx
jmp 0x448dbd
xor eax, eax
jmp 0x4105db
mov eax, 0xfffffc19
jmp 0x41009d
mov eax, 0xfffffffb
jmp 0x41009d
mov eax, 0xffffffeb
jmp 0x41009d
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x44693a
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.0040ff20
add esp, 0x14
jmp 0x41009d
sub ecx, eax
test ecx, ecx
jle 0x446942
neg ecx
mov eax, ecx
jmp 0x41009d
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 0x410200
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x44ca50
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x4a6720]
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 - 0x28], 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 0x446a11
cmp eax, 0xfffffc20
jne 0x4469f1
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x41009d
cmp word [ebx], 0x77
je 0x4469f9
cmp word [ecx], 0x77
jne 0x41009d
jmp 0x4469f9
test eax, eax
jne 0x41009d
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x4469a3
mov ecx, dword [ebp + 8]
jmp 0x446a1a
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x446a30
cmp eax, 0x77
jne case.0x40ffa5.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446a30
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 0x4470a7
cmp eax, dword [ebp - 0x28]
jne 0x44c7de
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x410200
mov dword [ebp - 0x20], 0
jmp 0x4473bf
mov dword [ebp - 0x20], 0
mov eax, ebx
mov dword [ebp - 0x14], 0
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
cmp edi, 0x88
jb 0x446aad
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 + 0x4a6720]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x4474ae
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x28]
mov dword [ebp + 0xc], 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
mov eax, dword [esi + 0x84]
cmp dword [ebp - 8], eax
je 0x4474ff
mov dword [ebp - 8], eax
jmp 0x446a9b
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [ebp - 0x20], eax
cmp word [ebx], 0x76
jne 0x446bf6
cmp dword [0x4c8524], 0
je 0x446bed
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 0x446bb7
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 [0x4c8524]
add esp, 4
test eax, eax
jg case.0x40ffa5.157
js 0x41009d
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
add ebx, 8
sub eax, 4
mov dword [ebp - 0x20], eax
movzx eax, word [ebx]
xor ecx, ecx
mov dword [ebp - 0x34], eax
add eax, 0xffffff73
mov dword [ebp - 0x1c], ecx
cmp eax, 0x10
ja case.0x446c16.146
movzx eax, byte [eax + 0x44e898]
jmp dword [eax*4 + 0x44e880]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x446db7
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x446cba
cmp eax, dword [ecx + 4]
je 0x446cba
xor ecx, ecx
jmp case.0x446c16.145
cmp dword [esi + 0xa8], ecx
je case.0x446c16.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 - 0x28], eax
test ecx, ecx
jle 0x446db7
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x1c], 0
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
dec ecx
movzx eax, word [eax]
cmp eax, dword [ebp - 0x14]
je 0x446cba
mov edx, dword [ebp - 0x28]
mov eax, dword [esi + 0x24]
lea edx, [edx + eax*2]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 8]
test ecx, ecx
jg 0x446c82
jmp 0x446db7
movzx ecx, word [ebx + 2]
add ecx, ecx
cmp ecx, dword [ebp + 0xc]
jge 0x446c3f
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x446c3f
mov ecx, 1
jmp 0x446d99
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 0x446db7
mov dword [ebp - 0x1c], 0
movzx ecx, word [ecx]
dec eax
add ecx, ecx
mov dword [ebp - 0x28], eax
cmp ecx, dword [ebp + 0xc]
jge 0x446cff
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x446cba
mov eax, dword [esi + 0x24]
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], ecx
test eax, eax
jg 0x446ce8
jmp 0x446db7
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 0x446da5
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x446d4f
mov dword [ebp + 0xc], eax
mov eax, 0x92
mov dword [ebp - 0x1c], 1
cmp word [ebx], ax
jne 0x446d63
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x446d7f
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x446d71
mov eax, dword [ebp - 0x34]
mov ecx, 2
movzx eax, byte [eax + 0x4a6720]
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 + 0x4a6720]
jmp 0x446dbd
test eax, eax
je 0x446db4
cmp eax, 0xfffffc20
jne 0x41009d
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x446dd2
cmp word [ebx - 4], 0x77
jne 0x40ff7f
cmp edi, 0x8c
jne 0x4100e8
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 0x41009d
movzx edi, word [ebx + 2]
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, edi
lea ecx, [edi + edi]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jl 0x446e35
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x446e7e
mov eax, dword [esi + 0x10]
lea edx, [edi + edi]
mov ecx, dword [esi + 0xc]
sub eax, edi
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jl 0x446e7b
mov eax, dword [esi + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x446e75
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
mov edx, dword [ebp - 8]
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 0x446eac
mov edi, 1
mov dword [esi + 0x9c], 0
jmp 0x446eae
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 0x446f27
cmp ecx, 0xfffffc19
je 0x446f27
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x446f0f
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446942
cmp word [ebx], 0x77
je 0x446f17
cmp word [eax], 0x77
jne 0x446942
jmp 0x446f17
test ecx, ecx
jne 0x446942
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446eae
jmp 0x446f30
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x40ffa5.157
test edi, edi
jne 0x410098
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446f42
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x410200
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x446f86
mov dword [ebp - 0x14], 1
mov dword [esi + 0x9c], 0
jmp 0x446f8d
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 0x446fe6
jne 0x446ff9
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x447014
cmp word [ebx], 0x77
je 0x446fd6
cmp word [eax], 0x77
jne 0x447014
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446f8d
jmp 0x447022
mov eax, ecx
sub eax, 0
je 0x446fd6
dec eax
je case.0x40ffa5.157
jmp 0x446942
cmp ecx, 0xfffffc19
je case.0x40ffa5.157
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x446942
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447014
cmp dword [ebp - 0x14], 0
jne 0x410098
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x410200
cmp dword [ebp - 0x24], 0
je 0x44707c
movzx ecx, word [ebx + 2]
test ecx, ecx
jle 0x447096
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 0x447076
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x447045
jmp 0x447099
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 0x4470a7
mov dword [esi + 0x88], eax
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x410200
cmp dword [0x4c8524], 0
je 0x447185
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 0x44714c
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 [0x4c8524]
add esp, 4
test eax, eax
jg case.0x40ffa5.157
js 0x41009d
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 0x4471a5
xor edx, edx
jmp 0x4471a9
movzx edx, word [edi + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x4471d0
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x4471ca
cmp eax, dword [ecx + 0x14]
jne 0x4471ca
mov eax, 0xffffffe6
jmp 0x41009d
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4471b6
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 0x447210
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x4c], eax
jmp 0x44722f
lea eax, [ecx*4]
push eax
call dword [0x4a671c]
add esp, 4
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x44caea
mov ecx, dword [ebp - 0x48]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00421070
mov eax, 0x88
add esp, 0xc
cmp word [edi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
test eax, eax
je 0x44725b
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 + 0x4a6720]
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.00421070
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 0x4472fd
cmp edi, 0xfffffc19
je 0x4472fd
cmp edi, 0xfffffc1c
jl 0x4472cc
cmp edi, 0xfffffc20
jle 0x44caa1
test edi, edi
jne 0x44cac1
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 0x44ca98
mov eax, dword [ebp - 0x28]
jmp 0x44724d
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x447314
push eax
call dword [0x4a6718]
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x410200
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44732b
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x410200
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 0x44734c
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 0x41009d
jmp 0x410200
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447384
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40ff7f
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x20], 1
cmp edi, 0x86
je 0x4473bf
cmp edi, 0x8b
jne 0x446a81
movzx edx, word [ebx + 4]
mov dword [ebp - 0x28], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x446a81
mov ecx, ebx
shl eax, 2
sub ecx, dword [esi + 0x74]
sar ecx, 1
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], 0
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 - 0x28]
mov dword [ebp - 0x2c], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x10]
mov edx, eax
sub edx, dword [esi + 0x78]
sub ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp edi, 0x88
jb 0x447436
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 + 0x4a6720]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x447531
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x34]
mov dword [ebp + 0xc], 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 + 8], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 8], eax
je 0x4475b2
mov dword [ebp - 8], eax
jmp 0x447411
cmp ecx, 0xfffffc20
jne 0x4474db
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446942
cmp word [ebx], 0x77
je 0x4474e3
cmp word [eax], 0x77
jne 0x446942
jmp 0x4474e3
test ecx, ecx
jne 0x446942
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x447512
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp 0x446a9b
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4474ff
jmp 0x4470a7
cmp dword [ebp - 0x14], 0
jne 0x4470a7
cmp dword [ebp - 0x20], 0
je case.0x40ffa5.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x410200
cmp ecx, 0xfffffc20
jne 0x44755e
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446942
cmp word [ebx], 0x77
je 0x447566
cmp word [eax], 0x77
jne 0x446942
jmp 0x447566
test ecx, ecx
jne 0x446942
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 0x44740e
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x4475c0
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2c]
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]
sub ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x1c]
jmp 0x4475c0
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4475b2
cmp dword [ebp - 0x20], 0
jne 0x4470a7
test ecx, ecx
je case.0x40ffa5.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x410200
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 0x41009d
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
cmp eax, 0x7b
je 0x44cb93
cmp dword [ebp - 8], ecx
jne 0x44c828
mov edx, dword [ebp - 8]
jmp 0x410054
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x44767b
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 0x410200
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x4476a1
cmp eax, dword [esi + 0x78]
je case.0x40ffa5.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x4101fa
cmp eax, dword [esi + 0x7c]
je case.0x40ffa5.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4476e4
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.0048f201
add esp, 0xc
test eax, eax
je case.0x40ffa5.157
jmp 0x4101fa
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 0x4101fa
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x40ffa5.157
jmp 0x4101fa
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 0x410200
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x44781a
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4477e3
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0041fd16
add esp, 0xc
test eax, eax
jne 0x4101fa
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 0x41009d
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447788
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447785
cmp edx, 1
je 0x4101fa
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x447785
jmp 0x4101fa
cmp dword [esi + 0x4c], 0
jne case.0x40ffa5.157
cmp dword [esi + 0x8c], 0
je 0x4101fa
cmp eax, dword [esi + 0x88]
jbe 0x4101fa
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x410200
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 0x447824
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x447824
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x4478a2
push dword [ebp - 0x24]
push edi
push ecx
mov ecx, eax
call fcn.0041fd16
add esp, 0xc
test eax, eax
jne 0x4478d7
jmp 0x447785
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447788
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447785
cmp edx, 1
je 0x4478d7
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x447785
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 0x447788
jmp 0x447824
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 8]
je 0x447aa3
cmp eax, dword [esi + 0x78]
je 0x4479db
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x447922
sub edx, 2
cmp edx, dword [esi + 0x88]
jae 0x447930
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44795b
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 0x4479bd
cmp ecx, 0x5f
jne 0x44796e
mov eax, dword [ebp - 8]
lea edi, [ecx - 0x5e]
jmp 0x4479dd
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x447990
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x4479b3
cmp eax, 3
jne 0x4479d8
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4479dd
cmp ecx, 0x100
jae 0x4479d8
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x4479d8
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4479dd
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x447a45
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447a10
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 0x447a8c
cmp ecx, 0x5f
je 0x447bcd
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
js 0x447b79
jmp 0x447b7e
cmp dword [esi + 0x8c], 0
je 0x447a6a
cmp eax, dword [esi + 0x88]
jbe 0x447a6a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
xor ecx, ecx
mov ax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp ax, 5
jne 0x447bd7
cmp ecx, edi
je case.0x40ffa5.157
jmp 0x410200
cmp ecx, 0x100
jae 0x447a6a
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x447bcd
jmp 0x447a6a
cmp eax, dword [esi + 0x78]
je 0x447b43
cmp eax, dword [esi + 0x88]
ja 0x447ac0
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x447b23
cmp ecx, 0x5f
jne 0x447ad4
lea edi, [ecx - 0x5e]
jmp 0x447b45
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x447af6
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x447b19
cmp eax, 3
jne 0x447b40
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x447b45
mov edx, 0xff
cmp cx, dx
ja 0x447b43
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x447b40
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x447b45
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x447a45
cmp dword [esi + 0x58], 0
je 0x447bad
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x447bcd
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x447b7e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x447bcd
cmp eax, 3
jne 0x447a6a
lea ecx, [eax - 2]
jmp 0x447a6c
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x447a6a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x447a6a
mov ecx, 1
jmp 0x447a6c
cmp ecx, edi
jne case.0x40ffa5.157
jmp 0x410200
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x447c13
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x24]
cmp eax, ecx
jae 0x447c4b
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0041fd16
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
jmp 0x447c48
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447c45
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447c45
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 0x447c8b
add eax, 2
cmp eax, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
jb 0x447c8b
cmp dword [esi + 0x18], 0
jne 0x447c8b
cmp dword [esi + 0x1c], 2
jne 0x447c8b
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447c88
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x44cbd8
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x4101fa
cmp eax, ecx
jae 0x4101fa
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4101fa
add dword [ebp - 8], 2
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
add eax, 2
mov dword [ebp - 8], eax
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447d2e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447d2e
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 0x4101fa
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447d95
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447d95
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 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447dfc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447dfc
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 0x4101fa
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447e63
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447e63
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 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447eca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447eca
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 0x4101fa
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
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, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40ffa5.157
jmp 0x4101fa
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x447f9d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x447f9d
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 0x448009
je 0x447fbe
cmp ecx, 0xa
je 0x4101fa
jbe case.0x40ffa5.157
cmp ecx, 0xc
ja case.0x40ffa5.157
jmp 0x448020
cmp eax, edx
jb 0x447ff4
cmp dword [esi + 0x8c], 0
je 0x4101fa
cmp eax, dword [esi + 0x88]
jbe 0x4101fa
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
jmp 0x4101fa
cmp word [eax], 0xa
jne 0x4101fa
add eax, 2
mov dword [ebp - 8], eax
jmp 0x4101fa
cmp ecx, 0x85
je 0x448020
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x448078
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448078
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 0x4480bc
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x4480ab
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp 0x4101fa
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp 0x4101fa
cmp ecx, 0x205f
ja 0x4480f3
je case.0x40ffa5.157
cmp ecx, 0x2000
jb 0x4101fa
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp 0x4101fa
cmp ecx, 0x3000
je case.0x40ffa5.157
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x44814d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44814d
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 0x448191
je 0x4101fa
cmp ecx, 0xa0
ja 0x448180
je 0x4101fa
cmp ecx, 9
je 0x4101fa
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp 0x4101fa
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp 0x4101fa
cmp ecx, 0x205f
ja 0x4481c8
je 0x4101fa
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe 0x4101fa
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp 0x4101fa
cmp ecx, 0x3000
jne case.0x40ffa5.157
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x448222
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448222
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 0x448247
je case.0x40ffa5.157
cmp ecx, 0xa
jb 0x4101fa
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp 0x4101fa
cmp ecx, 0x2028
jb 0x4101fa
cmp ecx, 0x2029
jbe case.0x40ffa5.157
jmp 0x4101fa
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x4482ad
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4482ad
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 0x4482cc
je 0x4101fa
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp 0x4101fa
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x4101fa
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.0x448311
jmp dword [eax*4 + 0x44e8ac]
mov al, byte [ecx*8 + 0x4a3f21]
cmp al, 9
je 0x44833d
cmp al, 5
je 0x44833d
cmp al, 8
je 0x44833d
xor ecx, ecx
jmp 0x448359
cmp edi, 0xf
je case.0x40ffa5.157
jmp 0x41048e
mov ecx, 1
jmp 0x448359
movzx eax, byte [ecx*8 + 0x4a3f21]
xor ecx, ecx
cmp dword [eax*4 + 0x4b9970], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x40ffa5.157
jmp 0x41048e
mov eax, dword [ebp - 0x14]
xor edx, edx
movzx ecx, word [ebx + 4]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp ecx, dword [eax*4 + 0x4b9970]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x40ffa5.157
jmp 0x41048e
movzx eax, byte [ecx*8 + 0x4a3f21]
jmp 0x4483b0
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 0x41048e
movzx eax, byte [ecx*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x44833d
cmp eax, 3
je 0x44833d
xor ecx, ecx
jmp 0x448359
cmp edx, 0x180e
ja 0x44844f
je case.0x448311.0
cmp edx, 0x85
ja 0x448432
je case.0x448311.0
cmp edx, 9
jb case.0x448473.8203
cmp edx, 0xd
jbe case.0x448311.0
cmp edx, 0x20
je case.0x448311.0
jmp case.0x448473.8203
cmp edx, 0xa0
je case.0x448311.0
cmp edx, 0x1680
je case.0x448311.0
jmp case.0x448473.8203
cmp edx, 0x202f
ja 0x44847a
je case.0x448311.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x448473.8203
movzx eax, byte [edx + 0x44e8e0]
jmp dword [eax*4 + 0x44e8d8]
cmp edx, 0x205f
je case.0x448311.0
cmp edx, 0x3000
je case.0x448311.0
jmp case.0x448473.8203
movzx eax, byte [ecx*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x44833d
cmp eax, 3
je 0x44833d
cmp edx, 0x5f
je 0x44833d
xor ecx, ecx
jmp 0x448359
cmp edx, 0x24
je 0x44833d
cmp edx, 0x40
je 0x44833d
cmp edx, 0x60
je 0x44833d
cmp edx, 0xa0
jb 0x4484f7
cmp edx, 0xd7ff
jbe 0x44833d
cmp edx, 0xe000
jae 0x44833d
xor ecx, ecx
jmp 0x448359
cmp edi, 0x10
je case.0x40ffa5.157
jmp 0x41048e
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 0x410130
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
jmp 0x410193
cmp eax, edi
jb 0x4101fa
jmp 0x447831
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 - 0x1c], 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 - 0x28], eax
mov eax, dword [ebp - 0x1c]
sbb ecx, ecx
xor edi, edi
neg ecx
mov dword [ebp - 0x10], edi
dec ecx
mov dword [ebp - 0x20], ecx
test eax, eax
jle 0x44862c
dec eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
movzx edi, word [eax]
add edi, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp + 0xc]
jge 0x4485d6
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x4485d6
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448629
mov eax, dword [esi + 0x24]
mov edx, dword [ebp - 0x28]
lea edx, [edx + eax*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 8]
test eax, eax
jg 0x4485b0
jmp 0x44862c
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 0x44861f
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x44861f
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448629
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [ebx]
mov dword [ebp - 0x14], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0x448645
movzx eax, byte [eax + 0x44e914]
jmp dword [eax*4 + 0x44e90c]
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 - 0x2c], edi
movsx edi, byte [eax + 0x4a6700]
movsx eax, byte [eax + 0x4a670c]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x4486ad
mov dword [ebp - 0x1c], bind
jmp 0x4486ad
movzx edi, word [ebx + 2]
xor eax, eax
cmp word [ebx], 0x69
mov dword [ebp - 0x28], edi
sete al
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x4486a7
mov dword [ebp - 0x1c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
test ecx, ecx
je 0x40ff7f
jns 0x4486bf
test edi, edi
je 0x40ff7f
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edi, 1
jl 0x448701
push dword [ebp - 0x34]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.0048ef91
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44ccf7
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 - 0x20]
jle 0x4486ce
mov edx, dword [ebp - 0x1c]
cmp edi, edx
je 0x410200
cmp dword [ebp - 0x2c], 0
je 0x44cc47
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 0x41009d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x28], eax
jge case.0x40ffa5.157
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.0048ef91
add esp, 0xc
test eax, eax
js 0x44cc21
inc dword [ebp - 0x28]
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 0x44873c
jmp 0x41009d
push dword [ebp - 0x34]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.0048ef91
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44ccf7
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x410200
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 0x4487e5
mov ecx, bind
mov dword [ebp - 0x1c], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x410235
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 0x44cbd8
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x448861
cmp edi, 0x6e
je case.0x40ffa5.157
jmp 0x448883
mov esi, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x28]
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 0x448839
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 0x4477d9
jmp 0x4107e0
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], edx
jge 0x448971
mov ecx, dword [ebp - 0x10]
cmp eax, dword [esi + 0x7c]
jae 0x448949
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x44891b
cmp edi, 0x6e
jne 0x448938
jmp 0x44896e
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], al
mov eax, dword [ebp - 8]
je 0x44896e
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 0x448904
jmp 0x44896e
cmp dword [esi + 0x8c], 0
je 0x44896e
cmp eax, dword [esi + 0x88]
jbe 0x44896e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x34], 0
jne 0x410200
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 0x41009d
sub edi, 2
cmp edi, dword [ebp - 0x2c]
jae 0x448986
jmp 0x41009d
lea eax, [ebx + 4]
mov dword [ebp - 0x28], 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.0x4489e2
movzx eax, byte [eax + 0x44e924]
jmp dword [eax*4 + 0x44e91c]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x448a05
mov ecx, dword [ebp - 0x34]
movzx eax, al
and eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x448a10
mov eax, dword [ebp - 0x2c]
mov ecx, 1
mov dword [ebp - 0x34], ecx
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
movsx esi, byte [esi + 0x4a66aa]
movsx edi, byte [edi + 0x4a669e]
test esi, esi
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x20], edi
jne 0x448a8c
mov edx, dword [ebp - 8]
mov dword [ebp - 0x1c], bind
jmp 0x448a8c
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 - 0x2c], eax
movzx edi, word [ebx + 2]
sete cl
mov dword [ebp - 0x20], edi
test esi, esi
mov dword [ebp - 0x34], ecx
mov esi, dword [ebp + 0x10]
jne 0x448a6f
mov dword [ebp - 0x1c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x448a8c
mov eax, dword [ebp - 0x2c]
mov edi, 1
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], 1
cmp edi, 1
jl 0x448b0a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x24]
mov dword [ebp - 8], eax
test edx, edx
je 0x448ae2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448ae2
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 - 0x28]
call fcn.0048f2ba
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 0x448a98
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
cmp edi, dword [ebp - 0x1c]
je 0x40ff7f
test eax, eax
jne 0x44ced6
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
cmp edi, dword [ebp - 0x1c]
jl 0x448b30
mov edi, eax
jmp 0x448bcd
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp eax, dword [esi + 0x7c]
jae 0x448ba2
mov edx, dword [ebp - 0x24]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
test edx, edx
je 0x448b78
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448b78
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 - 0x28]
call fcn.0048f2ba
add esp, 4
test eax, eax
je 0x448bca
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x20], edi
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x1c]
jl 0x448b2d
jmp 0x448bc7
cmp dword [esi + 0x8c], 0
je 0x448bc7
cmp eax, dword [esi + 0x88]
jbe 0x448bc7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x410200
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 0x41009d
mov eax, edi
sub edi, 2
cmp eax, dword [ebp - 0x10]
je case.0x40ffa5.157
cmp dword [ebp - 0x24], 0
je 0x448c24
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x448c24
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 0x448bf8
jmp 0x41009d
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x44ce3f
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 0x4101fd
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 0x448cd5
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 + 0x4b4b10]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x448d09
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edi
cmp dword [ebp - 0x14], eax
jne case.0x40ffa5.157
jmp 0x410200
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x448d44
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x448d46
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x448d5d
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 0x4101fd
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
jmp 0x448e1e
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 0x448dab
cmp ecx, 0x35
je 0x448dab
xor edx, edx
jmp 0x448db0
mov edx, 1
mov dword [ebp - 0x2c], edx
add ebx, 4
jmp 0x448e1b
mov ecx, 1
mov dword [ebp - 0x18], bind
jmp 0x448dcf
xor ecx, ecx
mov dword [ebp - 0x18], 1
mov edx, dword [ebp - 0x2c]
add ebx, 2
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x10], ecx
jmp 0x448e1e
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 - 0x2c], edx
movsx eax, byte [ecx + 0x4a6700]
mov dword [ebp - 0x10], eax
movsx eax, byte [ecx + 0x4a670c]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x448e1b
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 0x44908b
and eax, 0xfc00
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x14], ebx
cmp eax, 0xd800
jne 0x448e6a
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 - 0x28], eax
mov eax, dword [ebp - 0xc]
cmp esi, 1
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x30], ebx
jle 0x449091
cmp edi, 0x2e
jb 0x448edf
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4b4b10]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x448eb0
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
mov ecx, dword [eax*8 + 0x4a3f24]
add ecx, edx
cmp ecx, edx
je 0x448ed9
lea edx, [ebp - 0x68]
call fcn.0048f6fe
mov edx, dword [ebp - 0x2c]
mov edi, eax
mov ecx, dword [ebp - 0x10]
jmp 0x448ee1
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], 1
cmp ecx, 1
jge 0x448ef5
mov eax, dword [ebp - 8]
jmp 0x448f71
mov eax, dword [esi + 0x7c]
sub eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x448f26
mov eax, dword [ebp - 0x1c]
add eax, eax
push eax
push dword [ebp - 0x14]
push ecx
call fcn.004216b4
add esp, 0xc
test eax, eax
jne 0x448f23
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x28]
mov dword [ebp - 8], eax
jmp 0x448f60
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x44cfbb
mov eax, dword [esi + 0x7c]
lea edx, [edi + edi]
sub eax, edx
cmp ecx, eax
ja 0x44cfbb
lea eax, [edi + edi]
push eax
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.004216b4
add esp, 0xc
test eax, eax
jne 0x44cfb8
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 0x448ef5
mov edx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x18]
je 0x410200
test edx, edx
jne 0x44cfd6
mov edx, eax
mov dword [ebp - 0x20], edx
cmp ecx, dword [ebp - 0x18]
jge 0x449027
mov eax, dword [esi + 0x7c]
sub eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x448fbb
mov eax, dword [ebp - 0x1c]
add eax, eax
push eax
push dword [ebp - 0x14]
push ecx
call fcn.004216b4
add esp, 0xc
test eax, eax
jne 0x448fb8
mov eax, dword [ebp - 0x28]
jmp 0x448fe3
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x448ff4
mov eax, dword [esi + 0x7c]
lea edx, [edi + edi]
sub eax, edx
cmp ecx, eax
ja 0x448ff4
lea eax, [edi + edi]
push eax
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.004216b4
add esp, 0xc
test eax, eax
jne 0x448ff4
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 0x448f90
jmp 0x449021
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x449024
cmp eax, dword [esi + 0x7c]
jb 0x449021
cmp eax, dword [esi + 0x88]
jbe 0x449021
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x410200
cmp eax, edx
jbe 0x4100e5
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 0x41009d
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 0x449081
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0x44903c
jmp 0x4100e5
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x4491e4
cmp dword [ebp - 0x24], 0
je 0x4490e4
cmp eax, 0x7f
jbe 0x4490e4
mov edi, dword [ebp - 0xc]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4b4b10]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x4490c9
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x2c]
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
mov ecx, dword [ebp - 0x10]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edi
jmp 0x4490f5
mov edi, dword [ebp - 0xc]
cmp eax, 0xff
ja 0x4490f5
mov eax, dword [esi + 0x40]
movzx eax, byte [eax + edi]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], 1
cmp ecx, 1
jl 0x44913a
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx esi, word [eax]
mov dword [ebp - 0x14], esi
cmp edi, esi
mov esi, dword [ebp + 0x10]
je 0x44912c
mov edi, dword [ebp - 0x1c]
cmp edi, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
jne case.0x40ffa5.157
inc dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x28], ecx
jle 0x449107
cmp ecx, dword [ebp - 0x18]
je 0x410200
test edx, edx
jne 0x44d09e
mov edx, eax
mov dword [ebp - 0x20], edx
cmp ecx, dword [ebp - 0x18]
jge 0x44919c
cmp eax, dword [esi + 0x7c]
jae 0x449174
movzx edx, word [eax]
cmp edi, edx
je 0x449166
cmp dword [ebp - 0x1c], edx
jne 0x449199
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x18]
jl 0x449155
jmp 0x449199
cmp dword [esi + 0x8c], 0
je 0x449199
cmp eax, dword [esi + 0x88]
jbe 0x449199
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x410200
cmp eax, edx
je 0x4100e5
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 0x41009d
cmp edi, dword [ebp - 0x20]
jne 0x4491b1
jmp 0x4100e5
mov dword [ebp - 0x14], 1
cmp ecx, 1
jge 0x4491f5
mov edi, dword [ebp - 8]
jmp 0x449221
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
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 0x4491f5
cmp ecx, dword [ebp - 0x18]
je 0x410200
test edx, edx
jne 0x44d115
mov eax, dword [ebp - 8]
mov edx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
cmp ecx, edi
jge 0x449262
mov edx, dword [ebp - 0xc]
cmp eax, dword [esi + 0x7c]
jae 0x4492aa
movzx eax, word [eax]
cmp edx, eax
jne 0x44925c
add dword [ebp - 8], 2
inc ecx
mov eax, dword [ebp - 8]
cmp ecx, edi
jl 0x449244
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x410200
cmp eax, edx
je 0x4100e5
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 0x41009d
cmp edi, dword [ebp - 0x20]
jne 0x449277
jmp 0x4100e5
cmp dword [esi + 0x8c], 0
je 0x44925f
cmp eax, dword [esi + 0x88]
jbe 0x44925f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
jmp 0x44925f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
cmp dword [ebp - 0x24], 0
je 0x4493e1
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 0x449324
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 - 0x28], ecx
cmp eax, 0xd800
jne 0x449364
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 - 0x28], ecx
cmp edi, 0x1f
jne 0x449376
cmp edx, ecx
je case.0x40ffa5.157
jmp 0x410200
cmp edx, 0x7f
jbe 0x4493b9
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x4b4b10]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4493a1
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edx
jmp 0x4493cc
cmp edx, 0xff
ja 0x4493ca
mov eax, dword [esi + 0x40]
movzx eax, byte [eax + edx]
jmp 0x4493cc
mov eax, edx
cmp edx, ecx
je case.0x40ffa5.157
cmp eax, ecx
je case.0x40ffa5.157
jmp 0x410200
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 0x4470a7
cmp ecx, 0xff
ja 0x44940e
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x40ffa5.157
add ebx, 4
jmp 0x4101fd
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], eax
jmp 0x4494d8
movzx edx, word [ebx + 2]
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], edx
cmp ecx, 0x42
je 0x44944d
cmp ecx, 0x4f
je 0x44944d
xor edx, edx
jmp 0x449452
mov edx, 1
mov dword [ebp - 0x2c], edx
add ebx, 4
jmp 0x4494d8
mov ecx, 1
xor eax, eax
jmp 0x44946a
mov ecx, 1
mov eax, ecx
mov dword [ebp - 0x18], bind
jmp 0x44947d
mov ecx, 1
xor eax, eax
mov dword [ebp - 0x18], ecx
add ebx, 2
jmp 0x449493
movzx edx, word [ebx + 2]
xor eax, eax
mov ecx, 1
mov dword [ebp - 0x18], edx
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], eax
jmp 0x4494db
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 - 0x2c], edx
movsx eax, byte [ecx + 0x4a6700]
movsx ecx, byte [ecx + 0x4a670c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4494d8
mov dword [ebp - 0x18], bind
mov ecx, dword [ebp - 0x34]
movzx esi, word [ebx]
add ebx, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0xc], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x30], ebx
je 0x449529
mov eax, dword [ebp - 0xc]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449526
mov esi, dword [ebp - 0xc]
movzx eax, word [ebx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or eax, esi
mov esi, dword [ebp + 0x10]
add eax, 0x10000
add ebx, 2
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x10]
cmp edi, 0x48
jb 0x44981e
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp - 0xc]
je 0x449584
cmp edi, 0x7f
jbe 0x449584
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4b4b10]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x449563
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x2c]
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax*8 + 0x4a3f24]
add eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
jmp 0x449599
cmp edi, 0xff
ja 0x449596
mov eax, dword [esi + 0x40]
movzx edi, byte [eax + edi]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], edi
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x28], 1
je 0x44962e
cmp eax, 1
jl 0x44966e
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x1c], ecx
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x449606
movzx eax, word [eax]
and dword [ebp - 0x1c], 0x3ff
and eax, 0x3ff
shl dword [ebp - 0x1c], 0xa
or eax, dword [ebp - 0x1c]
add eax, 0x10000
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
add eax, 2
mov dword [ebp - 8], eax
mov esi, dword [ebp - 0xc]
cmp esi, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
je case.0x40ffa5.157
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jle 0x4495b6
jmp 0x449671
cmp eax, 1
mov eax, dword [ebp - 8]
jl 0x449671
cmp eax, dword [esi + 0x7c]
jae 0x44cbd8
movzx ecx, word [eax]
cmp dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x34]
je case.0x40ffa5.157
mov esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x14]
mov esi, dword [ebp + 0x10]
je case.0x40ffa5.157
inc dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x28], edi
jle 0x449636
mov eax, dword [ebp - 8]
cmp edi, dword [ebp - 0x18]
je 0x410200
test edx, edx
jne 0x44d184
cmp dword [ebp - 0x24], 0
mov edx, eax
mov dword [ebp - 0x10], edx
je 0x44978b
cmp edi, dword [ebp - 0x18]
jge 0x4496ff
mov dword [ebp - 0x14], 1
cmp eax, dword [esi + 0x7c]
jae 0x449761
movzx edx, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4496db
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, 2
add edx, 0x10000
jmp 0x4496de
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], edx
je 0x4496f6
cmp dword [ebp - 0x20], edx
je 0x4496f6
lea ecx, [ecx + eax*2]
inc edi
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edi, dword [ebp - 0x18]
jl 0x449696
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x410200
cmp eax, edx
jbe 0x4100e5
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 0x41009d
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 0x449757
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x449712
jmp 0x4100e5
cmp dword [esi + 0x8c], 0
je 0x4496f9
cmp eax, dword [esi + 0x88]
jbe 0x4496f9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
jmp 0x4496f9
cmp edi, dword [ebp - 0x18]
jge 0x4497d8
cmp eax, dword [esi + 0x7c]
jae 0x4497b0
movzx edx, word [eax]
cmp dword [ebp - 0xc], edx
je 0x4497d5
cmp dword [ebp - 0x20], edx
je 0x4497d5
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x18]
jl 0x449790
jmp 0x4497d5
cmp dword [esi + 0x8c], 0
je 0x4497d5
cmp eax, dword [esi + 0x88]
jbe 0x4497d5
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov edx, dword [ebp - 0x10]
test ecx, ecx
jne 0x410200
cmp eax, edx
je 0x4100e5
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 0x41009d
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x4497eb
jmp 0x4100e5
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
je 0x449894
cmp eax, 1
jl 0x4498bf
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 0x20], eax
and eax, 0xfc00
mov dword [ebp - 8], edi
cmp eax, 0xd800
jne 0x44987b
movzx eax, word [edi]
and dword [ebp - 0x20], 0x3ff
and eax, 0x3ff
shl dword [ebp - 0x20], 0xa
or eax, dword [ebp - 0x20]
add eax, 0x10000
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44987e
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0xc], eax
je case.0x40ffa5.157
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x28], eax
jle 0x449837
jmp 0x4498bf
cmp eax, 1
jl 0x4498bf
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], eax
je case.0x40ffa5.157
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x28], eax
jle 0x449899
cmp eax, dword [ebp - 0x18]
je 0x410200
test edx, edx
jne 0x44d290
cmp dword [ebp - 0x24], 0
mov edx, edi
mov dword [ebp - 0x1c], edx
je 0x4499c9
cmp eax, dword [ebp - 0x18]
jge 0x44996a
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x449942
movzx edx, word [edi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449926
movzx eax, word [edi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, 2
add edx, 0x10000
jmp 0x449929
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], edx
je 0x449967
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x4498e8
jmp 0x449967
cmp dword [esi + 0x8c], 0
je 0x449967
cmp edi, dword [esi + 0x88]
jbe 0x449967
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov edx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x410200
cmp edi, edx
jbe 0x4100e5
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 0x41009d
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 0x4499bf
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x1c]
ja 0x44997a
jmp 0x4100e5
cmp eax, dword [ebp - 0x18]
jge 0x449a19
mov edx, dword [ebp - 0xc]
cmp edi, dword [esi + 0x7c]
jae 0x4499f1
movzx eax, word [edi]
cmp edx, eax
je 0x449a16
mov eax, dword [ebp - 0x10]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x4499d1
jmp 0x449a16
cmp dword [esi + 0x8c], 0
je 0x449a16
cmp edi, dword [esi + 0x88]
jbe 0x449a16
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov edx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x410200
cmp edi, edx
je 0x4100e5
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 0x41009d
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x1c]
jne 0x449a29
jmp 0x4100e5
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 - 0x2c], 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 - 0x2c], eax
jmp 0x4105fd
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
jmp 0x4105f6
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
jmp 0x4105f6
mov eax, dword [ebp - 0x2c]
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 - 0x2c]
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 0x449b14
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 0x44a2c9
cmp ecx, 0xa
ja case.default.0x448311
jmp dword [ecx*4 + 0x44e930]
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.157
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44b0a6
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449b8b
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x449b8b
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x449b5f
jmp 0x44a2be
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449bee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449bee
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x449c10
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, 9
je 0x449c35
cmp eax, 5
je 0x449c35
cmp eax, 8
je 0x449c35
xor eax, eax
jmp 0x449c3a
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 0x449ba9
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x449cd7
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b9970], 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 0x449c70
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449d73
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449d73
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x449d95
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
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 0x449d2e
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449e2a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449e2a
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x449e4c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
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 0x449de5
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x449ee1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449ee1
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x449f03
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x449f2a
cmp eax, 3
je 0x449f2a
xor eax, eax
jmp 0x449f2f
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 0x449e9c
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
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 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
test eax, eax
je 0x449fae
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x449fab
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 0x449ffb
je 0x44a083
cmp ecx, 0x85
ja 0x449fe2
je 0x44a083
cmp ecx, 9
jb case.0x44a017.8203
cmp ecx, 0xd
jbe 0x44a083
cmp ecx, 0x20
jne case.0x44a017.8203
jmp 0x44a083
cmp ecx, 0xa0
je 0x44a083
cmp ecx, 0x1680
jne case.0x44a017.8203
jmp 0x44a083
cmp ecx, 0x202f
ja 0x44a01e
je 0x44a083
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x44a017.8203
movzx eax, byte [eax + 0x44e964]
jmp dword [eax*4 + 0x44e95c]
cmp ecx, 0x205f
je 0x44a083
cmp ecx, 0x3000
je 0x44a083
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44a050
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b9970], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.157
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
jmp 0x44a08d
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 0x449f68
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], edi
je 0x44a102
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a102
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 + 0x4b4b10]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x44a128
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x44a154
cmp eax, 3
je 0x44a154
cmp edx, 0x5f
je 0x44a154
xor eax, eax
jmp 0x44a159
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.157
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, edx
jle 0x44a0b7
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x41062c
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44a1d4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a1d4
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 + 0x4a55a0]
lea eax, [eax*4 + 0x4a55a0]
cmp ecx, edx
jb 0x44a1f6
lea eax, [eax + 4]
cmp ecx, edx
je 0x44a216
mov edx, dword [eax]
cmp ecx, edx
jae 0x44a1e9
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 0x44a18f
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.157
jmp 0x44a200
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44b0a6
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44a278
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a278
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 0x44a2a3
cmp ecx, 0x40
je 0x44a2a3
cmp ecx, 0x60
je 0x44a2a3
cmp ecx, 0xa0
jb 0x44a297
cmp ecx, 0xd7ff
jbe 0x44a2a3
cmp ecx, 0xe000
jae 0x44a2a3
xor eax, eax
jmp 0x44a2a8
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a233
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
jmp 0x41062c
cmp edi, 0x16
jne 0x44a45b
mov edi, dword [ebp - 8]
mov dword [ebp - 0x20], 1
cmp edx, 1
jl 0x41062c
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x28], eax
cmp edi, eax
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44a32f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a32f
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44a351
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x44a418
mov ebx, dword [ebp - 0x24]
mov esi, ecx
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
test ebx, ebx
je 0x44a3b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a3b3
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44a3d5
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4a67d0], eax
je 0x44a40c
mov eax, dword [ebp - 0x14]
mov esi, ecx
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x28]
cmp edi, eax
jb 0x44a376
jmp 0x44a40f
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44a441
cmp edi, eax
jb 0x44a441
cmp edi, dword [esi + 0x88]
jbe 0x44a441
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, edx
jle 0x44a2e5
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
cmp dword [ebp - 0x24], 0
lea ecx, [edi - 6]
je 0x44ab88
cmp ecx, 0xf
ja case.default.0x448311
jmp dword [ecx*4 + 0x44e990]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a2c1
lea eax, [edi + 2]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf7f
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44a542
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fd16
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
mov edx, dword [ebp - 0x20]
cmp dword [esi + 0x8c], 0
je 0x44a4fb
cmp edx, dword [esi + 0x7c]
jb 0x44a4fb
cmp dword [esi + 0x18], 0
jne 0x44a4fb
cmp dword [esi + 0x1c], 2
jne 0x44a4fb
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a4fb
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
cmp edi, dword [esi + 0x7c]
jae 0x44a52d
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44a52d
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x14]
inc edx
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp - 0xc]
jle 0x44a491
jmp 0x44a2bb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44a4c1
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44a4c1
cmp edx, 1
je case.0x40ffa5.157
mov edx, dword [ebp - 0x20]
mov ax, word [edx]
cmp ax, word [esi + 0x36]
je case.0x40ffa5.157
jmp 0x44a4c4
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x44cf7f
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44a5ca
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 0x44a5ca
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x44a594
jmp 0x44a2bb
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 - 0x2c]
add edi, ecx
mov dword [ebp - 8], edi
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a2c1
mov edx, dword [esi + 0x7c]
cmp edi, edx
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a648
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 0x44a674
je 0x44a662
cmp ecx, 0xa
je 0x44a695
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44a68b
cmp edi, edx
jae 0x44a695
cmp word [edi], 0xa
jne 0x44a695
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44a695
cmp ecx, 0x85
je 0x44a68b
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 0x44a60a
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a6fa
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 0x44a738
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x44a72a
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp 0x44a774
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp 0x44a774
cmp ecx, 0x205f
ja 0x44a768
je case.0x40ffa5.157
cmp ecx, 0x2000
jb 0x44a774
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp 0x44a774
cmp ecx, 0x3000
je case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a6bb
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a7d3
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 0x44a805
je 0x44a83d
cmp ecx, 0xa0
ja 0x44a7f7
je 0x44a83d
cmp ecx, 9
je 0x44a83d
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp 0x44a83d
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp 0x44a83d
cmp ecx, 0x205f
ja 0x44a831
je 0x44a83d
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe 0x44a83d
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp 0x44a83d
cmp ecx, 0x3000
jne case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a794
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a89c
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 0x44a8ba
je case.0x40ffa5.157
cmp ecx, 0xa
jb 0x44a8ce
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp 0x44a8ce
cmp ecx, 0x2028
jb 0x44a8ce
cmp ecx, 0x2029
jbe case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a85d
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a929
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 0x44a941
je 0x44a950
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp 0x44a950
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a8ea
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44a9ab
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 0x44a9c0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44a96c
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 0x44a9dc
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a2c1
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44cf7f
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44aa4e
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 0x44aa76
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44aa76
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jle 0x44aa2b
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 0x44aa97
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a2c1
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x44cf7f
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x44ab09
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 0x44ab31
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x44ab31
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jle 0x44aae6
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 0x44ab52
jmp 0x44a2bb
cmp ecx, 0xf
ja case.default.0x448311
jmp dword [ecx*4 + 0x44e9d0]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x44a2c1
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf7f
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44abd8
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0041fd16
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
jmp 0x44ac04
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44ac04
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44ac04
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 0x44ac3e
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44ac3e
cmp dword [esi + 0x18], 0
jne 0x44ac3e
cmp dword [esi + 0x1c], 2
jne 0x44ac3e
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44ac3e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
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 0x44abab
jmp 0x44a2bb
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x44cf7f
mov eax, dword [ebp - 0x2c]
add edi, ecx
mov dword [ebp - 8], edi
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf7f
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
jg 0x44acca
je 0x44acb8
cmp eax, 0xa
je 0x44ace9
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44acdf
cmp edi, ecx
jae 0x44ace9
cmp word [edi], 0xa
jne 0x44ace9
add edi, 2
mov dword [ebp - 8], edi
jmp 0x44ace9
cmp eax, 0x85
je 0x44acdf
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 0x44ac8d
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
jg 0x44ad55
je case.0x40ffa5.157
cmp ecx, 0xa0
jg 0x44ad47
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp 0x44ad91
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp 0x44ad91
cmp ecx, 0x205f
jg 0x44ad85
je case.0x40ffa5.157
cmp ecx, 0x2000
jl 0x44ad91
cmp ecx, 0x200a
jle case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp 0x44ad91
cmp ecx, 0x3000
je case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44ad05
jmp 0x44a2be
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
jg 0x44adf5
je 0x44ae2d
cmp ecx, 0xa0
jg 0x44ade7
je 0x44ae2d
cmp ecx, 9
je 0x44ae2d
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp 0x44ae2d
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp 0x44ae2d
cmp ecx, 0x205f
jg 0x44ae21
je 0x44ae2d
cmp ecx, 0x2000
jl case.0x40ffa5.157
cmp ecx, 0x200a
jle 0x44ae2d
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp 0x44ae2d
cmp ecx, 0x3000
jne case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44adb1
jmp 0x44a2be
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
jg 0x44ae7d
je case.0x40ffa5.157
cmp ecx, 0xa
jl 0x44ae91
cmp ecx, 0xd
jle case.0x40ffa5.157
jmp 0x44ae91
cmp ecx, 0x2028
jl 0x44ae91
cmp ecx, 0x2029
jle case.0x40ffa5.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x44ae4d
jmp 0x44a2be
mov edi, dword [ebp - 8]
mov ecx, 1
cmp edx, ecx
jl 0x44a2c1
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
jg 0x44aed5
je 0x44aee3
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40ffa5.157
jmp 0x44aee3
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40ffa5.157
inc ecx
cmp ecx, edx
jle 0x44aeac
mov eax, dword [ebp - 0x2c]
jmp 0x44a2c1
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44af26
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 0x44af01
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 0x44af48
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44afb8
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 0x44af93
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 0x44afda
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44b04a
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 0x44b025
jmp 0x44a2bb
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x44a2be
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 0x44b06c
jmp 0x44a2bb
mov edx, dword [ebp - 0xc]
jmp 0x41062c
mov eax, edi
mov dword [ebp - 0x10], eax
test ecx, ecx
js 0x44b945
cmp ecx, 0xa
ja case.default.0x448311
jmp dword [ecx*4 + 0x44ea10]
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov eax, dword [ebp - 0x18]
mov ecx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44b124
cmp dword [ebp - 0x24], 0
je 0x44b10a
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 0x44b10a
mov ecx, 2
cmp dword [ebp - 0x38], 0
jne 0x44b8dd
inc edx
lea edi, [edi + ecx*2]
mov dword [ebp - 8], edi
cmp edx, eax
jl 0x44b0d7
jmp 0x44b8dd
cmp dword [esi + 0x8c], 0
je 0x44b8dd
cmp edi, dword [esi + 0x88]
jbe 0x44b8dd
mov dword [esi + 0x68], ecx
cmp dword [esi + 0x8c], ecx
jle 0x44b8dd
jmp 0x4477d9
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b215
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b1a2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b1a2
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b1c4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, 9
je 0x44b1e9
cmp eax, 5
je 0x44b1e9
cmp eax, 8
je 0x44b1e9
xor eax, eax
jmp 0x44b1ee
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b8dd
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 0x44b15a
jmp 0x44b8dd
cmp dword [esi + 0x8c], 0
je 0x44b8dd
cmp edi, dword [esi + 0x88]
jbe 0x44b8dd
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44b8dd
jmp 0x4477d9
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b215
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b294
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b294
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b2b6
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b9970], edx
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b8dd
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 0x44b250
jmp 0x44b8dd
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b215
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b34f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b34f
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b371
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b8dd
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 0x44b307
jmp 0x44b8dd
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b215
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b403
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b403
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b425
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f20]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b8dd
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 0x44b3bb
jmp 0x44b8dd
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b215
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b4b7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b4b7
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b4d9
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x44b500
cmp eax, 3
je 0x44b500
xor eax, eax
jmp 0x44b505
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b8dd
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 0x44b46f
jmp 0x44b8dd
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov eax, 1
mov dword [ebp - 0x28], eax
cmp edi, dword [esi + 0x7c]
jae 0x44b67b
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b584
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b581
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 - 0x28], eax
jmp 0x44b584
mov eax, dword [ebp - 0x28]
cmp ecx, 0x180e
ja 0x44b5d1
je 0x44b659
cmp ecx, 0x85
ja 0x44b5b8
je 0x44b659
cmp ecx, 9
jb case.0x44b5ed.8203
cmp ecx, 0xd
jbe 0x44b659
cmp ecx, 0x20
jne case.0x44b5ed.8203
jmp 0x44b659
cmp ecx, 0xa0
je 0x44b659
cmp ecx, 0x1680
jne case.0x44b5ed.8203
jmp 0x44b659
cmp ecx, 0x202f
ja 0x44b5f4
je 0x44b659
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x44b5ed.8203
movzx eax, byte [eax + 0x44ea44]
jmp dword [eax*4 + 0x44ea3c]
cmp ecx, 0x205f
je 0x44b659
cmp ecx, 0x3000
je 0x44b659
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b626
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b9970], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x44b8dd
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
jmp 0x44b663
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x38], 0
jne 0x44b8dd
inc edx
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp - 0x18]
jl 0x44b535
jmp 0x44b8dd
cmp dword [esi + 0x8c], 0
je 0x44b8dd
cmp edi, dword [esi + 0x88]
jbe 0x44b8dd
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x44b8dd
jmp 0x4477d9
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov dword [ebp - 0x28], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b215
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
mov dword [ebp - 0x14], ecx
je 0x44b6ff
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b6ff
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x28], 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 + 0x4b4b10]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x44b725
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x44b751
cmp eax, 3
je 0x44b751
cmp edx, 0x5f
je 0x44b751
xor eax, eax
jmp 0x44b756
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b8dd
mov eax, dword [ebp - 0x28]
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 0x44b6b1
jmp 0x44b8dd
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x44b215
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b7ce
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b7ce
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 + 0x4a55a0]
lea eax, [eax*4 + 0x4a55a0]
cmp ecx, edx
jb 0x44b7f0
lea eax, [eax + 4]
cmp ecx, edx
je 0x44b818
mov edx, dword [eax]
cmp ecx, edx
jae 0x44b7e3
cmp dword [ebp - 0x38], 0
je 0x44b8dd
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 0x44b786
jmp 0x44b8dd
cmp dword [ebp - 0x38], 0
je 0x44b7fa
jmp 0x44b8dd
cmp edx, dword [ebp - 0x18]
jge 0x44b8e0
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44b8bd
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x44b870
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b870
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 0x44b89b
cmp ecx, 0x40
je 0x44b89b
cmp ecx, 0x60
je 0x44b89b
cmp ecx, 0xa0
jb 0x44b88f
cmp ecx, 0xd7ff
jbe 0x44b89b
cmp ecx, 0xe000
jae 0x44b89b
xor eax, eax
jmp 0x44b8a0
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x44b8dd
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 0x44b82c
jmp 0x44b8dd
cmp dword [esi + 0x8c], 0
je 0x44b8dd
cmp edi, dword [esi + 0x88]
jbe 0x44b8dd
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jg 0x4477d9
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], 0
jne 0x410200
cmp edi, eax
jbe 0x4100e5
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 0x41009d
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x24], eax
je 0x44b93b
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44b93b
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x44b8f2
jmp 0x4100e5
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0x16
jne 0x44bb3c
cmp edx, dword [ebp - 0x18]
jge 0x44baf0
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x28], eax
cmp edi, eax
jae 0x44bac8
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x44b9a4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44b9a4
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44b9c6
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x44ba8d
mov ebx, dword [ebp - 0x24]
mov esi, ecx
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
test ebx, ebx
je 0x44ba28
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44ba28
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44ba4a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4a67d0], eax
je 0x44ba81
mov eax, dword [ebp - 0x14]
mov esi, ecx
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x28]
cmp edi, eax
jb 0x44b9eb
jmp 0x44ba84
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44bab6
cmp edi, eax
jb 0x44bab6
cmp edi, dword [esi + 0x88]
jbe 0x44bab6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x44b95a
jmp 0x44baed
cmp dword [esi + 0x8c], 0
je 0x44baed
cmp edi, dword [esi + 0x88]
jbe 0x44baed
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], 0
jne 0x410200
cmp edi, eax
jbe 0x4100e5
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 0x41009d
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x24], eax
jne 0x44c8df
movzx ecx, word [edi]
jmp 0x44c925
cmp dword [ebp - 0x24], 0
lea eax, [ecx - 6]
je 0x44c29c
cmp eax, 0xf
ja case.default.0x448311
jmp dword [eax*4 + 0x44ea70]
cmp edx, dword [ebp - 0x18]
jge 0x44c217
lea eax, [edi + 2]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44bcb3
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44bc19
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fd16
add esp, 0xc
test eax, eax
jne 0x44c217
mov edx, dword [ebp - 0x20]
cmp dword [esi + 0x8c], 0
je 0x44bbd2
cmp edx, dword [esi + 0x7c]
jb 0x44bbd2
cmp dword [esi + 0x18], 0
jne 0x44bbd2
cmp dword [esi + 0x1c], 2
jne 0x44bbd2
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44bbd2
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
cmp edi, dword [esi + 0x7c]
jae 0x44bc04
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44bc04
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x44bb68
jmp 0x44c217
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44bb98
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44bb98
cmp edx, 1
je 0x44c217
mov edx, dword [ebp - 0x20]
mov ax, word [edx]
cmp ax, word [esi + 0x36]
jne 0x44bb9b
jmp 0x44c217
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x7fffffff
jge 0x44bca9
cmp edx, ecx
jge 0x44c217
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0x18]
cmp edi, ecx
jae 0x44bcb3
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44bc9f
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 0x44bc9f
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jl 0x44bc6d
jmp 0x44c217
mov edi, dword [esi + 0x7c]
jmp 0x44bcb0
mov edi, ecx
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44c217
cmp edi, dword [esi + 0x88]
jbe 0x44c217
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c217
jmp 0x4477d9
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 0x44bcae
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
jmp 0x44c217
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov eax, dword [esi + 0x7c]
mov edx, 1
cmp edi, eax
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bd4c
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 0x44bd6d
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x44c217
cmp word [edi], 0xa
jne 0x44bdab
add edi, 2
jmp 0x44bda8
cmp ecx, 0xa
je 0x44bda2
cmp dword [esi + 0x6c], 0
jne 0x44c217
cmp ecx, 0xb
je 0x44bda2
cmp ecx, 0xc
je 0x44bda2
cmp ecx, 0x85
je 0x44bda2
cmp ecx, 0x2028
je 0x44bda2
cmp ecx, 0x2029
jne 0x44c217
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 0x44bd0f
jmp 0x44c217
cmp dword [esi + 0x8c], 0
je 0x44c217
cmp edi, dword [esi + 0x88]
jbe 0x44c217
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jle 0x44c217
jmp 0x4477d9
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44be30
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 0x44be85
je 0x44be4e
cmp ecx, 0xa0
ja 0x44be7b
je 0x44be4e
cmp ecx, 9
je 0x44be4e
cmp ecx, 0x20
jne 0x44beb1
mov ecx, 1
xor eax, eax
cmp dword [ebp - 0x1c], 0x12
sete al
cmp ecx, eax
je 0x44c217
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 0x44bdf6
jmp 0x44c217
cmp ecx, 0x1680
jne 0x44beb1
jmp 0x44be4e
cmp ecx, 0x205f
ja 0x44bea9
je 0x44be4e
cmp ecx, 0x2000
jb 0x44beb1
cmp ecx, 0x200a
jbe 0x44be4e
cmp ecx, 0x202f
jne 0x44beb1
jmp 0x44be4e
cmp ecx, 0x3000
je 0x44be4e
xor ecx, ecx
jmp 0x44be53
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44befc
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 0x44bf3a
je 0x44bf45
cmp ecx, 0xa
jb 0x44bf10
cmp ecx, 0xd
jbe 0x44bf45
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0x1c], 0x14
sete al
cmp ecx, eax
je 0x44c217
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 0x44bebe
jmp 0x44c217
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x44bf10
mov ecx, 1
jmp 0x44bf12
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44bf93
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 0x44bfa8
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44c217
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 0x44bf55
jmp 0x44c217
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c006
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 0x44c217
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44c217
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 0x44bfc8
jmp 0x44c217
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c07d
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 0x44c092
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44c217
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 0x44c03f
jmp 0x44c217
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c0f0
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 0x44c217
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44c217
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 0x44c0b2
jmp 0x44c217
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44bdc0
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c167
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 0x44c17c
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44c217
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 0x44c129
jmp 0x44c217
cmp edx, dword [ebp - 0x18]
jge 0x44c217
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x44c1f7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c1d2
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 0x44c217
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44c217
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 0x44c198
jmp 0x44c217
cmp dword [esi + 0x8c], 0
je 0x44c217
cmp edi, dword [esi + 0x88]
jbe 0x44c217
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jg 0x4477d9
cmp dword [ebp - 0x34], 0
jne 0x410200
cmp edi, dword [ebp - 0x10]
jbe 0x4100e5
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 0x41009d
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 0x44c26f
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x1c], 0x11
mov ecx, dword [ebp - 0x10]
jne 0x44c293
cmp edi, ecx
jbe 0x4100e5
cmp word [edi], 0xa
jne 0x44c293
cmp word [edi - 2], 0xd
jne 0x44c293
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, ecx
ja 0x44c22a
jmp 0x4100e5
cmp eax, 0xf
ja case.default.0x448311
jmp dword [eax*4 + 0x44eab0]
cmp edx, dword [ebp - 0x18]
jge 0x44c779
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c37a
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44c2e1
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.0041fd16
add esp, 0xc
test eax, eax
je 0x44c30d
jmp 0x44c779
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44c30d
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c30d
cmp edx, 1
je 0x44c779
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x44c779
cmp dword [esi + 0x8c], 0
je 0x44c347
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x44c347
cmp dword [esi + 0x18], 0
jne 0x44c347
cmp dword [esi + 0x1c], 2
jne 0x44c347
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44c347
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
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 0x44c2b5
jmp 0x44c779
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 0x44c3ac
mov edi, ecx
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x44c779
cmp edi, dword [esi + 0x88]
jbe 0x44c779
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44c779
jmp 0x4477d9
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
jmp 0x44c779
cmp edx, dword [ebp - 0x18]
jge 0x44c779
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44c37a
movzx eax, word [edi]
cmp eax, 0xd
jne 0x44c3e5
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x44c779
cmp word [edi], 0xa
je 0x44c417
jmp 0x44c41d
cmp eax, 0xa
je 0x44c417
cmp dword [esi + 0x6c], 0
jne 0x44c779
cmp eax, 0xb
je 0x44c417
cmp eax, 0xc
je 0x44c417
cmp eax, 0x85
je 0x44c417
cmp eax, 0x2028
je 0x44c417
cmp eax, 0x2029
jne 0x44c779
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x44c3c3
jmp 0x44c779
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
cmp eax, 0x180e
jg 0x44c478
je 0x44c779
cmp eax, 0xa0
jg 0x44c46c
je 0x44c779
cmp eax, 9
je 0x44c779
cmp eax, 0x20
jne 0x44c4ae
jmp 0x44c779
cmp eax, 0x1680
jne 0x44c4ae
jmp 0x44c779
cmp eax, 0x205f
jg 0x44c4a3
je 0x44c779
cmp eax, 0x2000
jl 0x44c4ae
cmp eax, 0x200a
jle 0x44c779
cmp eax, 0x202f
jne 0x44c4ae
jmp 0x44c779
cmp eax, 0x3000
je 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c433
jmp 0x44c779
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
cmp eax, 0x180e
jg 0x44c506
je 0x44c538
cmp eax, 0xa0
jg 0x44c4fa
je 0x44c538
cmp eax, 9
je 0x44c538
cmp eax, 0x20
je 0x44c538
jmp 0x44c779
cmp eax, 0x1680
je 0x44c538
jmp 0x44c779
cmp eax, 0x205f
jg 0x44c52d
je 0x44c538
cmp eax, 0x2000
jl 0x44c779
cmp eax, 0x200a
jle 0x44c538
cmp eax, 0x202f
je 0x44c538
jmp 0x44c779
cmp eax, 0x3000
jne 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c4cd
jmp 0x44c779
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
cmp eax, 0x85
jg 0x44c57b
je 0x44c779
cmp eax, 0xa
jl 0x44c58d
cmp eax, 0xd
jg 0x44c58d
jmp 0x44c779
cmp eax, 0x2028
jl 0x44c58d
cmp eax, 0x2029
jle 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c553
jmp 0x44c779
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
cmp eax, 0x85
jg 0x44c5ca
je 0x44c5d8
add eax, 0xfffffff6
cmp eax, 3
jbe 0x44c5d8
jmp 0x44c779
add eax, 0xffffdfd8
cmp eax, 1
ja 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x44c5a8
jmp 0x44c779
cmp edx, dword [ebp - 0x18]
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c616
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c5f1
jmp 0x44c779
cmp edx, dword [ebp - 0x18]
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c779
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c630
jmp 0x44c779
cmp edx, dword [ebp - 0x18]
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c698
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c673
jmp 0x44c779
cmp edx, dword [ebp - 0x18]
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c779
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c6b2
jmp 0x44c779
cmp edx, dword [ebp - 0x18]
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c37a
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c716
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c6f5
jmp 0x44c779
cmp edx, dword [ebp - 0x18]
jge 0x44c779
cmp edi, dword [esi + 0x7c]
jae 0x44c754
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x44c779
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x44c779
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x44c729
jmp 0x44c779
cmp dword [esi + 0x8c], 0
je 0x44c779
cmp edi, dword [esi + 0x88]
jbe 0x44c779
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
cmp dword [ebp - 0x34], 0
jne 0x410200
cmp edi, dword [ebp - 0x10]
je 0x4100e5
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 0x41009d
mov ecx, dword [ebp - 0x10]
sub edi, 2
cmp dword [ebp - 0x1c], 0x11
mov dword [ebp - 8], edi
jne 0x44c7d5
cmp edi, ecx
jbe 0x44c7d7
cmp word [edi], 0xa
jne 0x44c7d5
cmp word [edi - 2], 0xd
jne 0x44c7d5
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, ecx
jne 0x44c78c
jmp 0x4100e5
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 0x44c80d
lea edx, [ebx + 4]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009d
mov ebx, dword [ebp - 0x14]
jmp 0x4100e2
mov edx, dword [ebp - 0x14]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009d
add ebx, 4
jmp 0x4100e2
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
jne 0x44c897
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009d
mov ebx, dword [ebp - 0x20]
mov ecx, 0x81
movzx eax, word [ebx]
cmp ax, cx
je 0x44caf4
mov ecx, 0x88
cmp ax, cx
jb 0x4100e2
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 0x41009d
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.0040ff20
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x44c8be
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0x41009d
jmp 0x44c8c9
test eax, eax
jne 0x41009d
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x44cb27
add ebx, 4
jmp 0x4100e2
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c8fa
sub edi, 2
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c925
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44c947
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f22]
mov dword [ebp - 0x28], eax
cmp edi, dword [ebp - 0x10]
jbe 0x4100e5
cmp dword [ebp - 0x24], 0
lea edx, [edi - 2]
mov dword [ebp - 0x14], edx
jne 0x44c976
movzx ecx, word [edx]
jmp 0x44c9bc
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44c991
sub edx, 2
mov dword [ebp - 0x14], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44c9bc
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44c9de
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [ebp - 0x28]
movzx eax, word [eax*2 + 0x4a6810]
movzx edx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x4a67d0], eax
je 0x44bb02
mov edi, dword [ebp - 0x14]
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
jmp 0x44c95c
mov dword [esi + 0x9c], 2
jmp 0x410862
movzx ecx, word [ebx + 2]
lea eax, [ebx + ecx*2]
cmp dword [esi + 0x80], eax
jae 0x44e5de
cmp word [ebx], 0x77
je 0x4108b1
cmp word [eax], 0x77
jne 0x44e5de
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 + 0x4a6720]
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 0x41009d
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x41009d
mov eax, dword [ebp - 0x54]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x40ffa5.157
push eax
call dword [0x4a6718]
add esp, 4
jmp case.0x40ffa5.157
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x44cae3
push eax
call dword [0x4a6718]
add esp, 4
jmp 0x44cae3
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0xb0], ecx
mov eax, edi
jmp 0x41009d
mov eax, 0xfffffffa
jmp 0x41009d
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 0x41009d
mov dword [esi + 0xb8], ebx
mov eax, 0xfffffc1b
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x20]
mov dword [esi + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x41009d
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 0x41009d
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x41009d
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x90], eax
mov eax, 0xfffffc1a
jmp 0x41009d
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 0x410098
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp eax, dword [esi + 0x88]
jmp 0x44cbf3
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 0x41009d
mov eax, 0xfffffff2
jmp 0x41009d
cmp eax, 0xfffffffe
jne 0x44cc29
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 0x44cbf3
mov dword [ebp - 0x14], eax
cmp edi, edx
jl 0x44cc55
mov edi, eax
jmp 0x44ccba
mov eax, dword [ebp - 8]
push dword [ebp - 0x34]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.0048ef91
add esp, 0xc
test eax, eax
js 0x44cc7f
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 0x20]
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edi, dword [ebp - 0x1c]
jl 0x44cc52
jmp 0x44ccaf
cmp eax, 0xfffffffe
jne 0x44ccac
cmp dword [esi + 0x8c], 0
je 0x44ccac
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x44ccac
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
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 0x41009d
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, edi
jae 0x44ccba
xor eax, eax
jmp 0x41009d
cmp ecx, 0xfffffffe
jne 0x44cd01
mov eax, dword [esi + 0x7c]
jmp 0x44cd04
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp eax, dword [esi + 0x7c]
jb case.0x40ffa5.157
jmp 0x44cbe5
mov eax, edi
sub edi, 2
cmp eax, dword [ebp - 0x2c]
je case.0x40ffa5.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44cd45
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 0x44cd1f
jmp 0x41009d
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 0x44ce57
test eax, eax
jne 0x41009d
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 0x44ce3f
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cde5
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 0x44cdf8
cmp edi, 0x6e
je case.0x40ffa5.157
jmp 0x44ce16
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
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 0x44cd97
jmp 0x41009d
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp ecx, dword [esi + 0x88]
jmp 0x44cbf3
test eax, eax
jne 0x41009d
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 0x44cbd8
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x44ce93
cmp edi, 0x6e
je case.0x40ffa5.157
jmp 0x44ceae
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
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 0x44ce5f
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x44cf44
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44cf44
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 - 0x28]
call fcn.0048f2ba
add esp, 4
test eax, eax
je case.0x40ffa5.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x20]
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 0x44cefc
jmp 0x41009d
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp edi, dword [esi + 0x88]
jmp 0x44cbf3
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp edx, dword [esi + 0x7c]
jb case.0x40ffa5.157
cmp edx, dword [esi + 0x88]
jmp 0x44cbf3
mov ecx, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x40ffa5.157
cmp ecx, dword [esi + 0x7c]
jb case.0x40ffa5.157
jmp 0x44cbed
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 0x41009d
mov edx, dword [ebp - 0x1c]
lea ecx, [edx + edx]
mov dword [ebp - 0x28], 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 0x44d033
lea eax, [edx + edx]
push eax
push dword [ebp - 0x14]
push edi
call fcn.004216b4
add esp, 0xc
test eax, eax
jne 0x44d033
add edi, dword [ebp - 0x28]
jmp 0x44d06d
mov edx, dword [ebp - 0x20]
test edx, edx
jle 0x44cc29
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
sub eax, ecx
cmp edi, eax
ja 0x44cc29
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.004216b4
add esp, 0xc
test eax, eax
jne 0x44cc29
mov ecx, dword [ebp - 0x20]
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 - 0x28]
add esp, 0x14
mov edx, dword [ebp - 0x1c]
test eax, eax
je 0x44d005
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
cmp dword [ebp - 0xc], ecx
je 0x44d0ea
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 0x44d0c4
jmp 0x41009d
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 0x41009d
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
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 0x44d138
jmp 0x41009d
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 0x44d233
test eax, eax
jne 0x41009d
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d1f9
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 - 0xc], ecx
je case.0x40ffa5.157
cmp dword [ebp - 0x20], 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 0x44d1b4
jmp 0x41009d
test eax, eax
jne 0x41009d
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
cmp dword [ebp - 0xc], ecx
je case.0x40ffa5.157
cmp dword [ebp - 0x20], 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 0x44d23b
jmp 0x41009d
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 - 0x24], 0
je 0x44d32f
test eax, eax
jne 0x41009d
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d2fe
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 - 0xc], 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 0x44d2b9
jmp 0x41009d
test eax, eax
jne 0x41009d
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0xc], 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 0x44d337
jmp 0x41009d
cmp ecx, 0xa
ja case.default.0x448311
jmp dword [ecx*4 + 0x44eaf0]
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 0x41009d
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d3e6
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d3e6
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 0x44d3b6
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d486
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d486
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d4a8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp eax, 9
je 0x44d4cd
cmp eax, 5
je 0x44d4cd
cmp eax, 8
je 0x44d4cd
xor eax, eax
jmp 0x44d4d2
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 0x44d43b
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d574
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d574
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d596
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b9970], 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 0x44d529
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d659
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d659
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d67b
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
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 0x44d60e
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d737
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d737
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d759
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
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 0x44d6ec
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d815
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d815
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d837
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x44d85e
cmp eax, 3
je 0x44d85e
xor eax, eax
jmp 0x44d863
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 0x44d7ca
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44d908
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44d905
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 0x44d955
je 0x44d9da
cmp ecx, 0x85
ja 0x44d93c
je 0x44d9da
cmp ecx, 9
jb case.0x44d971.8203
cmp ecx, 0xd
jbe 0x44d9da
cmp ecx, 0x20
jne case.0x44d971.8203
jmp 0x44d9da
cmp ecx, 0xa0
je 0x44d9da
cmp ecx, 0x1680
jne case.0x44d971.8203
jmp 0x44d9da
cmp ecx, 0x202f
ja 0x44d978
je 0x44d9da
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x44d971.8203
movzx eax, byte [eax + 0x44eb24]
jmp dword [eax*4 + 0x44eb1c]
cmp ecx, 0x205f
je 0x44d9da
cmp ecx, 0x3000
je 0x44d9da
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44d9aa
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
cmp dword [eax*4 + 0x4b9970], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x40ffa5.157
mov eax, dword [ebp - 0xc]
jmp 0x44d9e4
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 0x44d8ba
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
je 0x44da84
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44da84
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 + 0x4b4b10]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x44daaa
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a6810]
movzx eax, byte [eax*8 + 0x4a3f21]
mov eax, dword [eax*4 + 0x4b9970]
cmp eax, 1
je 0x44dad6
cmp eax, 3
je 0x44dad6
cmp edx, 0x5f
je 0x44dad6
xor eax, eax
jmp 0x44dadb
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 0x44da33
jmp 0x41009d
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 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44db7d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44db7d
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 + 0x4a55a0]
lea eax, [eax*4 + 0x4a55a0]
cmp ecx, edx
jb 0x44db9f
lea eax, [eax + 4]
cmp ecx, edx
je 0x44dbd4
mov edx, dword [eax]
cmp ecx, edx
jae 0x44db92
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 0x44db32
jmp 0x41009d
cmp dword [ebp - 0x38], 0
jne case.0x40ffa5.157
jmp 0x44dba9
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 0x41009d
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44dc4e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dc4e
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 0x44dc79
cmp ecx, 0x40
je 0x44dc79
cmp ecx, 0x60
je 0x44dc79
cmp ecx, 0xa0
jb 0x44dc6d
cmp ecx, 0xd7ff
jbe 0x44dc79
cmp ecx, 0xe000
jae 0x44dc79
xor eax, eax
jmp 0x44dc7e
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 0x44dc03
jmp 0x41009d
test eax, eax
jne 0x41009d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x40ffa5.157
cmp edi, dword [esi + 0x7c]
jae 0x44cf7f
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x44dd06
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dd06
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44dd28
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x44dde8
mov ebx, ecx
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
je 0x44dd89
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44dd89
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 + 0x4b4b10]
shl eax, 7
and ecx, 0x8000007f
jns 0x44ddab
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a6810]
movzx ecx, byte [eax*8 + 0x4a3f22]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x4a67d0], eax
je 0x44dde2
mov eax, dword [ebp - 0x14]
mov ebx, ecx
lea edi, [edi + eax*2]
mov eax, dword [esi + 0x7c]
cmp edi, eax
jb 0x44dd4a
jmp 0x44dde5
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x44de11
cmp edi, eax
jb 0x44de11
cmp edi, dword [esi + 0x88]
jbe 0x44de11
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
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 0x44dcbb
jmp 0x41009d
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.0x448311
jmp dword [eax*4 + 0x44eb50]
cmp ecx, 0xd
ja 0x44dee2
je 0x44dec7
cmp ecx, 0xa
je case.0x44dea2.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44def9
cmp edi, dword [esi + 0x7c]
jae case.0x44dea2.13
cmp word [edi], 0xa
jne case.0x44dea2.13
add edi, 2
jmp case.0x44dea2.13
cmp ecx, 0x85
je 0x44def9
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x180e
ja 0x44df4c
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x44df3b
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x205f
ja 0x44df83
je case.0x40ffa5.157
cmp ecx, 0x2000
jb case.0x44dea2.13
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x3000
je case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x180e
ja 0x44dfd8
je case.0x44dea2.13
cmp ecx, 0xa0
ja 0x44dfc7
je case.0x44dea2.13
cmp ecx, 9
je case.0x44dea2.13
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x205f
ja 0x44e00f
je case.0x44dea2.13
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe case.0x44dea2.13
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x3000
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x85
ja 0x44e045
je case.0x40ffa5.157
cmp ecx, 0xa
jb case.0x44dea2.13
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x2028
jb case.0x44dea2.13
cmp ecx, 0x2029
jbe case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x85
ja 0x44e081
je case.0x44dea2.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp case.0x44dea2.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x100
jae case.0x44dea2.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x100
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x100
jae case.0x44dea2.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x100
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x100
jae case.0x44dea2.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
jmp case.0x44dea2.13
cmp ecx, 0x100
jae case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x40ffa5.157
jmp case.0x44dea2.13
cmp edi, dword [esi + 0x7c]
jb case.0x44dea2.13
cmp dword [esi + 0x18], 0
jne case.0x44dea2.13
cmp dword [esi + 0x1c], 2
jne case.0x44dea2.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44dea2.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
jmp case.0x44dea2.13
test eax, eax
jne 0x41009d
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x40ffa5.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44cf7f
mov eax, dword [ebp - 0x1c]
cmp eax, 0xc
jne 0x44e206
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44e1d4
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.0041fd16
add esp, 0xc
test eax, eax
jne case.0x40ffa5.157
jmp 0x44e200
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x44e200
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x44e200
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.0x448311
jmp dword [eax*4 + 0x44eb90]
cmp dword [esi + 0x8c], 0
je case.0x44e218.13
cmp edi, dword [esi + 0x7c]
jb case.0x44e218.13
cmp dword [esi + 0x18], 0
jne case.0x44e218.13
cmp dword [esi + 0x1c], 2
jne case.0x44e218.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x44e218.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x4477d9
jmp case.0x44e218.13
cmp ecx, 0xd
ja 0x44e2a7
je 0x44e28c
cmp ecx, 0xa
je case.0x44e218.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x40ffa5.157
jmp 0x44e2be
cmp edi, dword [esi + 0x7c]
jae case.0x44e218.13
cmp word [edi], 0xa
jne case.0x44e218.13
add edi, 2
jmp case.0x44e218.13
cmp ecx, 0x85
je 0x44e2be
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
cmp dword [esi + 0x6c], 0
jne case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x180e
ja 0x44e311
je case.0x40ffa5.157
cmp ecx, 0xa0
ja 0x44e300
je case.0x40ffa5.157
cmp ecx, 9
je case.0x40ffa5.157
cmp ecx, 0x20
je case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x1680
je case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x205f
ja 0x44e348
je case.0x40ffa5.157
cmp ecx, 0x2000
jb case.0x44e218.13
cmp ecx, 0x200a
jbe case.0x40ffa5.157
cmp ecx, 0x202f
je case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x3000
je case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x180e
ja 0x44e39d
je case.0x44e218.13
cmp ecx, 0xa0
ja 0x44e38c
je case.0x44e218.13
cmp ecx, 9
je case.0x44e218.13
cmp ecx, 0x20
jne case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x1680
jne case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x205f
ja 0x44e3d4
je case.0x44e218.13
cmp ecx, 0x2000
jb case.0x40ffa5.157
cmp ecx, 0x200a
jbe case.0x44e218.13
cmp ecx, 0x202f
jne case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x3000
jne case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x85
ja 0x44e40a
je case.0x40ffa5.157
cmp ecx, 0xa
jb case.0x44e218.13
cmp ecx, 0xd
jbe case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x2028
jb case.0x44e218.13
cmp ecx, 0x2029
jbe case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0x85
ja 0x44e446
je case.0x44e218.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40ffa5.157
jmp case.0x44e218.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0xff
ja case.0x44e218.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0xff
ja case.0x44e218.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0xff
ja case.0x40ffa5.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x40ffa5.157
jmp case.0x44e218.13
cmp ecx, 0xff
ja case.0x44e218.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40ffa5.157
jmp case.0x44e218.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 0x44e193
jmp 0x41009d
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 0x44e550
cmp word [eax], 0x77
jne 0x4105b5
xor edx, edx
mov eax, dword [ebp - 0x20]
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 - 0x38]
mov dword [eax + ebx*4 + 4], ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
sub ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x34]
mov dword [eax + ecx*4], esi
jmp 0x4105b5
cmp edx, 0xfffffc1b
jne 0x44e5de
movzx eax, word [ebx]
mov ecx, 0x81
cmp ax, cx
je 0x44e5d0
cmp eax, 0x77
jne 0x44e5c7
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44e5b9
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 0x41009d
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 + 0x4a6720]
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 0x44e639
cmp edi, 0xfffffc19
jne 0x44e646
cmp dword [esi + 0xb0], 0
je 0x44cada
cmp edi, 0xfffffc1f
jne 0x44cae3
mov edx, dword [esi + 0x80]
mov ecx, dword [ebp - 0x14]
call fcn.0048f19c
test eax, eax
jne 0x44cae3
jmp 0x44e77d
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 + 0x4a6720]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009d
mov eax, 0xfffffc1c
jmp 0x41009d
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 + 0x4a6720]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
add esp, 0x14
test eax, eax
jne 0x41009d
mov eax, 0xfffffc1d
jmp 0x41009d
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 + 0x4a6720]
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 0x44e72b
cmp eax, 0xfffffc19
jne 0x44e73a
cmp dword [esi + 0xb0], 0
jne 0x44e73a
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x41009d
mov eax, 0xfffffc1d
jmp 0x41009d
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4a6720]
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 0x41009d
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x41009d
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 + 0x4a6720]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.0040ff20
add esp, 0x14
jmp 0x44e7bc
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x41009d
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x41009d
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 + 0x4a6720]
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 0x44e820
cmp eax, 0xfffffc19
jne 0x44e7bc
cmp dword [esi + 0xb0], 0
jne 0x44e7bc
jmp 0x44e7b6
cmp edi, 0x9f
je 0x41007b
cmp dword [esi + 0xa8], 0
jne 0x41007b
cmp dword [esi + 0x60], 0
jne case.0x40ffa5.157
cmp dword [esi + 0x64], 0
je 0x41007b
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x40ffa5.157
jmp 0x41007b
inc dword [esi]
mov eax, 0xfffffff8
jmp 0x41009d