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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
mov ebx, edx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x30], ebx
push esi
push edi
test ebx, ebx
je 0x446545
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov eax, dword [esi]
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0x28], ecx
cmp eax, dword [esi + 4]
jae 0x44e68f
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x44e685
cmp dword [esi + 0x9c], 2
je 0x446579
movzx ecx, word [ebx]
mov edi, ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x38], edi
cmp edi, 0xa1
ja case.0x408896.98
movzx eax, byte [edi + 0x409110]
jmp dword [eax*4 + 0x408fc4]
movzx eax, word [ebx + 2]
mov edi, ebx
add eax, eax
sub edi, eax
mov eax, 0x88
mov dword [ebp - 0x20], edi
movzx ecx, word [edi]
cmp cx, ax
jae 0x4472d4
mov eax, 0x81
cmp cx, ax
je 0x4472d4
mov dword [ebp - 0x2c], 0
cmp ecx, 0x7d
jb 0x4088e3
mov eax, 0x80
cmp cx, ax
jbe 0x44ca6a
mov eax, 0x82
cmp cx, ax
je 0x44ca6a
mov eax, 0x85
cmp cx, ax
je 0x408ca6
mov eax, 0x8a
cmp cx, ax
je 0x408ca6
mov eax, 0x86
cmp cx, ax
je 0x408ca6
mov eax, 0x8b
cmp cx, ax
je 0x408ca6
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x44734c
mov eax, 0x81
cmp word [edi], ax
je 0x44ca15
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40886d
cmp edi, 0x88
jae 0x44c893
cmp edi, 0x81
je 0x44c893
cmp dword [esi + 0x70], 0
jne 0x44c89d
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x44c89d
movzx eax, word [ebx]
movzx eax, byte [eax + 0x4c2140]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x28], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0x408851
jmp 0x44e68f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x44e62b
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x44e671
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x24], ecx
cmp eax, ecx
jae 0x44cdc7
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov edi, eax
je 0x408a18
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44820e
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f2]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x408ab6
mov esi, dword [ebp - 8]
mov ebx, edi
jmp 0x408a50
cmp dword [ebp - 0x28], 0
mov edx, 1
movzx ecx, word [esi]
je 0x408a70
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44823a
mov esi, dword [ebp - 0x34]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edi, ebx
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx ecx, byte [eax*8 + 0x4af3f2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4c21f0], eax
mov eax, dword [ebp - 0x24]
jne 0x408b81
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
jne 0x44825e
mov edx, dword [ebp - 8]
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x40886d
movzx edx, word [ebx + 0x22]
lea eax, [ebx + 2]
add ebx, 0x22
mov dword [ebp - 0xc], eax
mov ecx, edx
mov dword [ebp - 0x30], ebx
cmp ecx, 0x6d
jbe 0x4484d2
mov edx, 1
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x28], 0
mov ecx, 1
mov dword [ebp - 0x24], ecx
je 0x4485a0
cmp edx, ecx
jl 0x408b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x44856d
cmp edx, 0xff
ja 0x448592
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x408896.157
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x408b11
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x20]
jne 0x448602
mov edx, dword [ebp - 8]
jmp 0x40886d
lea esi, [ebx + edx*2]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], esi
mov ebx, esi
mov edi, esi
cmp esi, eax
jb 0x408a50
jmp 0x408ab0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
cmp dword [ebp - 0x28], 0
je 0x448b6d
movzx ecx, word [ebx + 2]
add ebx, 2
mov eax, ecx
mov dword [ebp - 0x34], 1
and eax, 0xfc00
mov edx, ecx
mov dword [ebp - 0x24], edx
cmp eax, 0xd800
je 0x448abe
mov eax, dword [ebp - 8]
cmp edx, 0x80
jae 0x448ae9
movzx edx, word [eax]
mov eax, dword [esi + 0x3c]
cmp edx, 0xff
ja 0x408bf7
movzx edx, byte [eax + edx]
movzx eax, byte [eax + ecx]
cmp eax, edx
jne case.0x408896.157
add ebx, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40886d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], ecx
je 0x408c4a
mov eax, edx
mov dword [ebp - 0x20], ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x447fd6
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x4b1c40]
cmp eax, 9
jne 0x448000
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x4b0a70]
lea eax, [eax*4 + 0x4b0a70]
cmp dword [ebp - 0x20], ecx
jb 0x448200
lea eax, [eax + 4]
cmp edx, ecx
je 0x408d21
mov ecx, dword [eax]
cmp edx, ecx
jae 0x408c90
jmp 0x448200
movzx eax, word [edi + 4]
mov dword [ebp - 0x24], eax
lea edi, [eax + eax]
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], edi
mov ecx, edi
test eax, eax
jne 0x4472ec
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, dword [ebp - 0x24]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jge 0x447318
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jg 0x44732b
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edi*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp ecx, edi
jg 0x408d19
lea ecx, [edi + 2]
mov dword [ebp + 0xc], ecx
mov edi, dword [ebp - 0x20]
jmp 0x40892c
cmp edi, 0x10
jne case.0x408896.157
add ebx, 6
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x40886d
cmp dword [ebp - 0x28], 0
je 0x448a8c
mov ax, word [ebx + 2]
add ebx, 2
mov ecx, 0xfc00
mov edi, 1
and ax, cx
mov dword [ebp - 0x34], edi
mov ecx, 0xd800
cmp ax, cx
je 0x448a7f
mov ecx, dword [esi + 0x7c]
mov eax, ecx
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x34], eax
jg 0x44cd8f
lea esp, [esp]
movzx ecx, word [ebx]
dec edi
movzx eax, word [edx]
add ebx, 2
add edx, 2
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], edx
cmp cx, ax
jne case.0x408896.157
test edi, edi
jle 0x408b79
jmp 0x408d80
lea ecx, [edi - 0x55]
add ebx, 2
mov eax, ebx
test cl, 1
je 0x4498e4
mov edx, 1
movsx edi, byte [ecx + 0x4b1c2c]
mov dword [ebp - 0xc], edi
movsx edi, byte [ecx + 0x4b1c20]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x408de1
mov dword [ebp - 0x14], 0x7fffffff
movzx edi, word [ebx]
lea ebx, [eax + 2]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], ebx
cmp edi, 0x10
je 0x4498eb
cmp edi, 0xf
je 0x4498eb
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
test ecx, ecx
jg 0x449912
mov edi, dword [ebp - 8]
cmp ecx, dword [ebp - 0x14]
je 0x408b79
test edx, edx
je 0x44ae4f
test eax, eax
jns 0x44d1b2
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.00408810
add esp, 0x14
cmp dword [ebp - 0x20], 0x16
je 0x44da81
cmp dword [ebp - 0x28], 0
je 0x44df78
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x408896.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x44a9d7
cmp dword [ebp - 0x20], 0xc
jne 0x408ea2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x44dc01
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00406cde
add esp, 0xc
test eax, eax
jne case.0x408896.157
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
je 0x44dc3a
cmp dword [ebp - 0x20], 0xc
jne 0x44dc62
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [esi + 0x8c], 0
jne 0x44df36
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov esi, dword [ebp + 0x10]
inc eax
inc dword [ebp - 0xc]
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
jmp 0x408e60
movzx edx, word [ebx + 4]
mov dword [ebp - 0x30], edx
lea eax, [edx + edx]
mov dword [ebp - 0x20], eax
cmp eax, dword [esi + 0x14]
jge case.0x408896.129
mov ecx, dword [esi + 0xc]
lea edi, [edx + edx]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + edi*4 + 4]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x10]
sub eax, edx
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ecx], eax
nop
cmp edi, 0x88
jae 0x44e35b
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1b
je 0x44e3af
cmp eax, 0xfffffc20
je 0x44e36a
test eax, eax
jne 0x4089db
jmp 0x44e38c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
jne 0x446567
push 1
push 0
push 0
push 0
push 0
xor edx, edx
lea ecx, [ebp + 0x18]
call fcn.00408810
add esp, 0x14
jmp 0x4089db
lea eax, [ebp + 0x18]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
neg eax
jmp 0x4089db
mov eax, dword [ebp - 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
mov dword [ebp + 0x14], eax
mov dword [esi + 0x9c], 0
jmp 0x408b79
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x44c977
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x4c2140]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x40886d
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0xb0]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408810
add esp, 0x14
cmp eax, 1
je 0x446641
cmp eax, 0xfffffc20
jne 0x446621
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x4089db
cmp word [ebx], 0x77
je 0x446629
cmp word [ecx], 0x77
jne 0x4089db
jmp 0x446629
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x4465d3
mov ecx, dword [ebp + 8]
jmp 0x44664a
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x446660
cmp eax, 0x77
jne case.0x408896.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446660
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 0x447204
cmp eax, dword [ebp - 0x1c]
je 0x447204
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 0x44c6ae
lea edx, [ebx + 4]
call fcn.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov ecx, dword [ebp - 0x20]
mov ebx, ecx
jmp 0x40898f
mov dword [ebp - 0x24], 0
jmp 0x4470b8
mov dword [ebp - 0x24], 0
mov eax, ebx
mov dword [ebp - 0x34], 0
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x20], eax
cmp edi, 0x88
jb 0x446707
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x4471a7
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x34], 1
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
cmp dword [ebp - 8], eax
je 0x4471f6
mov dword [ebp - 8], eax
jmp 0x4466f5
cmp word [ebx + 4], 0x76
lea ecx, [ebx + 4]
movzx eax, word [ebx + 2]
mov ebx, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
jne 0x446863
cmp dword [0x4d2620], 0
je 0x446855
mov dword [ebp - 0xa0], 2
movzx eax, word [ecx + 2]
mov dword [ebp - 0x9c], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x88], eax
movzx eax, word [ecx + 4]
mov dword [ebp - 0x78], eax
movzx eax, word [ecx + 6]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0x80], eax
jne 0x44681c
mov dword [ebp - 0x80], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xa0]
push eax
call dword [0x4d2620]
add esp, 4
test eax, eax
jg case.0x408896.157
js 0x4089db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ecx + 8]
add eax, 0xfffffffc
mov ecx, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [eax]
mov dword [ebp - 0x30], eax
add eax, 0xffffff73
cmp eax, 0x10
ja case.0x446886.146
movzx eax, byte [eax + 0x44e6b5]
jmp dword [eax*4 + 0x44e69d]
mov ecx, dword [esi + 0xa8]
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
je 0x446a97
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x4468b2
cmp eax, dword [ecx + 4]
jne 0x446a97
mov ecx, 1
jmp 0x446a6e
cmp dword [esi + 0xa8], ecx
je case.0x446886.145
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea ecx, [eax + ecx*2]
test ebx, ebx
je 0x446a8f
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
movzx eax, word [ecx]
dec ebx
cmp eax, dword [ebp - 0x1c]
je 0x44695f
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x34], ecx
test ebx, ebx
jg 0x4468f0
xor ecx, ecx
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x446928
cmp word [ebx - 4], 0x77
jne 0x40886d
cmp edi, 0x8c
jne 0x408995
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.00408810
add esp, 0x14
jmp 0x4089db
mov ebx, dword [ebp - 0x2c]
mov ecx, 1
jmp 0x446a6e
mov ebx, dword [ebp - 0x2c]
movzx eax, word [ebx + 2]
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x44698b
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x44698b
mov ecx, 1
jmp 0x44698d
xor ecx, ecx
test ecx, ecx
jne 0x446a6e
jmp 0x446910
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea eax, [eax + ecx*2]
test ebx, ebx
je 0x446a8f
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec ebx
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x4469cf
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x44695f
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x34], eax
test ebx, ebx
jg 0x4469ba
jmp 0x44690b
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 8]
mov dword [esi + 0x9c], 1
mov eax, dword [ebp + 0x18]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408810
add esp, 0x14
cmp eax, 1
jne 0x446a7d
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x446a1f
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x92
mov dword [ebp - 0x20], 1
cmp word [eax], cx
jne 0x446a38
lea eax, [ebx + 2]
mov ebx, eax
movzx eax, word [eax + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x446a54
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x446a46
mov eax, dword [ebp - 0x30]
mov ecx, 2
movzx eax, byte [eax + 0x4c2140]
sub ecx, eax
lea ebx, [edx + ecx*2]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + 0x4c2140]
jmp 0x446913
test eax, eax
je 0x446a8c
cmp eax, 0xfffffc20
jne 0x4089db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp case.0x446886.145
mov ecx, dword [ebp - 0x20]
jmp 0x446910
movzx ecx, word [ebx + 2]
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
mov dword [ebp - 0x1c], ecx
or eax, ecx
lea edi, [ecx + ecx]
mov dword [esi + 0x94], eax
mov dword [ebp - 0x34], edi
cmp edi, dword [esi + 0x14]
jl 0x446ad4
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x408946
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x1c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edi*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jl 0x449253
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x446b1b
sub ecx, edx
mov edi, edx
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
lea eax, [edi + 2]
mov dword [ebp + 0xc], eax
jmp 0x449253
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
jne 0x446b49
mov dword [esi + 0x9c], 0
mov edi, 1
jmp 0x446b4b
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.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x446bc2
cmp eax, 0xfffffc19
je 0x446bc2
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], ecx
cmp eax, 0xfffffc20
jne 0x446baa
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x446bb2
cmp word [eax], 0x77
je 0x446bb2
jmp 0x44e3d4
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446b4b
jmp 0x446bcb
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x408896.157
test edi, edi
jne 0x4089d6
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446bdd
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x408b79
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x446c21
mov dword [esi + 0x9c], 0
mov dword [ebp - 0x34], 1
jmp 0x446c28
mov dword [ebp - 0x34], 0
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xb0], edi
cmp eax, 0xfffffc20
jg 0x446c81
jne 0x446c96
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x446caf
cmp word [ebx], 0x77
je 0x446c71
cmp word [eax], 0x77
jne 0x446caf
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446c28
jmp 0x446cbd
mov ecx, eax
sub ecx, 0
je 0x446c71
sub ecx, 1
je case.0x408896.157
jmp 0x4089db
cmp eax, 0xfffffc19
je case.0x408896.157
add eax, 0x3e4
cmp eax, 3
ja 0x44e3d4
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x446caf
cmp dword [ebp - 0x34], 0
jne 0x4089d6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
cmp dword [ebp - 0x28], 0
je 0x446d17
movzx ecx, word [ebx + 2]
test ecx, ecx
je 0x446d31
mov eax, dword [ebp - 8]
dec ecx
add eax, 0xfffffffe
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x408896.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x446d11
add eax, 0xfffffffe
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x446ce0
jmp 0x446d34
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.0x408896.157
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x408946
mov dword [esi + 0x88], eax
jmp 0x408946
cmp dword [0x4d2620], 0
je 0x446e23
mov dword [ebp - 0xd4], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xbc], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0xac], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0xb4], eax
jne 0x446dea
mov dword [ebp - 0xb4], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0xb0], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xd4]
push eax
call dword [0x4d2620]
add esp, 4
test eax, eax
jg case.0x408896.157
js 0x4089db
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x40886d
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jne 0x446e43
xor edx, edx
jmp 0x446e47
movzx edx, word [eax + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x446e6e
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x446e68
cmp eax, dword [ecx + 0x14]
jne 0x446e68
mov eax, 0xffffffe6
jmp 0x4089db
mov ecx, dword [ecx]
test ecx, ecx
jne 0x446e54
mov dword [ebp - 0x54], edx
add ebx, 4
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x1e
jg 0x446eae
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x446ecc
lea eax, [ecx*4]
push eax
call fcn.004091b2
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x44c9de
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00420e20
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov eax, 0x88
cmp word [ecx], ax
sbb edi, edi
inc edi
test edi, edi
je 0x446ef8
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ecx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x4c2140]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 8]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x4c]
shl eax, 2
push eax
push dword [ebp - 0x50]
push dword [esi + 0xc]
call fcn.00420e20
mov eax, dword [ebp - 0x48]
add esp, 0xc
mov dword [esi + 0x94], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 1
je 0x446fb7
cmp eax, 0xfffffc19
je 0x446fb7
cmp eax, 0xfffffc1c
jl 0x446f66
cmp eax, 0xfffffc20
jle 0x446f98
test eax, eax
jne 0x44c9bf
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x24], ecx
je 0x446eea
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x408896.157
push eax
call fcn.004091bb
add esp, 4
jmp case.0x408896.157
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x446fcd
push eax
call fcn.004091bb
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x408b79
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x408896.119
mov dword [ebp - 0x30], ebx
jmp 0x40886d
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447021
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
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 0x447042
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
jmp 0x408b79
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x44707d
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x40886d
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x24], 1
cmp edi, 0x86
je 0x4470b8
cmp edi, 0x8b
jne 0x4466db
movzx edx, word [ebx + 4]
mov dword [ebp - 0x20], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x4466db
mov ecx, ebx
shl eax, 2
sub ecx, dword [esi + 0x74]
sar ecx, 1
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x10]
mov edx, eax
sub edx, dword [esi + 0x78]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp edi, 0x88
jb 0x44712f
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 + 0x4c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00408810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x44722a
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov ecx, 1
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 8], eax
je 0x4472a9
mov dword [ebp - 8], eax
jmp 0x44710a
cmp eax, 0xfffffc20
jne 0x4471d2
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x4471da
cmp word [eax], 0x77
je 0x4471da
jmp 0x44e3d4
test eax, eax
jne 0x4089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x44720f
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
jmp 0x4466f5
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4471f6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
cmp dword [ebp - 0x34], 0
jne 0x447204
cmp dword [ebp - 0x24], 0
je case.0x408896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
cmp eax, 0xfffffc20
jne 0x447255
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x44e3d4
cmp word [ebx], 0x77
je 0x44725d
cmp word [eax], 0x77
je 0x44725d
jmp 0x44e3d4
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x447107
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x4472b7
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax], edx
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax + 4], edx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0xc]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x30]
jmp 0x4472b7
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x4472a9
cmp dword [ebp - 0x24], 0
jne 0x447204
test ecx, ecx
je case.0x408896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
mov eax, dword [ebp + 0x14]
mov esi, eax
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
jmp 0x4088d0
mov edx, dword [ebp - 0x24]
mov ecx, edi
cmp dword [eax + 4], edx
mov edx, dword [ebp - 8]
jne 0x408cc3
mov eax, edx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x4089db
mov edi, dword [ebp - 0x20]
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x408929
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x447344
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
jmp 0x408ceb
cmp eax, 0x7b
je 0x44ca48
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 8], eax
jne 0x44c6c9
mov edx, dword [ebp - 8]
jmp 0x408938
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x447380
cmp eax, dword [esi + 0x78]
je case.0x408896.157
jmp 0x447380
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x78]
jne case.0x408896.157
jmp 0x408ac3
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x4473a0
cmp eax, dword [esi + 0x78]
je case.0x408896.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x408ac3
cmp eax, dword [esi + 0x7c]
je case.0x408896.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4473e4
cmp eax, ecx
jbe case.0x408896.157
mov edi, dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push edi
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0049ba5a
add esp, 0xc
test eax, eax
je case.0x408896.157
jmp 0x408ac3
mov edi, dword [esi + 0x1c]
lea edx, [edi + edi]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jb case.0x408896.157
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x408896.157
cmp edi, 1
je 0x408ac3
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x408896.157
jmp 0x408ac3
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x408896.157
jmp 0x408ac6
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x408b79
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4474f5
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4474c2
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00406cde
add esp, 0xc
test eax, eax
jne 0x408ac3
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x408896.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x408896.157
cmp dword [esi + 0x18], 0
jne case.0x408896.157
cmp dword [esi + 0x1c], 2
jne case.0x408896.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x408896.157
jmp 0x44a9f0
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44747d
cmp edx, 1
je 0x408ac3
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44747d
jmp 0x408ac3
cmp dword [esi + 0x4c], 0
jne case.0x408896.157
cmp dword [esi + 0x8c], 0
je 0x408ac3
cmp eax, dword [esi + 0x88]
jmp 0x44751a
cmp edx, dword [esi + 0x88]
jbe 0x408ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x408ac3
cmp dword [esi + 0x4c], 0
jne case.0x408896.157
cmp dword [esi + 0x5c], 0
je case.0x408896.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x408896.157
jmp 0x4474ff
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4474ff
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x447583
push dword [ebp - 0x28]
push edi
push ecx
mov ecx, eax
call fcn.00406cde
add esp, 0xc
test eax, eax
jne 0x4475b8
jmp 0x44747d
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x44747d
cmp edx, 1
je 0x4475b8
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x44747d
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 0x447480
jmp 0x4474ff
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
je 0x447747
cmp eax, dword [esi + 0x78]
je 0x4476ac
lea edx, [eax - 2]
mov edi, 0xfc00
mov ax, word [edx]
mov ecx, edx
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x447607
lea ecx, [edx - 2]
mov edx, ecx
cmp ecx, dword [esi + 0x88]
jae 0x447615
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
mov edi, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447644
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, ecx
cmp dword [esi + 0x58], 0
je 0x44768e
cmp edi, 0x5f
je 0x447684
mov eax, edi
and edi, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x447684
cmp eax, 3
jne 0x4476a9
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4476ae
cmp edi, 0x100
jae 0x4476a9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x4476ac
mov edi, 1
jmp 0x4476ae
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x447869
movzx ecx, word [eax]
mov eax, ecx
mov edx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4476e9
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax + 2]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov edx, ecx
cmp dword [esi + 0x58], 0
je 0x447711
cmp edx, 0x5f
je 0x4478bb
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edx
jmp 0x447806
cmp edx, 0x100
jae 0x447726
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x4478bb
xor ecx, ecx
movzx eax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 5
jne 0x4478c5
cmp ecx, edi
je case.0x408896.157
jmp 0x408b79
cmp eax, dword [esi + 0x78]
je 0x4477c0
cmp eax, dword [esi + 0x88]
ja 0x447760
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x447841
cmp ecx, 0x5f
je 0x44783a
mov eax, ecx
test eax, eax
jns 0x447780
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
and ecx, 0x8000007f
jns 0x44779a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x447837
cmp eax, 3
mov eax, dword [ebp - 8]
je 0x44783a
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x447869
cmp dword [esi + 0x58], 0
je 0x44789b
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x4478bb
mov eax, ecx
test eax, eax
jns 0x4477ea
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
and ecx, 0x8000007f
jns 0x447804
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x4478bb
cmp eax, 3
jne 0x447726
lea ecx, [eax - 2]
jmp 0x447728
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x4477c2
mov edx, 0xff
cmp cx, dx
ja 0x4477c0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x4477c0
mov edi, 1
jmp 0x4477c2
cmp dword [esi + 0x8c], 0
je 0x447726
cmp eax, dword [esi + 0x88]
jbe 0x447726
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x447726
jmp 0x44e351
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x447726
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x447726
mov ecx, 1
jmp 0x447728
cmp ecx, edi
jne case.0x408896.157
jmp 0x408b79
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x447901
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
cmp eax, ecx
jae 0x447939
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00406cde
add esp, 0xc
test eax, eax
jne case.0x408896.157
jmp 0x447936
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x447933
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x447933
cmp edx, 1
je case.0x408896.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x408896.157
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x44797f
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, 2
cmp ecx, eax
jne 0x44797c
cmp dword [esi + 0x18], 0
jne 0x44797c
cmp dword [esi + 0x1c], 2
jne 0x44797c
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne 0x44797c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x44797c
jmp 0x44e351
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x44cdc7
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x408ac3
cmp eax, ecx
jae 0x408ac3
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x408ac3
add dword [ebp - 8], 2
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
add eax, 2
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x408b79
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447a2c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447a2c
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0x408ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447a97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447a97
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447b02
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447b02
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0x408ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447b6d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447b6d
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447bd8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447bd8
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0x100
jae 0x408ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x447c43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447c43
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov edx, ecx
cmp edx, 0xff
ja case.0x408896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x408896.157
jmp 0x408ac3
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, eax
mov dword [ebp - 8], eax
je 0x447cb3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, edx
jne 0x447cb3
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, edx
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
mov edx, eax
cmp ecx, 0xd
ja 0x447cff
je 0x447cd4
cmp ecx, 0xa
je 0x408ac3
jbe case.0x408896.157
cmp ecx, 0xc
ja case.0x408896.157
jmp 0x447d16
cmp edx, edi
jb 0x447cea
cmp dword [esi + 0x8c], 0
je 0x408ac3
jmp 0x447514
cmp word [eax], 0xa
jne 0x408ac3
lea eax, [edx + 2]
mov dword [ebp - 8], eax
jmp 0x408ac3
cmp ecx, 0x85
je 0x447d16
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
cmp dword [esi + 0x6c], 0
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447d6e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447d6e
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 0x447db2
je case.0x408896.157
cmp ecx, 0xa0
ja 0x447da1
je case.0x408896.157
cmp ecx, 9
je case.0x408896.157
cmp ecx, 0x20
je case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x1680
je case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x205f
ja 0x447de9
je case.0x408896.157
cmp ecx, 0x2000
jb 0x408ac3
cmp ecx, 0x200a
jbe case.0x408896.157
cmp ecx, 0x202f
je case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x3000
je case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447e43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447e43
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 0x447e87
je 0x408ac3
cmp ecx, 0xa0
ja 0x447e76
je 0x408ac3
cmp ecx, 9
je 0x408ac3
cmp ecx, 0x20
jne case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x1680
jne case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x205f
ja 0x447ebe
je 0x408ac3
cmp ecx, 0x2000
jb case.0x408896.157
cmp ecx, 0x200a
jbe 0x408ac3
cmp ecx, 0x202f
jne case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x3000
jne case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447f18
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447f18
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 0x447f3d
je case.0x408896.157
cmp ecx, 0xa
jb 0x408ac3
cmp ecx, 0xd
jbe case.0x408896.157
jmp 0x408ac3
cmp ecx, 0x2028
jb 0x408ac3
cmp ecx, 0x2029
jbe case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x447fa3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x447fa3
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 0x447fc2
je 0x408ac3
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x408896.157
jmp 0x408ac3
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x408896.157
jmp 0x408ac3
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
mov ecx, edx
mov dword [ebp - 0x20], ecx
jmp 0x408c4a
cmp eax, 0xa
ja case.default.0x448009
jmp dword [eax*4 + 0x44e6c9]
mov al, byte [ecx*8 + 0x4af3f1]
cmp al, 9
je 0x448035
cmp al, 5
je 0x448035
cmp al, 8
je 0x448035
xor ecx, ecx
jmp 0x448051
cmp edi, 0xf
je case.0x408896.157
jmp 0x408d2a
mov ecx, 1
jmp 0x448051
movzx eax, byte [ecx*8 + 0x4af3f1]
xor ecx, ecx
cmp dword [eax*4 + 0x4c5350], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x408896.157
jmp 0x408d2a
movzx ecx, byte [ecx*8 + 0x4af3f1]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x4c5350]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x408896.157
jmp 0x408d2a
movzx eax, byte [ecx*8 + 0x4af3f1]
jmp 0x4480a5
movzx eax, byte [ecx*8 + 0x4af3f0]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x408896.157
jmp 0x408d2a
movzx eax, byte [ecx*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x448035
cmp eax, 3
je 0x448035
xor ecx, ecx
jmp 0x448051
cmp edx, 0x180e
ja 0x448144
je case.0x448009.0
cmp edx, 0x85
ja 0x448127
je case.0x448009.0
cmp edx, 9
jb case.0x448168.8203
cmp edx, 0xd
jbe case.0x448009.0
cmp edx, 0x20
je case.0x448009.0
jmp case.0x448168.8203
cmp edx, 0xa0
je case.0x448009.0
cmp edx, 0x1680
je case.0x448009.0
jmp case.0x448168.8203
cmp edx, 0x202f
ja 0x44816f
je case.0x448009.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x448168.8203
movzx eax, byte [edx + 0x44e6fd]
jmp dword [eax*4 + 0x44e6f5]
cmp edx, 0x205f
je case.0x448009.0
cmp edx, 0x3000
je case.0x448009.0
jmp case.0x448168.8203
movzx eax, byte [ecx*8 + 0x4af3f1]
mov eax, dword [eax*4 + 0x4c5350]
cmp eax, 1
je 0x448035
cmp eax, 3
je 0x448035
cmp dword [ebp - 0x20], 0x5f
je 0x448035
xor ecx, ecx
jmp 0x448051
mov eax, dword [ebp - 0x20]
cmp eax, 0x24
je 0x448035
cmp eax, 0x40
je 0x448035
cmp eax, 0x60
je 0x448035
cmp eax, 0xa0
jb 0x4481ee
cmp eax, 0xd7ff
jbe 0x448035
cmp eax, 0xe000
jae 0x448035
xor ecx, ecx
jmp 0x448051
cmp edi, 0x10
je case.0x408896.157
jmp 0x408d2a
mov ecx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
and eax, 0x3ff
mov edi, dword [ebp - 8]
mov ecx, edx
and ecx, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x408a18
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
jmp 0x408a70
cmp edi, eax
jb 0x408ac3
cmp edi, dword [esi + 0x88]
jbe 0x408ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
jmp 0x408ac3
movzx ecx, word [ebx + 2]
xor eax, eax
cmp edi, 0x74
sete al
imul ecx, dword [esi + 0x24]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 4]
add ebx, 6
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x30], ebx
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
xor edi, edi
neg ecx
mov dword [ebp - 0x18], edi
dec ecx
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x2c], edi
jbe 0x448344
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec dword [ebp - 0x2c]
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0x4482ee
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x4482ee
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448341
cmp dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x34]
mov eax, dword [esi + 0x24]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x34], eax
jg 0x4482cb
jmp 0x448344
xor eax, eax
cmp edi, 0x72
sete al
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [ebp - 0x30], ebx
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0x448337
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x448337
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x448341
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [ebx]
mov dword [ebp - 0x1c], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0x44835d
movzx eax, byte [eax + 0x44e731]
jmp dword [eax*4 + 0x44e729]
mov eax, dword [ebp - 0x1c]
add ebx, 2
mov dword [ebp - 0x30], ebx
lea edi, [eax - 0x62]
and edi, 1
mov dword [ebp - 0x1c], edi
movsx edi, byte [eax + 0x4b1bca]
movsx eax, byte [eax + 0x4b1bbe]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x4483c5
mov dword [ebp - 0x2c], 0x7fffffff
jmp 0x4483c5
cmp word [ebx], 0x69
mov eax, 0
movzx edi, word [ebx + 2]
sete al
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x4483bf
mov dword [ebp - 0x2c], 0x7fffffff
add ebx, 6
mov dword [ebp - 0x30], ebx
mov eax, edi
test ecx, ecx
je 0x40886d
jns 0x4483d9
test edi, edi
je 0x40886d
cmp eax, 1
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 8]
jl 0x44841b
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0049b321
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44cb5b
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x34], ecx
cmp ecx, edi
mov ecx, dword [ebp - 0x20]
jle 0x4483e8
mov edx, dword [ebp - 0x2c]
cmp edi, edx
je 0x408b79
cmp dword [ebp - 0x1c], 0
je 0x44caad
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
jge case.0x408896.157
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.0049b321
add esp, 0xc
test eax, eax
js 0x44ca8a
inc dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408810
add esp, 0x14
test eax, eax
je 0x448456
jmp 0x4089db
push dword [ebp - 0x24]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.0049b321
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x44cb5b
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x408b79
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x4484e5
movzx eax, byte [eax + 0x44e741]
jmp dword [eax*4 + 0x44e739]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x448504
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x44850b
mov dword [ebp - 0x2c], 1
movsx edx, byte [eax + 0x4b1c2c]
movsx eax, byte [eax + 0x4b1c20]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x408afb
mov dword [ebp - 0x20], 0x7fffffff
jmp 0x408afb
xor eax, eax
cmp edx, 0x69
sete al
mov dword [ebp - 0x10], eax
xor eax, eax
cmp edx, 0x6d
movzx edx, word [ebx + 2]
mov dword [ebp - 0x18], edx
sete al
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x448562
mov dword [ebp - 0x20], 0x7fffffff
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x408afb
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
jmp 0x408b38
cmp edi, 0x6e
je case.0x408896.157
jmp 0x408b62
cmp edx, 1
jl 0x408b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x4485d1
cmp edi, 0x6e
je case.0x408896.157
jmp 0x4485f2
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x408896.157
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x4485ac
jmp 0x408b70
cmp dword [ebp - 0x10], 0
jne 0x44cb89
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0x448752
cmp edx, dword [ebp - 0x20]
jl 0x448628
jmp 0x4486d8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x4486b3
movzx edx, word [eax]
mov ecx, 1
mov eax, edx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44866f
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
mov ecx, 2
mov dword [ebp - 0x34], ecx
movzx eax, word [eax + 2]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
cmp edx, 0xff
jbe 0x44867e
cmp edi, 0x6e
jne 0x448698
jmp 0x4486d8
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je 0x4486d8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x20]
jl 0x448625
jmp 0x4486d8
cmp dword [esi + 0x8c], 0
je 0x4486d8
cmp eax, dword [esi + 0x88]
jbe 0x4486d8
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
cmp dword [ebp - 0x2c], 0
jne 0x408b79
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x14]
jbe case.0x408896.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x44872e
add edi, 0xfffffffe
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408810
add esp, 0x14
test eax, eax
je 0x448708
jmp 0x4089db
cmp edx, dword [ebp - 0x20]
jge 0x4487c7
mov ecx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0x44879f
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x448771
cmp edi, 0x6e
jne 0x44878e
jmp 0x4487c4
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
mov eax, dword [ebp - 8]
je 0x4487c4
mov ecx, dword [ebp - 0x18]
inc ecx
add eax, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x20]
jl 0x44875a
jmp 0x4487c4
cmp dword [esi + 0x8c], 0
je 0x4487c4
cmp eax, dword [esi + 0x88]
jbe 0x4487c4
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
jb case.0x408896.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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
sub edi, 2
cmp edi, dword [ebp - 0x14]
jae 0x4487dc
jmp case.0x408896.157
lea eax, [ebx + 4]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
movzx ecx, word [ebx + eax*2]
lea ebx, [ebx + eax*2]
mov edi, ecx
mov dword [ebp - 0x30], ebx
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x448835
movzx eax, byte [eax + 0x44e755]
jmp dword [eax*4 + 0x44e74d]
lea eax, [edi - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x448854
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x44885b
mov dword [ebp - 0x2c], 1
movsx ecx, byte [eax + 0x4b1c20]
movsx edi, byte [eax + 0x4b1c2c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x4488c8
mov ecx, 0x7fffffff
jmp 0x4488c5
movzx edi, word [ebx + 2]
xor eax, eax
cmp ecx, 0x69
mov dword [ebp - 0x18], edi
sete al
cmp ecx, 0x6d
mov ecx, 0
mov dword [ebp - 0x10], eax
sete cl
mov dword [ebp - 0x2c], ecx
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x4488b0
mov ecx, 0x7fffffff
mov dword [ebp - 0x20], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x4488c8
mov eax, dword [ebp - 0x10]
mov ecx, 1
mov edi, ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], 1
cmp edi, 1
jl 0x448946
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44cdc7
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], eax
test edx, edx
je 0x44891e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x44891e
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
push edx
mov edx, dword [ebp - 0x24]
call fcn.0049b51c
add esp, 4
test eax, eax
je case.0x408896.157
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jle 0x4488d4
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp edi, ecx
je 0x40886d
test eax, eax
jne 0x44ccde
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0x448968
jmp 0x4489ff
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x4489da
mov edx, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
test edx, edx
je 0x4489b0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4489b0
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
push edx
mov edx, dword [ebp - 0x24]
call fcn.0049b51c
add esp, 4
test eax, eax
je 0x448a02
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x18], edi
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x20]
jl 0x448965
jmp 0x4489ff
cmp dword [esi + 0x8c], 0
je 0x4489ff
cmp eax, dword [esi + 0x88]
jbe 0x4489ff
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x38]
jbe case.0x408896.157
cmp dword [ebp - 0x28], 0
je 0x448a5b
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x448a5b
add edi, 0xfffffffe
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408810
add esp, 0x14
test eax, eax
je 0x448a2f
jmp 0x4089db
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0x408d67
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x44cdaf
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x408896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x408b79
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
mov edx, ecx
mov dword [ebp - 0x24], edx
jmp 0x408bd6
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x448b22
mov ecx, dword [ebp - 8]
and edi, 0x3ff
shl edi, 0xa
movzx eax, word [ecx]
add ecx, 2
and eax, 0x3ff
mov dword [ebp - 8], ecx
or edi, eax
add edi, 0x10000
mov eax, dword [ebp - 0x34]
cmp edx, edi
mov edx, dword [ebp - 8]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
je 0x40886d
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov eax, dword [eax*8 + 0x4af3f4]
add eax, edx
cmp edi, eax
jne case.0x408896.157
jmp 0x408b79
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x448b87
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x448b89
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x448ba0
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x408896.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x408b79
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x448c7b
mov dword [ebp - 0x2c], 1
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x28
je 0x448bef
mov dword [ebp - 0x10], edx
cmp ecx, 0x35
jne 0x448bf6
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x448c7b
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x448c74
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x448c74
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], 1
mov ecx, ebx
jmp 0x448c7b
cmp edi, 0x2e
mov edx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x2e
sub edx, eax
mov eax, edx
and edx, 1
mov dword [ebp - 0x10], edx
movsx edx, byte [eax + 0x4b1c2c]
movsx eax, byte [eax + 0x4b1c20]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x448c7b
mov dword [ebp - 0x18], 0x7fffffff
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
je 0x448f07
and eax, 0xfc00
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x1c], 1
cmp eax, 0xd800
jne 0x448cee
movzx eax, word [ebx + 2]
mov ebx, dword [ebp - 0x20]
and eax, 0x3ff
and ebx, 0x3ff
mov dword [ebp - 0xc], 2
shl ebx, 0xa
or ebx, eax
mov dword [ebp - 0x30], 2
add ebx, 0x10000
mov dword [ebp - 0x1c], 2
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], eax
jmp 0x448cf1
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], 1
mov ebx, dword [ebp - 0x30]
lea ebx, [ecx + ebx*2]
mov dword [ebp - 0x30], ebx
jbe 0x448f0d
cmp edi, 0x2e
jb 0x448d44
mov edi, dword [ebp - 0x24]
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov ecx, dword [eax*8 + 0x4af3f4]
add ecx, edi
cmp ecx, edi
je 0x448d44
lea edx, [ebp - 0x6c]
call fcn.0049b9a7
mov edx, dword [ebp - 0x14]
mov edi, eax
jmp 0x448d46
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 1
cmp edx, 1
jl 0x448ddd
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x7c]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x448d8b
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00421394
add esp, 0xc
test eax, eax
jne 0x448d8b
mov ecx, dword [ebp - 0x1c]
mov eax, edi
add eax, ecx
mov dword [ebp - 8], eax
jmp 0x448dca
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x44ca92
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x44ca92
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00421394
add esp, 0xc
test eax, eax
jne 0x44ca92
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
mov eax, edi
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, edx
jle 0x448d62
mov edi, dword [ebp - 0x20]
jmp 0x448de0
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44cddf
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x18]
jge 0x448ea3
mov eax, dword [ebp - 0xc]
lea edx, [eax + eax]
mov dword [ebp - 0x1c], edx
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, edx
cmp ecx, eax
ja 0x448e38
push edx
push dword [ebp - 0x34]
push ecx
call fcn.00421394
add esp, 0xc
test eax, eax
jne 0x448e35
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x448e5f
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x448e70
mov eax, dword [esi + 0x7c]
add edi, edi
sub eax, edi
cmp ecx, eax
ja 0x448e70
push edi
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00421394
add esp, 0xc
test eax, eax
jne 0x448e70
add dword [ebp - 8], edi
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
inc edx
cmp edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
jl 0x448e0a
jmp 0x448e9d
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x448ea0
cmp eax, dword [esi + 0x7c]
jb 0x448e9d
cmp eax, dword [esi + 0x88]
jbe 0x448e9d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
jbe 0x408992
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.00408810
add esp, 0x14
test eax, eax
jne 0x4089db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x448efd
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x448eb8
jmp 0x408992
lea ebx, [ecx + 2]
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x44904b
cmp dword [ebp - 0x28], 0
je 0x448f4d
cmp eax, 0x7f
jbe 0x448f4d
shr eax, 7
movzx ecx, byte [eax + 0x4bff40]
mov eax, dword [ebp - 0x24]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4b1c40]
mov eax, dword [eax*8 + 0x4af3f4]
add dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
jmp 0x448f66
cmp eax, 0xff
ja 0x448f60
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [eax + ecx]
jmp 0x448f63
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp edx, 1
jl 0x448f9f
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x448f8e
cmp edi, ecx
jne case.0x408896.157
mov ecx, dword [ebp - 0x1c]
add eax, 2
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], ecx
cmp ecx, edx
jle 0x448f75
cmp edx, dword [ebp - 0x18]
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44ce98
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp edx, dword [ebp - 0x18]
jge 0x449003
cmp eax, dword [esi + 0x7c]
jae 0x448fdb
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x448fcd
cmp edi, ecx
jne 0x449000
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x448fbc
jmp 0x449000
cmp dword [esi + 0x8c], 0
je 0x449000
cmp eax, dword [esi + 0x88]
jbe 0x449000
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x44e351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
je 0x408992
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.00408810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x4089db
cmp edi, dword [ebp - 0x14]
jne 0x449018
jmp 0x408992
mov ecx, 1
cmp edx, ecx
jge 0x449059
mov edi, dword [ebp - 8]
jmp 0x44907f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x44d08a
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], eax
jne case.0x408896.157
inc ecx
cmp ecx, edx
jle 0x449059
cmp edx, dword [ebp - 0x18]
je 0x408b79
cmp dword [ebp - 0x10], 0
jne 0x44cf0f
mov eax, dword [ebp - 8]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp edx, edi
jge 0x4490c2
mov ecx, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x44910a
movzx eax, word [eax]
cmp ecx, eax
jne 0x4490bc
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, edi
jl 0x4490a4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x408b79
cmp eax, ecx
je 0x408992
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.00408810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
invalid