Function at 0x4450b0
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
mov eax, dword [0x6b7e64]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x24], 0
xor bl, bl
mov dword [ebp - 0x1c], edi
xorps xmm0, xmm0
mov byte [ebp - 0x85], bl
mov dword [ebp - 0x6c], 0
cmp dword [edi + 0xa0], 0
mov ecx, dword [edi]
mov esi, dword [edi + 0x68]
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x14], esi
mov al, byte [ecx + 0x54]
mov byte [ebp - 0x54], al
mov eax, dword [edi + 0x58]
mov dword [ebp - 0x18], ecx
movlpd qword [ebp - 0xc8], xmm0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xe0], 0
je 0x445123
mov ecx, edi
call fcn.0043c860
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x174], 0
je 0x445142
mov ebx, dword [ecx + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ebx
sub ebx, edx
xor eax, eax
jmp 0x445148
or ebx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x90], ebx
je 0x44b632
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
cmp dword [ecx + 0x128], 0
mov dword [ecx + 0x1c8], 0
jne 0x44b613
mov eax, dword [edi + 0x20]
mov edx, dword [ebp - 0xc4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov eax, dword [ebp - 0xc8]
add eax, 1
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], eax
adc edx, 0
mov dword [ebp - 0xbc], edx
mov dl, byte [esi]
movzx ebx, dl
cmp ebx, 0xb8
ja case.0x4451c2.89
jmp dword [ebx*4 + 0x44b77c]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
sub ecx, dword [ebp - 0x64]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x44aa54
mov eax, dword [esi + 4]
mov ebx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x445262
mov eax, dword [ebx + eax*8]
mov edx, dword [ebp - 0x64]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x44688e
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x64]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
xor eax, eax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x64]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x64]
mov dword [ebx + esi*8 + 4], edx
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x445262
mov esi, dword [edi + 0xd0]
test esi, esi
je 0x44b01e
mov edi, dword [ebp - 0x14]
cmp dword [edi + 4], 0
mov edi, dword [ebp - 0x1c]
jne 0x44b01e
push dword [edi + 0x2c]
mov eax, dword [esi + 4]
push dword [edi + 0x28]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
call fcn.004409e0
add esp, 8
mov ecx, esi
call fcn.0043d410
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 4
jne 0x445372
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov ecx, dword [edi + 0x58]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x64], edx
lea ecx, [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4453e2
call fcn.00444c70
mov esi, dword [ebp - 0x14]
mov ecx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov esi, dword [ebp - 0x14]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x445433
mov ecx, edx
call fcn.00444c70
mov edx, eax
jmp 0x44543c
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x18]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x445484
call fcn.00444c70
mov ecx, eax
mov esi, dword [ebp - 0x14]
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x20]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4454d7
mov ecx, esi
call fcn.00444c70
mov esi, eax
jmp 0x4454e0
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x4454eb
xor ecx, ecx
jmp 0x4454ff
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4454f0
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [ebp - 0x54], 1
mov dword [ebx + 4], ecx
je 0x445573
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.0043a770
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x24], edi
test edi, edi
jne 0x44b2b2
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.00439780
test eax, eax
jne 0x446e7f
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x445560
push dword [ecx + 0x10]
push dword [ebp - 0x18]
call fcn.00411730
mov ecx, dword [ebp - 0x14]
add esp, 8
mov ebx, dword [ebp - 0x14]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x78]
jg 0x44b2b5
mov byte [ebx], 0x49
jmp 0x44558a
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4455a8
call fcn.00444c70
mov ecx, eax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x54]
mov byte [ecx + 0x12], al
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x44ad7a
mov ebx, dword [ebp - 0x28]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x44ad7a
cmp dword [ebx + esi*8 + 4], edx
jne 0x44ad7a
mov esi, dword [ebp - 0x14]
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x445637
mov ecx, edx
call fcn.00444c70
mov edx, eax
jmp 0x445640
mov eax, 4
mov word [edx + 0x10], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
mov dword [edx + 0xc], 0
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
test edi, edi
jle 0x44ad7a
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x44568c
lea ecx, [esi - 0x10]
call fcn.00439dd0
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x445676
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov edx, 0xffc1
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x445713
mov ecx, esi
call fcn.00444c70
mov esi, eax
jmp 0x44571c
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x44575e
mov edx, eax
mov ecx, esi
call fcn.0043a470
mov ecx, esi
call fcn.00439be0
test eax, eax
jne 0x446e82
mov al, byte [ebp - 0x54]
mov ecx, dword [ebp - 0x18]
mov byte [esi + 0x12], al
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.0043a770
mov al, byte [ebp - 0x54]
add esp, 0x10
mov ecx, dword [ebp - 0x18]
mov byte [esi + 0x12], al
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.0043a650
test eax, eax
jne 0x44b2b2
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4457ce
mov ecx, esi
call fcn.0043a450
movups xmm0, xmmword [edi - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov edi, dword [ebp - 0x1c]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [ebp - 0x18]
mov word [esi + 0x10], ax
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x445835
cmp dword [esi + 0x18], 0
je 0x44583c
mov ecx, esi
call fcn.00439e10
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 0x10], ax
mov eax, 0x4000
mov dword [edi + 0x18], 0
test word [esi + 0x10], ax
je 0x44587e
mov ecx, esi
call fcn.00439b50
test eax, eax
jne 0x446e7f
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x445824
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
nop
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.0043a6b0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x4458eb
mov ecx, esi
call fcn.00439b50
test eax, eax
jne 0x446e7f
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x445908
mov ecx, dword [ebp - 0x14]
test byte [ecx + 2], 2
je 0x445908
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x44ad7a
add esi, 0x28
add edi, 0x28
jmp 0x4458c0
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
push 0x4000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0043a6b0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x44599f
push eax
push edx
call fcn.0043a4c0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov esi, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
xor edx, edx
mov ecx, edi
call fcn.0043df20
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b653
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x44], ebx
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [ebx + 0x10]
mov dword [ebp - 0x50], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov al, byte [edi + 0x10]
or al, cl
test al, 1
je 0x445a43
mov ecx, esi
call fcn.0043a450
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
test cl, 0x12
jne 0x445a73
mov dl, byte [ebp - 0x54]
mov ecx, ebx
push 0
call fcn.00439c40
add esp, 4
test eax, eax
jne 0x446e7f
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [ebp - 0x50], ecx
jmp 0x445a9c
test ecx, 0x400
je 0x445a9c
mov ecx, ebx
call fcn.00439be0
test eax, eax
jne 0x446e7f
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x50], eax
movzx eax, word [edi + 0x10]
mov dword [ebp - 0x2c], eax
test al, 0x12
jne 0x445ab8
mov dl, byte [ebp - 0x54]
mov ecx, edi
push 0
call fcn.00439c40
add esp, 4
jmp 0x445ac6
test eax, 0x400
je 0x445ae0
mov ecx, edi
call fcn.00439be0
test eax, eax
jne 0x446e7f
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov ecx, dword [edi + 0xc]
add ecx, dword [ebx + 0xc]
mov eax, ecx
cdq
mov ebx, eax
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp dword [ebp - 0x74], edx
jg 0x44b2b2
jl 0x445b08
cmp ebx, eax
ja 0x44b2b2
xor eax, eax
lea edx, [ecx + 2]
cmp esi, edi
mov ecx, esi
sete al
push eax
call fcn.004397a0
add esp, 4
test eax, eax
jne 0x446e7f
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x445b55
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call fcn.006239e0
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x44]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 8]
add eax, dword [edi + 0xc]
push eax
call fcn.006239e0
mov eax, dword [ebp - 0x44]
add esp, 0xc
mov ecx, dword [ebp - 0x50]
mov word [eax + 0x10], cx
mov cl, byte [ebp - 0x54]
cmp cl, 1
jbe 0x445b88
mov eax, dword [ebp - 0x74]
and ebx, 0xfffffffe
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 8]
mov edi, dword [ebp - 0x1c]
mov byte [ebx + eax], 0
mov eax, dword [esi + 8]
mov byte [eax + ebx + 1], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov eax, dword [ebp - 0x20]
mov byte [esi + 0x12], cl
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0xc], ebx
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
movzx edx, word [edi + eax*8 + 0x10]
lea esi, [edi + eax*8]
mov eax, edx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
movzx ecx, word [edi + eax*8 + 0x10]
lea ebx, [edi + eax*8]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x2c], eax
mov al, cl
and al, dl
test al, 4
jne 0x445c44
or cl, dl
test cl, 1
jne 0x445e5a
and edx, 0x2d
je 0x445c18
mov ecx, edx
mov dword [ebp - 0x44], ecx
jmp 0x445c25
mov ecx, esi
call fcn.00444b70
movzx eax, ax
mov dword [ebp - 0x44], eax
mov ax, word [ebx + 0x10]
and ax, 0x2d
jne 0x445c36
mov ecx, ebx
call fcn.00444b70
movzx eax, ax
and al, byte [ebp - 0x44]
test al, 4
je 0x445cec
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov edi, dword [ebx]
movzx eax, byte [eax]
mov esi, dword [ebx + 4]
add eax, 0xffffff96
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xd4], esi
cmp eax, 3
ja case.default.0x445c6c
jmp dword [eax*4 + 0x44ba60]
push edx
push ecx
lea ecx, [ebp - 0xd8]
call fcn.004179a0
add esp, 8
test eax, eax
jne 0x445ce9
jmp 0x445e15
push edx
push ecx
lea ecx, [ebp - 0xd8]
call fcn.00417a40
add esp, 8
test eax, eax
jne 0x445ce9
jmp 0x445e15
push edx
push ecx
lea ecx, [ebp - 0xd8]
call fcn.00417a90
add esp, 8
test eax, eax
jne 0x445ce9
jmp 0x445e15
mov eax, ecx
or eax, edx
je 0x445e5a
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x445ddf
test edi, edi
jne 0x445ddf
cmp esi, 0x80000000
jne 0x445ddf
mov esi, dword [ebp - 0x50]
mov ecx, esi
call fcn.00439f70
mov ecx, ebx
movsd qword [ebp - 0x38], xmm0
call fcn.00439f70
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x445d0d
jmp dword [eax*4 + 0x44ba70]
addsd xmm0, qword [ebp - 0x38]
jmp 0x445d90
subsd xmm0, qword [ebp - 0x38]
jmp 0x445d90
mulsd xmm0, qword [ebp - 0x38]
jmp 0x445d90
movsd xmm1, qword [ebp - 0x38]
ucomisd xmm1, qword [0x698bd0]
lahf
test ah, 0x44
jnp 0x445e5a
divsd xmm0, xmm1
jmp 0x445d90
mov ecx, esi
call fcn.00439eb0
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.00439eb0
mov ecx, esi
mov dword [ebp - 0xd4], edx
or ecx, edi
mov ebx, eax
mov dword [ebp - 0xd8], ebx
je 0x445e5a
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x445d80
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ebx
call fcn.00646ba0
mov ecx, eax
call fcn.00646e80
movsd qword [ebp - 0x38], xmm0
call fcn.00415050
test eax, eax
jne 0x445e5a
mov edx, dword [ebp - 0x2c]
mov ecx, 0xf248
movsd xmm0, qword [ebp - 0x38]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov ax, word [edx + 0x10]
and ax, cx
movsd qword [edx], xmm0
mov ecx, dword [ebp - 0x18]
or ax, 8
movzx eax, ax
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
push edx
push ecx
push esi
push edi
call fcn.0061ec10
jmp 0x445e09
mov eax, ecx
or eax, edx
je 0x445e5a
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x445e00
mov ecx, 1
xor edx, edx
push edx
push ecx
push esi
push edi
call fcn.00646ba0
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xd8], eax
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov dword [edx], eax
mov ax, word [edx + 0x10]
mov dword [edx + 4], ecx
mov ecx, 0xf244
and ax, cx
mov ecx, dword [ebp - 0x18]
or ax, 4
movzx eax, ax
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [ebp - 0x2c]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x445e89
mov ecx, eax
call fcn.00439dd0
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edi, dword [ebp - 0x1c]
mov ecx, 1
mov esi, dword [ebp - 0x14]
mov word [eax + 0x10], cx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [esi + 4]
test eax, eax
je 0x445262
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.0043a4f0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [ebx + 0x10]
mov dword [ebp - 0x5c], edx
test al, 1
je 0x445f57
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x445f37
mov ecx, edx
call fcn.00439dd0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x18]
mov eax, 1
mov esi, dword [ebp - 0x14]
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
call fcn.00439eb0
mov edi, eax
mov esi, edx
mov ecx, ebx
mov dword [ebp - 0x130], edi
mov dword [ebp - 0x12c], esi
call fcn.00439eb0
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x445f85
and edi, ebx
and esi, edx
jmp 0x445fe8
cmp cl, 0x67
jne 0x445f90
or edi, ebx
or esi, edx
jmp 0x445fe8
mov eax, ebx
or eax, edx
je 0x445fe8
test edx, edx
jg 0x445fc4
jl 0x445fa0
test ebx, ebx
jae 0x445fb9
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x445fc4
jg 0x445fb2
cmp ebx, 0xffffffc0
jbe 0x445fc4
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x44601e
jg 0x445fc4
cmp ebx, 0x40
jb 0x44601e
test esi, esi
jg 0x445fda
jl 0x445fce
test edi, edi
jae 0x445fda
cmp cl, 0x68
je 0x445fda
or edi, 0xffffffff
or esi, edi
jmp 0x445fe8
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x5c]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], edi
mov edi, dword [ebp - 0x1c]
or ax, 4
mov dword [ecx + 4], esi
mov esi, dword [ebp - 0x14]
mov word [ecx + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
movq xmm1, qword [ebp - 0x130]
movd xmm0, ebx
cmp cl, 0x68
jne 0x44603a
psllq xmm1, xmm0
movq qword [ebp - 0x38], xmm1
jmp 0x445fe2
psrlq xmm1, xmm0
movq qword [ebp - 0x38], xmm1
test esi, esi
jg 0x445fe2
jl 0x44604d
test edi, edi
jae 0x445fe2
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.00646b60
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
or edi, eax
or esi, edx
jmp 0x445fe8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0043a0a0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [ebp - 0x20]
adc dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x4460f0
push dword [ebp - 0x54]
mov dl, 0x43
mov ecx, esi
call fcn.00444a50
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, eax
test al, 4
jne 0x4460f0
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x446891
mov edx, 0x14
jmp 0x44b105
mov eax, dword [ebp - 0x20]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x24
lea ecx, [ecx + eax*8]
je 0x44525c
call fcn.0043a140
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x446178
mov ecx, esi
call fcn.00439be0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0x14]
mov ecx, esi
push dword [ebp - 0x54]
mov dl, byte [eax + 8]
call fcn.0043a2d0
add esp, 4
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [edi + 0x10]
movzx ecx, ax
mov dword [ebp - 0x44], eax
movzx eax, word [esi + 0x10]
mov edx, eax
mov dword [ebp - 0x2c], ecx
and edx, ecx
mov dword [ebp - 0x5c], eax
test dl, 4
je 0x446292
mov edx, dword [esi + 4]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
cmp edx, ecx
jl 0x44622a
jg 0x4461fc
mov esi, dword [esi]
cmp esi, eax
jbe 0x44622c
cmp byte [ebx + 0x694ab0], 0
mov edi, dword [ebp - 0x1c]
jne 0x446891
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x6c], 1
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov esi, dword [esi]
cmp edx, ecx
jg 0x446264
jl 0x446236
cmp esi, eax
jae 0x446264
cmp byte [ebx + 0x694aa4], 0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
jne 0x446897
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x6c], 0xffffffff
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
cmp byte [ebx + 0x694aaa], 0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
jne 0x446897
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x6c], 0
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x5c]
mov eax, ebx
or eax, ecx
test al, 1
je 0x446309
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
test al, al
jns 0x4462e0
test dl, 1
je 0x4462cd
test ebx, 0x100
jne 0x4462cd
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x6c], 0
movzx eax, byte [eax]
mov al, byte [eax + 0x694aaa]
jmp 0x446446
mov eax, ebx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x4463f3
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
test al, 0x10
jne 0x446897
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x6c], 1
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x44634e
test al, 2
je 0x4463de
mov al, cl
and al, 0x2e
cmp al, 2
jne 0x446334
xor edx, edx
mov ecx, edi
call fcn.00444910
movzx ebx, word [esi + 0x10]
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x4463de
xor edx, edx
mov ecx, esi
call fcn.00444910
jmp 0x4463de
cmp dl, 0x42
jne 0x4463de
test al, 2
je 0x4463de
test cl, 2
je 0x446372
mov eax, dword [ebp - 0x44]
and eax, 0xffd3
mov word [edi + 0x10], ax
jmp 0x4463a9
test cl, 0x2c
je 0x4463a9
mov dl, byte [ebp - 0x54]
mov ecx, edi
push 1
call fcn.00439c40
movzx eax, word [edi + 0x10]
add esp, 4
mov ecx, dword [ebp - 0x2c]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
movzx ecx, cx
mov dword [ebp - 0x2c], ecx
cmp edi, esi
jne 0x4463a9
mov eax, ecx
or eax, 2
movzx ebx, ax
test bl, 2
je 0x4463b9
mov eax, 0xffd3
and word [esi + 0x10], ax
jmp 0x4463de
test bl, 0x2c
je 0x4463de
mov dl, byte [ebp - 0x54]
mov ecx, esi
push 1
call fcn.00439c40
movzx eax, word [esi + 0x10]
add esp, 4
xor ebx, eax
and ebx, 0xdbf
xor ebx, eax
movzx ebx, bx
mov eax, dword [ebp - 0x14]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.0043f4e0
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov edx, eax
mov dword [ebp - 0x6c], eax
movzx eax, bx
mov dword [ebp - 0x74], eax
movzx eax, cx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
test edx, edx
jge 0x446416
mov al, byte [eax + 0x694aa4]
jmp 0x446446
mov ecx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x74]
movzx ecx, cx
movzx ebx, bx
mov dword [ebp - 0x6c], edx
test edx, edx
jne 0x446431
mov al, byte [eax + 0x694aaa]
jmp 0x446446
mov ecx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x74]
mov al, byte [eax + 0x694ab0]
movzx ecx, cx
movzx ebx, bx
mov dword [ebp - 0x6c], edx
mov word [esi + 0x10], bx
mov word [edi + 0x10], cx
test al, al
jne 0x44688e
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
cmp dword [ebp - 0x6c], 0
je 0x446897
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
test byte [ebx + 2], 1
jne 0x446495
xor eax, eax
jmp 0x44649b
mov eax, dword [ebx - 4]
add eax, 4
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x2c], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x5c], ebx
test ecx, ecx
jle 0x44525c
lea edi, [edx + 0x14]
test eax, eax
je 0x4464cf
mov ecx, dword [eax + esi*4]
jmp 0x4464d1
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x28]
push dword [edi]
movzx ebx, byte [eax + esi]
mov eax, dword [ebp - 0x5c]
and ebx, 1
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x2c]
add eax, ecx
mov dword [ebp - 0x80], edx
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [ebp - 0x84], eax
call fcn.0043f4e0
mov edx, eax
add esp, 4
mov dword [ebp - 0x6c], edx
test edx, edx
jne 0x44653e
mov eax, dword [ebp - 0x44]
inc esi
mov edx, dword [ebp - 0x74]
add edi, 4
cmp esi, dword [ebp - 0x50]
jl 0x4464c6
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x446564
mov eax, dword [ebp - 0x84]
test byte [eax + 0x10], 1
jne 0x44655f
mov eax, dword [ebp - 0x80]
test byte [eax + 0x10], 1
je 0x446564
neg edx
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
test ebx, ebx
je 0x44ad80
mov esi, dword [ebp - 0x14]
neg edx
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x14]
test eax, eax
jns 0x4465b5
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x64]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
jne 0x4465d7
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x64]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x64]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
mov edx, 2
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00439fa0
mov ecx, dword [ebx + 8]
mov edx, 2
mov ebx, dword [ebp - 0x28]
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
call fcn.00439fa0
lea edx, [eax + esi*2]
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x2c
jne 0x44663c
mov dl, byte [esi + edx + 0x692c74]
jmp 0x446643
mov dl, byte [esi + edx + 0x693fa8]
mov eax, dword [eax + 0xc]
lea esi, [eax + eax*4]
movzx ecx, word [ebx + esi*8 + 0x10]
cmp dl, 2
jne 0x446678
mov eax, dword [ebp - 0x20]
and ecx, 0xf241
or ecx, 1
mov word [ebx + esi*8 + 0x10], cx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
and ecx, 0xf244
movzx eax, dl
cdq
or ecx, 4
mov dword [ebx + esi*8], eax
mov eax, dword [ebp - 0x20]
mov word [ebx + esi*8 + 0x10], cx
mov ecx, dword [ebp - 0x18]
mov dword [ebx + esi*8 + 4], edx
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00439fa0
mov ecx, dword [ebp - 0x14]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0043a4f0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x44673f
xor edx, edx
call fcn.00439fa0
neg eax
mov ecx, esi
push 0
sbb eax, eax
inc eax
push eax
call fcn.0043a4f0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, esi
call fcn.0043a450
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.0043a450
test byte [edi + 0x10], 1
jne 0x44ad7a
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.00439eb0
mov edi, dword [ebp - 0x1c]
not eax
mov ecx, dword [ebp - 0x18]
not edx
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x446824
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov edi, dword [edi + 0x14]
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x44688e
bts edx, ecx
mov ecx, dword [ebp - 0x18]
mov byte [esi + edi], dl
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edi, dword [ebp - 0x1c]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [esi + 4]
je 0x446897
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00439fa0
test eax, eax
jmp 0x445256
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x28]
sete dl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00439fa0
test eax, eax
jne 0x44525c
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x446897
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x44692f
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 0xc]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x44691b
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x446912
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
movzx eax, ax
jmp 0x446952
movzx eax, byte [eax + 0x698138]
jmp 0x446952
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
mov eax, 1
dec ecx
shl ax, cl
movzx eax, ax
jmp 0x446952
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00441520
mov edx, 1
add esp, 4
lea ecx, [eax - 1]
shl dx, cl
movzx eax, dx
mov ecx, dword [ebp - 0x14]
mov esi, ecx
test word [ecx + 2], ax
mov ecx, dword [ebp - 0x18]
jne 0x446897
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x44699e
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x44699e
push 0
push 0
jmp 0x4466c8
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0043a450
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x446897
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x44525c
cmp byte [eax + 2], 0
je 0x44525c
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0043a450
jmp 0x446891
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edx + 8]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], ecx
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x48]
mov dword [ebp - 0x50], edi
cmp eax, dword [edx + 0x1c]
je 0x446a8d
cmp byte [esi + 2], 0
jne 0x446ae9
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x446a6c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x446ab8
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x446ab8
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x446a31
cmp byte [edi], 0
je 0x446acc
mov ecx, esi
call fcn.0043e860
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
jmp 0x446a34
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x446bc2
mov ecx, esi
call fcn.0043e860
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
jmp 0x446a34
mov ecx, esi
call fcn.0043e7f0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, edi
call fcn.0042f610
lea ebx, [esi + 0x54]
mov dword [esi + 0x50], eax
mov edx, ebx
mov ecx, edi
call fcn.0042fd40
mov edi, dword [ebp - 0x50]
mov ecx, eax
jmp 0x446b13
cmp byte [esi], 3
jne 0x446b94
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x446b94
mov edx, dword [ebp - 0x28]
lea ecx, [eax + eax*4]
lea ebx, [esi + 0x54]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [ebx], eax
mov dword [esi + 0x50], eax
mov ecx, dword [edx + ecx*8 + 8]
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x4c], ecx
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
lea ecx, [esi + 0x34]
mov dword [edi], eax
mov dword [ebp - 0x84], ecx
cmp eax, 0x80
jae 0x446b3b
mov eax, 1
jmp 0x446b4e
mov ecx, dword [esi + 0x4c]
mov edx, edi
call fcn.00417840
mov ecx, dword [ebp - 0x84]
movzx eax, al
mov dword [ecx], eax
lea edx, [esi + 0x3e]
xor eax, eax
mov dword [ebp - 0x4c], edx
mov word [edx], ax
mov eax, dword [ebx]
cmp eax, dword [edi]
jae 0x446b89
mov dword [esi + 0x4c], 0
mov dword [ebx], 0
mov eax, dword [edi]
cmp eax, 0x18003
ja 0x446d50
cmp eax, dword [esi + 0x50]
ja 0x446d50
mov ecx, dword [ebp - 0x3c]
jmp 0x446bc8
mov ecx, dword [esi + 0x4c]
mov dword [ebp - 0x2c], ecx
jmp 0x446c42
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0043a450
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
lea edx, [esi + 0x3e]
mov dword [ebp - 0x4c], edx
movzx eax, word [edx]
cmp eax, ecx
ja 0x446dd4
mov eax, dword [esi + 0x34]
lea ebx, [esi + 0x34]
mov dword [ebp - 0x84], ebx
cmp eax, dword [edi]
jae 0x446d84
mov ecx, dword [esi + 0x4c]
mov dword [ebp - 0x2c], ecx
test ecx, ecx
jne 0x446c39
xorps xmm0, xmm0
lea eax, [ebp - 0x188]
movups xmmword [ebp - 0x188], xmm0
push eax
movups xmmword [ebp - 0x178], xmm0
movq qword [ebp - 0x168], xmm0
mov edx, dword [edi]
mov ecx, dword [esi + 0x2c]
call fcn.0043ab90
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x180]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ecx
jmp 0x446c3f
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x4c], edx
movzx eax, word [edx]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x80], 0
mov ebx, dword [edi + eax*4]
mov edi, dword [ebp - 0x84]
mov edi, dword [edi]
add edi, ecx
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x44], ecx
lea ecx, [eax + 0x17]
lea ecx, [esi + ecx*4]
mov dword [ebp - 0x74], ecx
movzx eax, byte [edi]
mov dword [ebp - 0x7c], eax
mov dword [ecx], eax
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0x80
jae 0x446c96
inc edi
call fcn.0043e8f0
movzx eax, al
cdq
add ebx, eax
mov eax, dword [ebp - 0x80]
adc eax, edx
jmp 0x446cbd
lea edx, [ebp - 0x7c]
mov ecx, edi
call fcn.00417840
mov ecx, dword [ebp - 0x74]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x7c]
call fcn.0043e8d0
add ebx, eax
mov eax, dword [ebp - 0x80]
adc eax, 0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x74]
inc edx
mov dword [ebp - 0x80], eax
add ecx, 4
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x74], ecx
mov dword [eax + edx*4], ebx
mov eax, dword [ebp - 0x80]
cmp edx, dword [ebp - 0x3c]
ja 0x446ce8
cmp edi, dword [ebp - 0x44]
jb 0x446c70
mov ecx, dword [ebp - 0x44]
jmp 0x446cef
mov ecx, dword [ebp - 0x44]
cmp edi, ecx
jb 0x446d26
cmp edi, ecx
ja 0x446d31
cmp ebx, dword [esi + 0x50]
jne 0x446d31
test eax, eax
jne 0x446d31
mov eax, dword [ebp - 0x4c]
sub edi, dword [ebp - 0x2c]
cmp dword [esi + 0x4c], 0
mov word [eax], dx
mov eax, dword [ebp - 0x84]
mov dword [eax], edi
jne 0x446d1e
lea ecx, [ebp - 0x188]
call fcn.00439e50
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x4c]
jmp 0x446d89
test eax, eax
jb 0x446cfc
ja 0x446d31
cmp ebx, dword [esi + 0x50]
jbe 0x446cfc
mov eax, dword [ebp - 0x50]
cmp dword [eax], 0
jne 0x446d3f
xor edx, edx
mov edi, ecx
jmp 0x446cfc
cmp dword [esi + 0x4c], 0
jne 0x446d50
lea ecx, [ebp - 0x188]
call fcn.00439e50
mov edx, dword [ebp - 0x64]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x44b0f9
mov edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
xor ecx, ecx
mov dword [ebp - 0x7c], ecx
movzx eax, word [edx]
cmp eax, dword [ebp - 0x3c]
ja 0x446ddb
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp byte [edx + 1], 0xf6
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
jne 0x445a24
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.0043a6b0
mov edi, dword [ebp - 0x1c]
add esp, 4
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [esi + ecx*4 + 0x5c]
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x446dff
mov ecx, edi
call fcn.0043a450
mov ecx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3c]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebx + edx*4 + 4]
jb 0x446ef0
mov ebx, dword [ebx + edx*4]
add ebx, dword [esi + 0x4c]
cmp ecx, 0xc
jae 0x446e44
mov edx, ecx
mov ecx, ebx
push edi
call fcn.0043e9d0
add esp, 4
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov al, byte [ebp - 0x54]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x446ea2
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 0x78]
jg 0x44b2b2
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.004397a0
add esp, 4
test eax, eax
je 0x446ea8
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
call fcn.00411d30
push 0x68c22c
push edi
call fcn.0043b460
add esp, 8
mov edx, 7
jmp 0x44b105
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebx
push dword [edi + 8]
call fcn.006239e0
mov eax, dword [edi + 8]
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov eax, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x14]
and eax, 1
mov ax, word [eax*2 + 0x696560]
mov word [edi + 0x10], ax
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov al, byte [ebp - 0x54]
mov byte [edi + 0x12], al
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x7c]
mov al, byte [eax + 2]
and al, 0xc0
je 0x446f15
cmp al, 0x80
je 0x446f23
cmp edx, 0xc
jb 0x446f15
test dl, 1
je 0x446f23
cmp al, 0xc0
je 0x446f23
mov ecx, edx
call fcn.0043e8d0
test eax, eax
jne 0x446f2d
mov edx, dword [ebp - 0x7c]
mov ecx, 0x693e60
jmp 0x446e21
mov eax, dword [ebp - 0x3c]
mov ecx, esi
push edi
push dword [ebp - 0xe0]
mov edi, dword [ebp - 0x1c]
mov edx, eax
push dword [edi + 0x1c]
push 0
push dword [ebx + eax*4]
push dword [ebp - 0x7c]
call fcn.00444de0
mov edx, eax
add esp, 0x18
mov dword [ebp - 0x24], edx
test edx, edx
je 0x44525c
cmp edx, 7
je 0x446e82
cmp edx, 0x12
je 0x44b2b5
jmp 0x44b108
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x74], edx
mov ebx, dword [edx + 4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x34], ebx
lea esi, [ecx + eax*8]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x44], ecx
cmp ax, word [edx + 0x22]
jge 0x44525c
lea edi, [ebx + 8]
mov dword [ebp - 0x5c], edi
movzx eax, word [edi + 6]
test al, 0x60
je 0x446fc4
test al, 0x20
jne 0x447074
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xc], 0
jne 0x447071
push dword [ebp - 0x54]
mov dl, byte [edi]
mov ecx, esi
call fcn.00444a50
movzx ebx, word [esi + 0x10]
add esp, 4
test bl, 1
jne case.default.0x446ff5
mov eax, dword [edi - 4]
shr eax, 4
and eax, 0xf
lea ecx, [eax - 2]
cmp ecx, 4
ja case.default.0x446ff5
jmp dword [ecx*4 + 0x44ba80]
test bl, 0x10
jmp 0x447065
test bl, 4
jmp 0x447065
test bl, 2
jmp 0x447065
test bl, 4
je 0x447062
mov edi, dword [esi]
mov ecx, edi
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x447043
jb 0x44702f
cmp ecx, 0xffffffff
ja 0x447043
or ebx, 0x20
movzx eax, bx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [ebp - 0x5c]
jmp case.default.0x446ff5
mov ecx, edi
call fcn.00646e80
or ebx, 8
movsd qword [esi], xmm0
movzx eax, bx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [ebp - 0x5c]
jmp case.default.0x446ff5
test bl, 0x28
je 0x44b122
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x74]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x5c], edi
cmp ecx, eax
jl 0x446fa7
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
push dword [ebp - 0x54]
mov dl, al
mov ecx, esi
call fcn.00444a50
add esp, 4
cmp byte [edi], 0x45
jne 0x447100
movzx ebx, word [esi + 0x10]
test bl, 4
je 0x447100
mov ecx, dword [esi]
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4470e8
jb 0x4470dd
cmp ecx, 0xffffffff
ja 0x4470e8
and ebx, 0xfffb
or ebx, 0x20
jmp 0x4470fc
mov ecx, dword [esi]
call fcn.00646e80
and ebx, 0xfff9
movsd qword [esi], xmm0
or ebx, 8
mov word [esi + 0x10], bx
mov al, byte [edi + 1]
inc edi
test al, al
je 0x44ad7a
add esi, 0x28
jmp 0x4470a3
mov edx, dword [ebp - 0x14]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x28]
xor ecx, ecx
movlpd qword [ebp - 0x38], xmm0
mov dword [ebp - 0x4c], ecx
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [ebp - 0x78], xmm0
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x80], ebx
lea eax, [eax + eax*4]
mov dword [ebp - 0x5c], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x50], eax
test edi, edi
je 0x447196
mov al, byte [edi]
lea esi, [ebx + 0x10]
mov ebx, dword [ebp - 0x54]
nop dword [eax]
push ebx
lea ecx, [esi - 0x10]
mov dl, al
call fcn.00444a50
add esp, 4
cmp byte [edi], 0x45
jne 0x447185
movzx eax, word [esi]
test al, 4
je 0x447185
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
test al, al
jne 0x447160
mov ecx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x3c], esi
lea edx, [eax*8 - 0xc]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x84], eax
add edx, ebx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x74], eax
movzx ebx, word [edx - 0xc]
mov dword [ebp - 0x44], edx
test bl, 1
je 0x4471db
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [edx], ebx
jmp 0x4473d6
test bl, 0x24
je 0x44734b
mov ecx, dword [edx - 0x18]
mov eax, dword [edx - 0x1c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], ecx
test ecx, ecx
jg 0x447205
jl 0x4471fa
test eax, eax
jae 0x447205
mov ecx, eax
mov eax, dword [edx - 0x18]
not ecx
not eax
jmp 0x44720a
mov ecx, eax
mov eax, dword [edx - 0x18]
inc dword [ebp - 0x4c]
test eax, eax
ja 0x4472d9
jb 0x44721c
cmp ecx, 0x7f
ja 0x447267
mov eax, dword [edx - 0x1c]
and eax, 1
mov dword [ebp - 0x44], 0
cmp eax, dword [edx - 0x1c]
jne 0x44724f
mov eax, dword [ebp - 0x44]
cmp eax, dword [edx - 0x18]
jne 0x44724f
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x95], 4
jb 0x44724f
lea eax, [ecx + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [edx], eax
jmp 0x4473d9
mov ecx, dword [ebp - 0x4c]
add esi, 1
mov eax, 1
mov dword [ebp - 0x3c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x4473d9
test eax, eax
ja 0x4472d9
jb 0x447275
cmp ecx, 0x7fff
ja 0x44728d
mov ecx, dword [ebp - 0x4c]
add esi, 2
mov eax, 2
mov dword [ebp - 0x3c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x4473d9
test eax, eax
ja 0x4472d9
jb 0x44729b
cmp ecx, 0x7fffff
ja 0x4472b3
mov ecx, dword [ebp - 0x4c]
add esi, 3
mov eax, 3
mov dword [ebp - 0x3c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x4473d9
test eax, eax
ja 0x4472d9
jb 0x4472c1
cmp ecx, 0x7fffffff
ja 0x4472d9
mov ecx, dword [ebp - 0x4c]
add esi, 4
mov eax, 4
mov dword [ebp - 0x3c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x4473d9
cmp eax, 0x7fff
ja 0x4472ff
jb 0x4472e7
cmp ecx, 0xffffffff
ja 0x4472ff
mov ecx, dword [ebp - 0x4c]
add esi, 6
mov eax, 5
mov dword [ebp - 0x3c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x4473d9
add esi, 8
mov dword [ebp - 0x3c], esi
adc edi, 0
test bl, 0x20
je 0x44733c
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
call fcn.00646e80
mov edx, dword [ebp - 0x44]
and ebx, 0xffdf
mov ecx, dword [ebp - 0x4c]
or ebx, 8
mov eax, 7
movsd qword [edx - 0x1c], xmm0
mov word [edx - 0xc], bx
mov dword [edx], eax
jmp 0x4473d9
mov ecx, dword [ebp - 0x4c]
mov eax, 6
mov dword [edx], eax
jmp 0x4473d9
test bl, 8
je 0x447362
inc ecx
mov dword [edx], 7
add esi, 8
mov dword [ebp - 0x3c], esi
adc edi, 0
jmp 0x4473d6
mov ecx, dword [edx - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
mov dword [ebp - 0x34], ecx
lea eax, [eax + ecx*2]
add eax, 0xc
mov dword [ebp - 0x2c], eax
test ebx, 0x400
je 0x4473b6
lea ebx, [edx - 0x1c]
mov edx, dword [ebx]
lea eax, [eax + edx*2]
mov dword [ebp - 0x2c], eax
mov eax, esi
or eax, edi
je 0x4473a7
mov ecx, ebx
call fcn.00439be0
test eax, eax
jne 0x446e7f
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebx]
jmp 0x4473b3
mov eax, edx
cdq
add dword [ebp - 0x74], eax
adc dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x2c]
add esi, ecx
push 0
push eax
mov dword [ebp - 0x3c], esi
adc edi, 0
call fcn.004178c0
mov edx, dword [ebp - 0x44]
add esp, 8
mov ecx, dword [ebp - 0x4c]
add ecx, eax
mov eax, dword [ebp - 0x2c]
mov dword [edx], eax
mov dword [ebp - 0x4c], ecx
lea eax, [edx - 0x1c]
cmp eax, dword [ebp - 0x80]
je 0x4473e9
sub edx, 0x28
jmp 0x4471ba
cmp ecx, 0x7e
jle 0x447417
mov eax, ecx
cdq
push edx
push eax
call fcn.004178c0
mov esi, eax
mov eax, dword [ebp - 0x4c]
add eax, esi
mov dword [ebp - 0x4c], eax
cdq
push edx
push eax
call fcn.004178c0
mov ecx, dword [ebp - 0x4c]
add esp, 0x10
cmp esi, eax
mov esi, dword [ebp - 0x3c]
jge 0x44741b
inc ecx
mov dword [ebp - 0x4c], ecx
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x44], ecx
add ebx, esi
mov dword [ebp - 0x34], eax
mov ecx, eax
mov esi, ebx
mov eax, dword [ebp - 0x50]
adc ecx, edi
mov edi, dword [ebp - 0x74]
add esi, edi
adc ecx, dword [ebp - 0x84]
mov eax, dword [eax + 0x18]
cdq
cmp ecx, edx
jg 0x447459
jl 0x44744e
cmp esi, eax
ja 0x447459
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x447487
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x44b2b2
jl 0x447472
cmp esi, eax
ja 0x44b2b2
mov ecx, dword [ebp - 0x50]
mov edx, ebx
call fcn.00439a30
test eax, eax
jne 0x446e7f
mov ecx, dword [ebp - 0x50]
mov eax, 0x10
mov dword [ecx + 0xc], ebx
mov word [ecx + 0x10], ax
mov eax, edi
or eax, dword [ebp - 0x84]
je 0x4474a8
mov eax, 0x410
mov dword [ecx], edi
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x4c]
mov ebx, dword [ecx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x4474bd
mov byte [ebx], al
inc ebx
jmp 0x4474cf
push dword [ebp - 0x34]
mov ecx, ebx
push dword [ebp - 0x44]
call fcn.00417630
add esp, 8
add ebx, eax
mov edi, dword [ebp - 0x80]
add edi, 0xc
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x447555
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x447591
movzx edx, byte [edx + 0x694488]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov dword [ebp - 0x34], edx
dec edx
cmp edx, 5
ja case.0x4474fe.5
jmp dword [edx*4 + 0x44ba94]
mov byte [esi + 7], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 6], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 5], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 4], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 3], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 2], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 1], cl
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x44], eax
mov byte [esi], cl
add esi, dword [ebp - 0x34]
jmp 0x447591
cmp edx, 0x80
jae 0x44756d
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x447591
mov eax, dword [edi]
test eax, eax
jle 0x447591
jmp 0x447582
push 0
push edx
mov ecx, ebx
call fcn.00417630
add ebx, eax
add esp, 8
mov eax, dword [edi]
test eax, eax
je 0x447591
push eax
push dword [edi - 4]
push esi
call fcn.006239e0
add esp, 0xc
add esi, dword [edi]
mov eax, dword [ebp - 0x5c]
lea eax, [eax*8 - 0x1c]
add eax, dword [ebp - 0x80]
cmp edi, eax
je 0x44ad7a
add edi, 0x28
jmp 0x4474d5
mov ebx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
cmp dword [ebx + 0xc], 0
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
je 0x4475d8
mov ecx, edx
call fcn.004309a0
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], edx
jmp 0x447602
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x108]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x108], xmm0
call fcn.00436f00
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov edx, dword [ebp - 0x14]
mov ecx, edi
call fcn.00444c90
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x104]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x128], 0
jne 0x44b628
mov esi, dword [ebp - 0xcc]
cmp dword [ebp - 0xbc], esi
jb 0x44ad7d
mov ebx, dword [ebp - 0x90]
ja 0x447652
mov eax, dword [ebp - 0x20]
cmp eax, ebx
jb 0x44ad80
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x44ad7d
add ebx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
adc esi, 0
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0xcc], esi
call eax
add esp, 4
test eax, eax
jne 0x44b3ea
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0xbc], esi
ja 0x447652
mov eax, dword [ebp - 0x20]
jb 0x44769c
cmp eax, ebx
jae 0x447652
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x447780
cmp dword [ecx + 0xc4], eax
jg 0x44b15c
mov ecx, edi
call fcn.00415090
mov ebx, eax
xor edx, edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.004a7060
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x18]
lea eax, [ebx + 0x21]
push edx
push eax
call fcn.00411a60
mov esi, eax
add esp, 8
test esi, esi
je 0x4479fc
lea ecx, [ebx + 1]
push ecx
lea edx, [esi + 0x20]
push edi
push edx
mov dword [esi], edx
call fcn.006239e0
mov edx, dword [ebp - 0x18]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x447742
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x447748
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x4479fc
mov esi, dword [ecx + 0x1ec]
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
test esi, esi
je 0x4477a8
nop
mov ecx, dword [esi]
mov edx, edi
call fcn.00415430
test eax, eax
je 0x4477c7
mov esi, dword [esi + 0x18]
inc ebx
mov dword [ebp - 0x3c], ebx
test esi, esi
jne 0x447790
mov esi, dword [ebp - 0x1c]
push edi
push str.no_such_savepoint:__s
push esi
call fcn.0043b460
mov edx, 1
add esp, 0xc
mov dword [ebp - 0x24], edx
jmp 0x44b10b
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x4c]
cmp dword [ecx + 0xc4], 0
jle 0x4477df
cmp edx, 1
je 0x44b177
cmp dword [esi + 0x18], 0
jne 0x447848
cmp byte [ecx + 0x5d], 0
je 0x447848
mov dword [ebp - 0x50], 1
cmp edx, 1
jne 0x44784f
mov ecx, dword [ebp - 0x1c]
call fcn.0043df20
mov edi, eax
test edi, edi
jne 0x44b482
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov ecx, edi
mov byte [eax + 0x55], 1
call fcn.0043df90
cmp eax, 5
je 0x44b1a4
mov edx, dword [edi + 0x24]
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b195
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x5d], dl
lea edi, [eax + 0x1f8]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
jmp 0x447955
mov dword [ebp - 0x50], 0
lea eax, [ecx + 0x1f8]
mov dword [ebp - 0x5c], eax
mov eax, dword [eax]
sub eax, ebx
dec eax
mov dword [ebp - 0x3c], eax
cmp edx, 2
jne 0x4478c1
mov edi, dword [ebp - 0x18]
xor ebx, ebx
mov ecx, dword [ecx + 0x18]
and ecx, 1
mov dword [ebp - 0x44], ecx
cmp dword [edi + 0x14], ebx
jle 0x4478c6
mov eax, ecx
xor eax, 1
xor edi, edi
mov dword [ebp - 0x34], eax
push eax
mov eax, dword [ebp - 0x18]
mov edx, 0x204
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.0042ef50
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0x18]
inc ebx
add edi, 0x10
cmp ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x34]
jl 0x447882
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x4c]
jmp 0x4478c6
xor ecx, ecx
mov dword [ebp - 0x44], ecx
mov edi, dword [ebp - 0x18]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x44790a
xor edi, edi
push eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.0042f1f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0x18]
inc ebx
mov edx, dword [ebp - 0x4c]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x3c]
jl 0x4478d2
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x18]
test ecx, ecx
je 0x447944
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x447939
nop word [eax + eax]
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x447920
mov ecx, edi
call fcn.00467e60
or dword [edi + 0x18], 1
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x5c]
test edx, edx
jne 0x44b108
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1ec]
cmp ecx, esi
je 0x447985
mov ebx, eax
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1ec], eax
call fcn.004115d0
dec dword [edi]
mov ecx, dword [ebx + 0x1ec]
cmp ecx, esi
jne 0x447964
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x4c]
cmp edx, 1
jne 0x4479b0
mov ecx, dword [ebp - 0x18]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.004115d0
cmp dword [ebp - 0x50], 0
jne 0x4479fc
dec dword [edi]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
jmp 0x4479e4
cmp dword [ebp - 0x50], 0
mov edi, dword [ebp - 0x18]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x200], eax
mov dword [edi + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x208], eax
mov eax, edi
mov dword [eax + 0x20c], ecx
je 0x4479e4
cmp edx, 2
jne 0x4479fc
push ebx
mov ecx, eax
call fcn.004a7060
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
cmp byte [edi + 0x97], 3
jne 0x44525f
mov edi, 0x65
jmp 0x44b485
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x44], 0
mov esi, dword [ebx + 8]
test esi, esi
je 0x447a45
mov edx, dword [ecx + 0x20]
mov eax, edx
mov ecx, dword [ecx + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x44b1d4
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebx + 4]
shl ebx, 4
add ebx, dword [ecx + 0x10]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x447b26
lea ecx, [ebp - 0x44]
mov edx, esi
push ecx
mov ecx, eax
call fcn.0042dfc0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b1ff
test byte [edi + 0x98], 0x20
lea esi, [edi + 0x98]
mov edi, esi
je 0x447b37
mov eax, dword [ebp - 0x14]
cmp dword [eax + 8], edx
je 0x447b37
mov edi, dword [ebp - 0x18]
cmp byte [edi + 0x55], dl
je 0x447ab6
mov eax, dword [ebp - 0x18]
mov edi, esi
cmp dword [eax + 0xc0], 1
jle 0x447b37
mov edi, eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x447ad5
mov eax, dword [edi + 0x1f8]
inc dword [edi + 0x1fc]
add eax, dword [edi + 0x1fc]
mov dword [ecx + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, edi
call fcn.004a7060
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x447afb
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
mov edx, dword [eax + 0x30]
call fcn.0042f190
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [edi + 0x200]
mov ecx, dword [edi + 0x204]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [edi + 0x208]
mov ecx, dword [edi + 0x20c]
mov edi, esi
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
jmp 0x447b2c
add edi, 0x98
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], 0
je 0x44569b
mov eax, dword [ebp - 0x44]
mov esi, edi
cmp eax, dword [ecx + 0xc]
jne 0x44b233
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
je 0x446e2a
mov eax, dword [ebp - 0x1c]
lea esi, [eax + 0x98]
jmp 0x44b236
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x11c]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00436df0
mov edx, dword [ebp - 0x14]
add esp, 4
mov ecx, edi
call fcn.00444c90
mov esi, dword [ebp - 0x14]
mov ecx, eax
mov eax, dword [ebp - 0x11c]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [esi + 4]
call fcn.00436e50
mov edx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x447c0f
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.0047a820
mov edx, dword [ebp - 0x14]
jmp 0x447c1d
cmp eax, 2
jne 0x447c1d
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x447c34
mov ecx, dword [ebp - 0x18]
xor edx, edx
call fcn.00440a00
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x447c7b
mov eax, dword [esi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x447c7b
mov ecx, dword [esi + 0x2c]
call fcn.0042a9d0
jmp 0x447d74
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x44b299
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x44], 0
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x5c], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebp - 0x14]
cmp dl, 0x71
jne 0x447cdf
mov eax, dword [eax + 0xc]
movzx edi, word [ecx + 2]
mov edx, dword [ebp - 0x1c]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x95]
jae 0x447ce1
mov byte [edx + 0x95], al
jmp 0x447ce1
xor edi, edi
test byte [ecx + 2], 0x10
je 0x447cfc
mov ecx, dword [ebp - 0x28]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0043a0a0
mov ebx, dword [esi]
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x447d0f
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x44], eax
movzx eax, word [eax + 8]
jmp 0x447d1b
cmp al, 0xfd
jne 0x447d18
mov eax, dword [ecx + 0x10]
jmp 0x447d1b
mov eax, dword [ebp - 0x34]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x1c]
push 0
push eax
call fcn.00444810
mov esi, eax
add esp, 8
test esi, esi
je 0x446e7f
push dword [esi + 0x2c]
mov eax, dword [ebp - 0x5c]
mov edx, ebx
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x74]
or dword [esi + 8], 4
push edi
mov byte [esi + 1], al
mov byte [esi + 2], 1
mov dword [esi + 0x38], ebx
call fcn.0042f370
mov edi, dword [ebp - 0x1c]
add esp, 0xc
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 0x2c]
movzx edx, word [eax + 2]
and edx, 3
call fcn.0042ac60
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
movsx eax, word [edi + 0x3c]
push eax
call fcn.00444810
mov esi, eax
add esp, 8
test esi, esi
je 0x446e7f
mov edx, dword [esi + 8]
mov byte [esi + 2], 1
or edx, 1
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, edx
and ecx, 4
xor ecx, edx
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
call fcn.0042f370
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x24], ebx
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x447e55
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 0xc], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 8], 0x688421
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x447ec1
test byte [esi + 8], 8
jne 0x447ec1
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x447ec1
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x10]
push 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
call fcn.00436930
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x34], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov byte [esi + 2], 1
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.00444810
mov esi, eax
add esp, 8
test esi, esi
je 0x446e82
mov eax, dword [ebp - 0x14]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx eax, word [eax + 2]
or eax, 5
push eax
mov eax, dword [ebp - 0x18]
push edi
push eax
mov ecx, dword [eax]
call fcn.0042c800
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.0042dfc0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x447f9e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x34], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x447f78
movzx eax, word [ecx + 2]
lea edx, [esi + 0x38]
mov ecx, dword [edi]
or eax, 2
push eax
call fcn.004366d0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x447f72
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [ebp - 0x34]
mov ecx, dword [edi]
push 4
call fcn.0042f370
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x24], edx
mov byte [esi + 4], 0
jmp 0x447f9e
push dword [esi + 0x2c]
mov ecx, dword [edi]
mov edx, 1
push 0
push 4
mov dword [esi + 0x38], 1
call fcn.0042f370
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x44b2a3
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov byte [esi + 2], 1
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00444810
add esp, 8
test eax, eax
je 0x446e82
mov edx, dword [ebp - 0x14]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [ebp - 0x18]
call fcn.0044d060
jmp 0x446188
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
je 0x44688e
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00444810
add esp, 8
test eax, eax
je 0x446e82
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x18]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x6c6294
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x4480aa
mov ecx, edi
call fcn.0043d310
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov dword [ebp - 0x3c], 0
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
cmp byte [edi + 4], 0
mov word [edi + 2], 0
mov dword [edi + 0x20], 0
je 0x448236
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov dword [ebp - 0x34], eax
and al, 0x2e
cmp al, 2
jne 0x44811d
xor edx, edx
mov ecx, esi
call fcn.00444910
mov ecx, esi
call fcn.00439eb0
movzx ecx, word [esi + 0x10]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x74], edx
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x4481cc
test cl, 8
jne 0x4481a6
test cl, 1
jne 0x44688e
cmp ebx, 0x17
jae 0x44688e
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x8c]
call fcn.00430100
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x8c], 0
jne 0x44688e
mov eax, dword [ebp - 0x20]
test ecx, ecx
mov ecx, dword [ebp - 0x18]
je 0x44ad80
add dword [ebp - 0x14], 0x14
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
push dword [ebp - 0x74]
movsd xmm1, qword [esi]
push dword [ebp - 0x44]
call fcn.0043f420
add esp, 8
test eax, eax
jle 0x4481c4
test bl, 1
jne 0x4481cc
dec ebx
jmp 0x4481cc
jns 0x4481cc
test bl, 1
je 0x4481cc
inc ebx
mov ecx, dword [edi + 0x2c]
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0x74]
lea esi, [edi + 0x2c]
xor edx, edx
push dword [ebp - 0x44]
call fcn.00430120
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x24], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x8c]
cmp ebx, 0x17
jl 0x448311
test eax, eax
js 0x4482d2
jne 0x448227
cmp ebx, 0x18
je 0x4482d2
mov dword [ebp - 0x8c], 0
jmp 0x448180
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x65], al
mov eax, 0
setne al
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0xb0], eax
mov ax, word [edx + 0x10]
mov word [ebp - 0x9c], ax
lea eax, [ebx - 1]
test al, 1
mov byte [ebp - 0x96], 0
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x9a], al
mov eax, dword [edx + 0xc]
lea edx, [ebp - 0xb0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x8c]
mov ecx, dword [esi]
push eax
call fcn.00430380
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
cmp byte [ebp - 0x65], al
je 0x448202
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], ecx
cmp byte [ebp - 0x96], al
je 0x448173
jmp 0x448205
mov dword [ebp - 0x8c], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.00430bd0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
je 0x448170
cmp edx, 0x65
jne 0x44b108
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x8c], 1
jmp 0x44688e
test eax, eax
jg 0x44832e
jne 0x44831c
cmp ebx, 0x15
je 0x44832e
mov ecx, dword [esi]
call fcn.00430990
mov dword [ebp - 0x8c], eax
jmp 0x448170
mov dword [ebp - 0x8c], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.00430dd0
jmp 0x4482e5
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 0x18]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.0042f5d0
test eax, eax
je 0x44ad7a
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x30]
mov dword [ebp - 0xb0], eax
mov byte [ebp - 0x9a], 0
mov ax, word [ecx + 0x24]
mov edi, dword [ecx + 4]
mov word [ebp - 0x9c], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0xf4], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xac], eax
nop dword [eax]
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0xb0]
mov edx, esi
push eax
call fcn.004408f0
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0xf4]
test eax, eax
jle 0x4483dd
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], dx
je 0x448419
test eax, eax
jns 0x44688e
test edi, edi
jle 0x44ad7a
mov ecx, dword [esi + 0x2c]
xor edx, edx
dec edi
mov dword [esi + 0x20], 0
call fcn.00430bd0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
je 0x4483a0
cmp edx, 0x65
jne 0x44b108
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], 0
add ecx, 0x14
mov dword [ebp - 0x14], ecx
jmp 0x44688e
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x448459
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x44529c
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x44aa54
cmp byte [eax + 2], 0
mov ecx, dword [ebp - 0x18]
je 0x44525f
jmp case.0x4451c2.9
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x44525c
jmp 0x4484c6
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xac], ecx
movzx eax, word [eax + 0x10]
mov word [ebp - 0x9c], ax
test ax, ax
je 0x448523
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [ebp - 0xb0], eax
lea edx, [ebp - 0xb0]
mov byte [ebp - 0x9a], 0
mov ecx, dword [esi + 0x2c]
push ebx
call fcn.00430380
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
jmp 0x44858a
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x44853b
call fcn.00439be0
test eax, eax
jne 0x446e82
mov ecx, dword [esi + 0x30]
call fcn.0043ec90
mov edi, eax
test edi, edi
je 0x446e7f
mov edx, dword [ebp - 0xac]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.0043ecf0
mov byte [edi + 0x16], 0
lea ebx, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
mov edx, edi
push ebx
call fcn.00430380
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov edx, edi
mov dword [ebp - 0x24], eax
call fcn.004115d0
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
test edx, edx
jne 0x44b108
mov ecx, dword [ebx]
test ecx, ecx
mov byte [esi + 3], dl
setne al
mov dword [esi + 0x20], edx
mov byte [esi + 2], al
mov eax, dword [ebp - 0x14]
mov al, byte [eax]
cmp al, 0x1d
jne 0x4485ca
test ecx, ecx
je 0x44688e
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
test ecx, ecx
jne 0x44688e
cmp al, 0x1b
jne 0x448618
movzx edx, word [ebp - 0x9c]
test edx, edx
je 0x44ad7a
mov eax, dword [ebp - 0xac]
add eax, 0x10
nop
test byte [eax], 1
jne 0x44688e
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4485f0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x18]
cmp al, 0x1a
jne 0x44ad7d
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
jne 0x4486ae
movups xmm0, xmmword [ebx + eax*8]
mov dl, 0x43
lea ecx, [ebp - 0xb8]
push dword [ebp - 0x54]
movups xmmword [ebp - 0xb8], xmm0
movups xmm0, xmmword [ebx + eax*8 + 0x10]
movups xmmword [ebp - 0xa8], xmm0
movq xmm0, qword [ebx + eax*8 + 0x20]
movq qword [ebp - 0x98], xmm0
call fcn.00444a50
add esp, 4
test byte [ebp - 0xa8], 4
je 0x44688e
mov edi, dword [ebp - 0xb8]
mov ebx, dword [ebp - 0xb4]
jmp 0x4486bb
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0xe8]
push eax
push ebx
push edi
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0xe8], 0
call fcn.00430120
mov edx, eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
add esp, 0xc
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [ebp - 0xe8]
mov dword [esi + 0x24], eax
cmp dword [ebp - 0xe8], 0
mov dword [ebp - 0x24], edx
je 0x448730
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x44688e
mov ecx, 0x17f3e
call fcn.004ca0d0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
jmp 0x446e2a
mov ebx, dword [ebp - 0x14]
mov ecx, edi
mov edx, ebx
call fcn.00444c90
mov edx, dword [ebx + 4]
mov esi, ebx
mov ecx, dword [edi + 0x60]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
xorps xmm0, xmm0
mov edx, ebx
movlpd qword [ebp - 0x60], xmm0
mov ecx, edi
mov dword [ebp - 0x2c], 0
call fcn.00444c90
mov esi, dword [ebp - 0x1c]
mov edi, eax
mov edx, dword [ebx + 4]
mov dword [ebp - 0x34], edi
mov ecx, dword [esi + 0x60]
mov ebx, dword [ecx + edx*4]
test byte [ebx + 8], 2
jne 0x448810
mov ecx, dword [ebx + 0x2c]
lea edx, [ebp - 0x2c]
call fcn.00430100
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b10b
cmp dword [ebp - 0x2c], eax
je 0x4487e1
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x5c], eax
jmp 0x448810
mov ecx, dword [ebx + 0x2c]
call fcn.0042f5e0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
cmp edx, 0x7fffffff
jl 0x448804
jg 0x4487fe
cmp eax, 0xffffffff
jb 0x448804
or dword [ebx + 8], 2
jmp 0x448810
add eax, 1
mov dword [ebp - 0x60], eax
adc edx, 0
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4488b7
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x448844
mov eax, dword [edx + 4]
test eax, eax
je 0x448839
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x448830
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x44884d
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x28]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00439eb0
mov cx, word [esi + 0x10]
mov edi, eax
mov eax, 0xf244
mov dword [esi], edi
and cx, ax
mov dword [esi + 4], edx
or cx, 4
mov word [esi + 0x10], cx
cmp edi, 0xffffffff
jne 0x448880
cmp edx, 0x7fffffff
je 0x44890d
test byte [ebx + 8], 2
jne 0x44890d
mov ecx, dword [ebp - 0x5c]
add edi, 1
adc edx, 0
cmp ecx, edx
jg 0x4488ac
jl 0x4488a0
mov eax, dword [ebp - 0x60]
cmp eax, edi
jae 0x4488af
mov eax, edi
mov ecx, edx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
jmp 0x4488af
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x34]
mov dword [esi], eax
mov dword [esi + 4], ecx
test byte [ebx + 8], 2
je 0x448917
xor esi, esi
nop
lea eax, [ebp - 0x60]
push eax
push 8
call fcn.004147f0
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0x2c]
mov ecx, dword [ebp - 0x60]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x60], ecx
push eax
mov dword [ebp - 0x5c], eax
xor edx, edx
push ecx
mov ecx, dword [ebx + 0x2c]
call fcn.00430120
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
cmp dword [ebp - 0x2c], eax
jne 0x448917
inc esi
cmp esi, 0x64
jl 0x4488c0
mov edx, 0xd
jmp 0x44b105
mov byte [ebx + 3], 0
mov dword [ebx + 0x20], 0
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x446e2a
mov ebx, dword [ebp - 0x14]
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], esi
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0xac], eax
jne 0x44898f
mov ebx, dword [ebp - 0x18]
cmp dword [ebx + 0xfc], 0
je 0x44898f
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ecx + 0x10]
jmp 0x448997
mov ecx, dword [ebp - 0x14]
xor ebx, ebx
mov dword [ebp - 0x44], ebx
test byte [ecx + 2], 1
je 0x4489bd
mov eax, dword [ebp - 0x1c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test byte [ecx + 2], 0x20
mov eax, dword [ebp - 0x5c]
je 0x4489bd
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 8]
mov dword [ebp - 0xa8], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [ebp - 0x9c], eax
test cl, 0x10
je 0x4489e2
mov edi, dword [esi + 0x24]
jmp 0x4489e4
xor edi, edi
mov eax, dword [ebp - 0x28]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [ebp - 0x34]
je 0x448a01
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x98], eax
jmp 0x448a0b
mov dword [ebp - 0x98], 0
and ecx, 0x8a
mov dword [ebp - 0xb8], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xb8]
call fcn.004351d0
inc dword [ebp - 0xe0]
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x44b108
test ebx, ebx
je 0x44ad7a
push dword [ebp - 0xac]
mov eax, dword [ebp - 0x14]
mov ecx, 0x17
push dword [ebp - 0xb0]
push dword [ebx]
test byte [eax + 2], 4
mov eax, 0x12
push dword [ebp - 0x44]
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x18]
push dword [eax + 0xf8]
mov eax, dword [eax + 0xfc]
call eax
add esp, 0x18
jmp 0x446e2a
mov edx, dword [ebp - 0x14]
mov ecx, dword [edi + 0x60]
mov eax, dword [edx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [edx + 8]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x448abe
mov ebx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x448acc
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00435820
add esp, 8
jmp 0x44618b
mov edx, dword [ebp - 0x14]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x448b3c
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xfc], 0
lea edi, [eax + 0xfc]
je 0x448b45
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov ebx, dword [edx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x5c], eax
je 0x448b4e
cmp byte [esi + 4], 0
je 0x448b4e
mov ecx, dword [esi + 0x2c]
call fcn.0042f5e0
mov dword [esi + 0x44], edx
mov edx, dword [ebp - 0x14]
mov dword [esi + 0x40], eax
jmp 0x448b4e
mov edi, dword [ebp - 0x18]
add edi, 0xfc
mov dword [ebp - 0x5c], 0
xor ebx, ebx
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.00435c60
inc dword [ebp - 0xe0]
mov edx, eax
mov dword [ebp - 0x24], edx
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
test edx, edx
jne 0x44b108
test byte [ebp - 0x34], 1
je 0x44ad7a
mov eax, dword [ebp - 0x1c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [edi]
test eax, eax
je 0x44ad7a
test ebx, ebx
je 0x44ad7a
test byte [ebx + 0x1c], 0x80
mov ecx, dword [ebp - 0x18]
jne 0x44ad7d
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [ebx]
push dword [ebp - 0x5c]
push 9
push dword [ecx + 0xf8]
call eax
add esp, 0x18
jmp 0x446e2a
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
add dword [edx + 0x70], eax
mov dword [edx + 0x68], eax
adc dword [edx + 0x74], ecx
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x6c], ecx
mov ecx, edx
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0xf8], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
call fcn.0044f910
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
cmp dword [ebp - 0xf8], eax
jmp 0x445256
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.0044f870
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x448cc4
mov ecx, esi
call fcn.00444c70
mov esi, eax
jmp 0x448ccd
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x2c]
mov ecx, edi
call fcn.0042f590
mov eax, dword [ebp - 0x18]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x44b2b2
push esi
mov ecx, edi
call fcn.0043ab90
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0xc], eax
jne 0x44ad7a
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x44ad7a
mov ecx, esi
call fcn.00439b50
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
test eax, eax
jne 0x446e85
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ecx, edi
call fcn.00444c90
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x448d7d
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x446e2a
cmp byte [esi + 3], 0
je 0x448d9f
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x446e2a
cmp byte [esi], 2
jne 0x448deb
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xc8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.00440c00
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b10b
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc8]
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x446e2a
mov ecx, esi
call fcn.0043e8b0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
cmp byte [esi + 2], al
je 0x448e12
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x446e2a
mov ecx, dword [esi + 0x2c]
call fcn.0042f5e0
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x446e2a
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x448e6f
push 3
push 1
mov ecx, edi
call fcn.00444810
mov ecx, dword [ebp - 0x18]
add esp, 8
test eax, eax
je 0x446e85
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x6c6294
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x44ad7d
mov ecx, dword [eax + 0x2c]
call fcn.0042a9d0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0xe4], 0
cmp dl, 0x89
jne 0x448ed6
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.0042f5d0
test eax, eax
jne 0x44ad7a
cmp byte [edi], 0
jne 0x448f01
test byte [edi + 1], 8
je 0x448f01
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0x24], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
jmp 0x448f2f
lea edx, [ebp - 0xe4]
mov ecx, edi
call fcn.00430070
mov edx, eax
mov al, byte [ebp - 0xe4]
mov dword [ebp - 0x24], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x44b105
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jle 0x44ad7a
cmp dword [ebp - 0xe4], 0
jne 0x44688e
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xec]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00430000
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
cmp dword [ebp - 0xec], eax
jne 0x44688e
mov ecx, esi
call fcn.004309a0
test edx, edx
jl 0x448fb6
jg 0x448f94
test eax, eax
jb 0x448fb6
push edx
push eax
call fcn.00417ba0
mov ecx, dword [ebp - 0x14]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x448fb6
mov dword [ebp - 0xec], 1
jmp 0x446891
cmp dword [ebp - 0xec], 0
jmp 0x445256
inc dword [edi + 0xac]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0xdc], 1
cmp byte [esi], 1
jne 0x448ff7
lea edx, [ebp - 0xdc]
mov ecx, esi
call fcn.0044f730
mov edx, eax
mov dword [ebp - 0x24], edx
jmp 0x44903d
mov edi, dword [esi + 0x2c]
mov ecx, edi
call fcn.0042fe50
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44901b
mov ecx, edi
mov dword [ebp - 0xdc], eax
call fcn.0042ffb0
mov edx, eax
jmp 0x44902c
cmp edx, 0x10
jne 0x44902f
mov dword [ebp - 0xdc], 1
xor edx, edx
mov dword [ebp - 0x24], edx
mov edi, dword [ebp - 0x1c]
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x14]
mov al, byte [ebp - 0xdc]
mov byte [esi + 2], al
cmp dword [ecx + 8], edx
jle 0x44ad7a
cmp dword [ebp - 0xdc], edx
jmp 0x445256
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x18]
call fcn.0044f7d0
jmp 0x4490ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00430dd0
jmp 0x4490ad
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00430bd0
mov edx, eax
mov dword [ebp - 0x24], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x4490d3
mov byte [esi + 2], al
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x44aa54
cmp edx, 0x65
jne 0x44b108
mov dword [ebp - 0x24], 0
mov byte [esi + 2], 1
jmp 0x44761d
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x449118
mov eax, dword [ebp - 0x1c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x44913a
mov ecx, esi
call fcn.00439be0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0xb8], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xa4], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0xa0], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x44917a
mov ecx, dword [edi + 0x24]
jmp 0x44917c
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xb8]
and eax, 0x8a
push eax
call fcn.004351d0
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
jmp 0x446e2a
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x4491e4
mov ecx, esi
call fcn.00439be0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov edx, esi
mov ecx, edi
call fcn.0044e3d0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
jmp 0x446e2a
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0xb0], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x9c], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0xb0]
mov byte [ebp - 0x9a], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x120]
push eax
call fcn.00430380
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
cmp dword [ebp - 0x120], eax
jne 0x449288
mov dl, 4
mov ecx, edi
call fcn.00435c60
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], 0
je 0x4492a2
mov ecx, dword [ebp - 0x18]
call fcn.00468680
test eax, eax
je 0x44b2cd
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp 0x446e2a
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x4492e2
mov ecx, esi
call fcn.0043e860
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov edx, dword [ebp - 0x14]
jmp 0x4492e9
mov dword [ebp - 0x24], 0
cmp byte [esi + 2], 0
jne 0x4493a6
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x110]
xorps xmm0, xmm0
movlpd qword [ebp - 0x110], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.004405a0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x8d
jne 0x449375
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x10c]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x44], ecx
mov ecx, dword [ebp - 0x18]
mov byte [edx + 3], 1
mov dword [edx + 0x20], 0
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x28], esi
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, eax
mov ecx, edi
call fcn.00444c90
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0043a450
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x44525c
call fcn.0043e7f0
jmp 0x44618b
mov ebx, dword [ebp - 0x14]
cmp dl, 0x2a
mov eax, dword [edi + 0x60]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0xb0], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x9c], ax
sbb al, al
mov byte [ebp - 0x9a], al
mov eax, ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xac], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.0042f590
mov esi, dword [edi + 0x2c]
test esi, esi
je 0x44b2e9
cmp esi, 0x7fffffff
ja 0x44b2e9
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x160]
push 0
call fcn.0043a430
add esp, 4
lea eax, [ebp - 0x160]
mov edx, esi
mov ecx, edi
push eax
call fcn.0043ab90
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.0043f770
add esp, 8
lea ecx, [ebp - 0x160]
mov esi, eax
call fcn.00439e70
mov ecx, ebx
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
test dl, 1
cmovne esi, ecx
test esi, esi
jg 0x44688e
jmp 0x446e2a
mov ebx, dword [ebp - 0x14]
mov ecx, edi
mov edx, ebx
call fcn.00444c90
mov edx, dword [ebp - 0x18]
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov ecx, dword [edx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x44b311
mov ebx, dword [ebx + 0xc]
lea eax, [ebp - 0xf0]
mov ecx, dword [edx + 0x10]
mov edx, dword [ebp - 0x14]
push eax
mov eax, ebx
mov dword [ebp - 0xf0], 0
add eax, eax
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00436da0
mov dword [ebp - 0x24], eax
add esp, 4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0xf0]
cdq
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [esi], eax
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x44ad7a
mov ecx, dword [ebp - 0x14]
mov edx, ebx
push dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
push eax
call fcn.0046c830
mov ecx, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x14]
inc bl
mov eax, dword [ebp - 0x20]
mov byte [ebp - 0x85], bl
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x38]
mov ecx, dword [ecx + 0x10]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00436930
mov ecx, dword [ebp - 0x14]
add esp, 4
mov edx, eax
mov dword [ebp - 0x24], edx
cmp dword [ecx + 0xc], 0
je 0x446190
mov edx, dword [ebp - 0x38]
add dword [edi + 0x28], edx
mov eax, dword [ebp - 0x34]
adc dword [edi + 0x2c], eax
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4495df
mov ebx, dword [ebp - 0x28]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], edx
mov eax, dword [ebp - 0x34]
adc dword [ebx + ecx*8 + 4], eax
mov edx, dword [ebp - 0x24]
jmp 0x446190
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x44961a
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.0044d520
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ecx + 0x2c]
call fcn.004369f0
jmp 0x44618b
mov edx, dword [ebp - 0x14]
mov ecx, edi
call fcn.00444c90
mov edx, dword [ebp - 0x14]
mov esi, eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xfc], 0
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
shl ecx, 4
lea edx, [ebp - 0xfc]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.004366d0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x18]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [ebp - 0x14]
inc byte [ecx + 0x60]
mov esi, dword [ecx + 0x16c]
mov bl, byte [ecx + 0x5e]
cmp dword [eax + 4], 0
mov dword [ebp - 0x44], 0
je 0x4496b9
mov dword [ecx + 0x16c], 0
mov byte [ecx + 0x5e], 0
lea edx, [ebp - 0x44]
push edx
push 0
push 0
push dword [eax + 0x10]
push ecx
call fcn.00482c10
mov ecx, dword [ebp - 0x18]
mov edx, eax
mov eax, dword [ebp - 0x44]
add esp, 0x14
mov dword [ebp - 0x24], edx
dec byte [ecx + 0x60]
mov dword [ecx + 0x16c], esi
mov byte [ecx + 0x5e], bl
test eax, eax
jne 0x4496f0
test edx, edx
je 0x44525f
push eax
push 0x68abcc
push edi
call fcn.0043b460
add esp, 0xc
push dword [ebp - 0x44]
call fcn.00411510
mov edx, dword [ebp - 0x24]
add esp, 4
cmp edx, 7
je 0x446e82
jmp 0x44b108
mov ebx, dword [ebp - 0x14]
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
jne 0x449770
mov ebx, dword [ebp - 0x18]
mov ecx, esi
add ecx, ecx
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.00471f70
mov eax, dword [ebp - 0x14]
add esp, 4
and dword [ebx + 0x18], 0xffffffef
mov edx, esi
mov ecx, ebx
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.0048b9b0
mov ecx, ebx
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
or dword [ecx + 0x18], 1
and dword [edi + 0x98], 0xfffffffc
jmp 0x44983d
mov dword [ebp - 0xac], ecx
lea eax, [edi + 0x7c]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xa4], esi
add esi, esi
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x9c], 0
mov ecx, dword [ecx + esi*8 + 4]
call fcn.0042c5c0
push dword [ebx + 0x10]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x94], eax
push str.sqlite_master
mov eax, dword [ebx + 0x10]
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.00414020
mov esi, eax
add esp, 0x14
test esi, esi
je 0x44b322
push 0
lea eax, [ebp - 0xac]
mov byte [ebx + 0xb1], 1
push eax
push fcn.0048b720
push esi
push ebx
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x98], 0
call fcn.00482c10
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x449828
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x449828
cmp dword [ebp - 0x98], eax
jne 0x449828
mov ecx, 0x1855d
call fcn.004ca0d0
mov dword [ebp - 0x24], eax
mov edx, esi
mov ecx, ebx
call fcn.004115d0
mov edx, dword [ebp - 0x24]
mov ecx, ebx
mov byte [ecx + 0xb1], 0
test edx, edx
je 0x44525f
call fcn.00467e60
mov edx, dword [ebp - 0x24]
cmp edx, 7
je 0x446e82
jmp 0x44b105
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 4]
call fcn.004659a0
jmp 0x44618b
mov edx, dword [ebp - 0x14]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00468400
mov ecx, dword [ebp - 0x18]
add esp, 4
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00467c80
mov ecx, dword [ebp - 0x18]
add esp, 4
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.0049f3e0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x128]
push eax
mov eax, dword [ebx + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x18]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.00437c10
add esp, 0x14
mov ebx, eax
mov ecx, edi
mov dword [ebp - 0x24], ebx
call fcn.0043a450
mov eax, dword [ebp - 0x128]
test eax, eax
je 0x449972
test ebx, ebx
jne 0x44b330
mov ecx, dword [ebp - 0x28]
dec eax
cdq
push fcn.00411510
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov ecx, edi
mov edx, dword [ebp - 0x100]
push 0xffffffffffffffff
call fcn.0043a770
add esp, 0x10
movzx edx, byte [ebp - 0x54]
mov ecx, edi
call fcn.00439780
mov edi, dword [ebp - 0x1c]
jmp 0x44761d
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x4499b0
mov ecx, esi
call fcn.0043a580
test eax, eax
jne 0x446e7f
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [ebx + edi*8]
call fcn.00420640
add esp, 8
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
je 0x449a14
mov ecx, dword [esi + 8]
lea edx, [ebp - 0x138]
call fcn.00420950
test eax, eax
je 0x449a14
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x134]
push dword [ebp - 0x138]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0043a4f0
add esp, 8
jmp 0x44761d
mov ecx, esi
call fcn.0043a450
jmp 0x44aa54
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x10
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
jne 0x449a51
mov ecx, esi
call fcn.0043a580
test eax, eax
jne 0x446e7f
mov edx, dword [ebp - 0x28]
test ebx, ebx
je 0x449a73
push dword [edx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [edx + edi*8]
mov edx, ebx
call fcn.004209f0
add esp, 8
test eax, eax
jne 0x44688e
test ebx, ebx
js 0x44569b
mov ebx, dword [ebp - 0x28]
jmp 0x4499b0
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ecx
cmp word [eax + 2], 0
je 0x449ac6
mov eax, dword [esi + 0xd0]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x449ac3
cmp dword [eax + 0x18], ecx
je 0x44569b
mov eax, dword [eax + 4]
test eax, eax
jne 0x449ab3
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
mov eax, dword [esi + 0xd8]
cmp eax, dword [edx + 0xa0]
jge 0x44b346
test byte [ecx + 0x10], 0x10
jne 0x449bd5
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x449b0a
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea edi, [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
mov eax, edi
cdq
push edx
push eax
call fcn.004119f0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x446e7f
mov ecx, dword [ebp - 0x2c]
call fcn.00439e50
mov eax, dword [ebp - 0x2c]
mov ecx, 0x1010
mov word [eax + 0x10], cx
mov dword [eax + 0xc], edi
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x64]
mov dword [eax + 8], ebx
mov dword [eax + 0x24], 0x43c9c0
mov eax, dword [ebp - 0x1c]
mov dword [ebx], eax
mov dword [ebx + 0x3c], esi
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x30], eax
mov eax, dword [ecx + 0x58]
mov dword [ebx + 0xc], eax
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x38], eax
mov eax, dword [ecx + 0x60]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x2c], eax
mov eax, dword [ecx + 0x68]
mov dword [ebx + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [ebx + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x18], eax
lea eax, [esi*4 + 0xb]
add eax, esi
lea ecx, [ebx + eax*8]
lea eax, [ebx + 0x58]
cmp eax, ecx
je 0x449bd0
mov edx, dword [ebp - 0x18]
nop dword [eax]
xor esi, esi
mov dword [eax + 0x14], edx
mov word [eax + 0x10], si
add eax, 0x28
cmp eax, ecx
jne 0x449bc0
mov esi, dword [ebp - 0x1c]
jmp 0x449bd8
mov ebx, dword [ecx + 8]
inc dword [esi + 0xd8]
lea edx, [ebx + 0x58]
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebp - 0x18]
mov dword [ebx + 4], eax
mov dword [ebp - 0x28], edx
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x50], ecx
mov eax, dword [esi + 0xe4]
mov dword [ebx + 0x28], eax
mov dword [esi + 0x58], edx
mov dword [esi + 0xe4], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0xd0], ebx
mov ecx, dword [ebx + 0x3c]
mov dword [esi + 0x14], ecx
movzx eax, word [ebx + 0x40]
mov dword [esi + 0x18], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [esi + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [ebx + 0x14], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.00623f60
mov ecx, dword [edi]
add esp, 0xc
mov dword [esi + 0x68], ecx
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x64], ecx
add ecx, 0xffffffec
mov dword [ebp - 0x14], ecx
mov dword [edi + 0x6c], eax
jmp 0x44761d
mov edx, dword [ebp - 0x14]
mov ecx, edi
call fcn.00444c90
mov esi, eax
mov eax, dword [edi + 0xd0]
push 0x4000
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0x14]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.0043a6b0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [ecx + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [ebp - 0x14]
mov esi, eax
je 0x449d1d
mov eax, dword [eax + 8]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [ebp - 0x20]
adc dword [ecx + 0x20c], edx
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x449d44
add dword [ecx + 0x200], eax
mov eax, dword [ebp - 0x20]
adc dword [ecx + 0x204], edx
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
add dword [edi + 0x40], eax
mov eax, dword [ebp - 0x20]
adc dword [edi + 0x44], edx
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
cmp dword [esi + 4], 0
je 0x449d96
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x445262
mov eax, dword [ecx + 0x208]
or eax, dword [ecx + 0x20c]
je 0x446897
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x449d6d
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x449dcd
mov eax, dword [edx + 4]
test eax, eax
je 0x449db9
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x449db0
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x449ddc
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.00439eb0
mov dword [edi], eax
mov ecx, 0xf244
mov ax, word [edi + 0x10]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00439eb0
mov cx, word [esi + 0x10]
mov ebx, 0xf244
and cx, bx
mov dword [esi], eax
or cx, 4
mov dword [esi + 4], edx
mov word [esi + 0x10], cx
cmp dword [edi + 4], edx
jg 0x44ad7a
jl 0x448e26
cmp dword [edi], eax
jae 0x44ad7a
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x44569b
jg 0x449e6e
test ecx, ecx
je 0x44569b
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
jmp 0x44688e
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
mov ecx, edi
lea ebx, [eax + eax*4]
call fcn.00444c90
mov edx, dword [ebp - 0x28]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], ecx
test ecx, ecx
jl 0x449f08
jg 0x449ebf
test eax, eax
je 0x449f08
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x449ed0
jg 0x449ede
test eax, eax
jne 0x449ede
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
push ecx
push eax
lea ecx, [ebp - 0x118]
call fcn.004179a0
add esp, 8
test eax, eax
jne 0x449f08
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x446e2a
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x44525c
test edx, edx
jl 0x446891
jg 0x449f49
test ecx, ecx
je 0x446891
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x446891
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x449f89
jg 0x449f7c
test eax, eax
je 0x449f89
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
mov esi, dword [ebp - 0x14]
or eax, ecx
mov ecx, dword [ebp - 0x18]
je 0x446897
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
call fcn.00411a60
mov esi, eax
add esp, 8
test esi, esi
je 0x446e82
mov edx, dword [ebp - 0x18]
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov dword [esi + 8], 0
push 1
mov dword [esi], ecx
call fcn.0043a430
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x64]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 3
mov eax, edx
mov dword [esi + 0xc], edi
shr eax, 0x1f
add eax, edx
mov byte [esi + 0x19], 0
mov dword [esi + 0x10], eax
mov al, byte [ebp - 0x54]
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov word [ecx], 0xf1a3
mov dword [ecx + 0x10], esi
jmp 0x44a02e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x34], edi
cmp dword [esi + 8], edi
je 0x44a079
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x44a079
mov edi, dword [ebp - 0x14]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
nop word [eax + eax]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x44a060
mov edi, dword [ebp - 0x34]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [ebp - 0x14]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x44a097
mov eax, dword [ecx + 0x1c]
jmp 0x44a09a
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x44ad7a
jle 0x44a0cf
mov ecx, dword [esi]
mov dl, 1
call fcn.0043ad60
mov edi, dword [ebp - 0x1c]
push eax
push 0x68abcc
push edi
call fcn.0043b460
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x44a0d2
mov edi, dword [ebp - 0x1c]
cmp byte [esi + 0x19], 0
je 0x44a0f8
mov eax, dword [ebp - 0x14]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x44a0f4
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.0043a4f0
add esp, 8
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
mov eax, 0x9000
test word [ecx + 0x10], ax
jne 0x44a10b
cmp dword [ecx + 0x18], 0
je 0x44a110
call fcn.00439e10
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 0x24]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x446190
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 0xc]
mov ecx, esi
test eax, eax
je 0x44a164
lea eax, [eax + eax*4]
push edx
lea edx, [ebx + eax*8]
call fcn.00439d70
mov edi, eax
add esp, 4
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jmp 0x44a16b
call fcn.00439cd0
mov edi, eax
mov dword [ebp - 0x24], edi
test edi, edi
jne 0x44b365
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.00439780
jmp 0x446e2a
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
call fcn.004c83a0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x24], edx
test edx, edx
je 0x44a1d4
cmp edx, 5
jne 0x44b108
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x14]
xor edi, edi
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0x9000
nop word [eax + eax]
mov eax, dword [ebp + edi*4 - 0x10]
cdq
test word [esi + 0x10], cx
je 0x44a20e
push edx
push eax
mov ecx, esi
call fcn.0043a4c0
add esp, 8
mov ecx, 0x9000
jmp 0x44a21c
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], edx
mov word [esi + 0x10], ax
inc edi
add esi, 0x28
cmp edi, 3
jl 0x44a1f0
jmp 0x446e2a
mov ebx, dword [ebp - 0x14]
mov ecx, edi
mov edx, ebx
call fcn.00444c90
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x34], eax
call fcn.00437040
mov ebx, eax
mov ecx, ebx
call fcn.00426020
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.00426030
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.00425c70
cmp esi, 5
jne 0x44a2ec
mov ecx, eax
call fcn.00415090
test eax, eax
je 0x44a299
mov ecx, ebx
call fcn.00426060
test eax, eax
jne 0x44a2ec
mov esi, edi
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x44a2a4
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.00425eb0
mov ebx, dword [ebp - 0x5c]
mov ecx, 0x2202
mov word [ebx + 0x10], cx
mov ecx, eax
call fcn.00483e80
mov ecx, eax
mov dword [ebx + 8], eax
call fcn.00415090
movzx edx, byte [ebp - 0x54]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0x12], 1
call fcn.00439780
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b108
jmp 0x446e2a
cmp esi, edi
je 0x44a29b
cmp edi, 5
je 0x44a2fa
cmp esi, 5
jne 0x44a29b
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x55], 0
je 0x44b388
cmp dword [eax + 0xc0], 1
jg 0x44b388
cmp edi, 5
jne 0x44a338
mov edx, eax
mov ecx, ebx
call fcn.004261e0
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x44a2a2
mov edx, esi
mov ecx, ebx
call fcn.00425eb0
jmp 0x44a351
cmp edi, 4
jne 0x44a347
lea edx, [edi - 2]
mov ecx, ebx
call fcn.00425eb0
cmp dword [ebp - 0x24], 0
jne 0x44a2a2
mov ecx, dword [ebp - 0x34]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00438410
mov dword [ebp - 0x24], eax
jmp 0x44a29e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
test eax, eax
je 0x44a37f
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jmp 0x44a381
xor eax, eax
mov edx, dword [ebp - 0x18]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x7c]
call fcn.004a50d0
add esp, 8
jmp 0x44618b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0042e850
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
je 0x44ad7a
cmp edx, 0x65
jne 0x44b108
mov dword [ebp - 0x24], 0
jmp 0x446891
mov edx, dword [ebp - 0x14]
cmp dword [edx + 4], 0
jne 0x44a3f9
mov edx, dword [edx + 8]
call fcn.00440a00
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x98]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ecx + 8]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x98], ecx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.0042f5f0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.0042f600
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov al, byte [esi + 0xc]
mov byte [ebp - 0x124], al
test al, al
jne 0x44a49a
test dword [ecx + 0x24], 4
jne 0x445262
mov eax, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 0x14]
push dword [ebp - 0x124]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00438280
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
je 0x44525c
cmp dl, 6
jne 0x44b108
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0043b460
mov edx, dword [ebp - 0x24]
add esp, 0xc
jmp 0x44b108
mov edx, dword [ebp - 0x14]
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.004a6f80
mov edx, eax
mov dword [ebp - 0x24], edx
test esi, esi
je 0x446190
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.00440c00
mov edx, dword [ebp - 0x24]
jmp 0x446190
xorps xmm0, xmm0
movups xmmword [ebp - 0xa8], xmm0
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0x14]
movups xmmword [ebp - 0xb8], xmm0
movq qword [ebp - 0x98], xmm0
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0xb8]
call fcn.0043a700
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00441420
add esp, 4
test eax, eax
je 0x44a583
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
call fcn.004a6980
add esp, 8
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0xb8]
call fcn.00439e50
mov edx, dword [ebp - 0x24]
jmp 0x446190
mov eax, dword [ebp - 0x14]
inc dword [ecx + 0xcc]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.004a6d60
mov ecx, dword [ebp - 0x18]
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
dec dword [ecx + 0xcc]
test edx, edx
je 0x44525f
mov esi, dword [ebp - 0x1c]
mov edi, ecx
jmp 0x44b10e
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x44b3cd
mov edi, dword [esi]
test edi, edi
je 0x44b3cd
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [ebp - 0x1c]
add esp, 8
mov edx, esi
mov dword [ebp - 0x24], eax
mov ecx, ebx
call fcn.00440c00
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b64c
mov eax, dword [ebp - 0x2c]
mov ecx, ebx
push 2
push edx
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
call fcn.00444810
add esp, 8
test eax, eax
je 0x44b3bb
mov ecx, dword [ebp - 0x2c]
mov edi, ebx
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x44], 0
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [ebp - 0x34], eax
call fcn.0043a450
mov ebx, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x44ad7a
mov esi, dword [ecx + 8]
mov edi, dword [esi]
call fcn.004a5b80
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
add ecx, ecx
push dword [ebx]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov eax, dword [edi + 0x60]
push esi
call eax
mov ecx, dword [ebx + 0x34]
add esp, 0x14
mov esi, eax
mov dword [ebp - 0x24], esi
call fcn.004a5b90
test esi, esi
jne 0x44b3d7
mov edx, dword [ebp - 0x44]
test edx, edx
je 0x44ad7a
mov ecx, dword [ebp - 0x34]
push fcn.00411510
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0043a770
add esp, 0x10
jmp 0x446e2a
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
push 0
push 8
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.004114c0
mov esi, eax
add esp, 8
test esi, esi
je 0x446e7f
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 0x2c]
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
mov dword [esi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov edx, eax
mov dword [esi + 4], ecx
mov ecx, edi
call fcn.00444c90
mov ecx, 1
mov edx, esi
push fcn.00411510
push str.ValueList
mov word [eax + 0x10], cx
mov ecx, eax
call fcn.0043a530
mov ecx, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
add ebx, 0x28
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov esi, dword [ebx + edx*8]
lea ebx, [ebx + edx*8]
mov edi, dword [edi + 0x5c]
movd xmm0, ebx
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x34], ebx
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x44], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
mov ecx, dword [eax]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x74], ecx
mov ecx, dword [eax + edx*8]
mov dword [ebp - 0x5c], ecx
xor ecx, ecx
test esi, esi
jle 0x44a8ab
cmp esi, 0x10
jb 0x44a896
cmp dword [0x6c2678], 2
jl 0x44a896
movaps xmm2, xmmword [0x698dd0]
mov eax, esi
and eax, 0x8000000f
jns 0x44a7e7
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x698de0]
lea edx, [edi + 0x20]
mov ebx, esi
sub ebx, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
add ecx, 0x10
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebx
jl 0x44a800
cmp ecx, esi
jge 0x44a8ab
mov ebx, dword [ebp - 0x34]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
nop
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x44a8a0
mov eax, dword [ebp - 0x14]
push edi
mov edi, dword [ebp - 0x74]
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x44]
push dword [ebp - 0x5c]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [ebp - 0x2c]
add esp, 0x14
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
call fcn.00440c00
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b108
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x50]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x44569b
jmp 0x44688e
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x28]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jne 0x445a22
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x2c]
mov ebx, dword [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x34], eax
mov al, byte [ebp - 0x54]
movups xmmword [ebp - 0xa0], xmm0
mov byte [ebp - 0x98], al
lea eax, [ebp - 0x160]
movups xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x15c], 0x1000000
mov dword [ebp - 0xac], eax
je 0x44a984
mov ecx, esi
call fcn.0043a450
mov edx, dword [ebp - 0x14]
mov eax, 0x401
mov dword [esi], 0
jmp 0x44a997
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [ebp - 0xb0]
push dword [edx + 8]
push eax
mov eax, dword [ebp - 0x34]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [ebp - 0x1c]
add esp, 0xc
mov edx, ebx
mov dword [ebp - 0x24], eax
mov ecx, edi
call fcn.00440c00
cmp dword [ebp - 0x9c], 0
jle 0x44a9ec
push esi
call fcn.00441420
add esp, 4
push eax
push 0x68abcc
push edi
call fcn.0043b460
mov eax, dword [ebp - 0x9c]
add esp, 0xc
mov dword [ebp - 0x24], eax
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.00439780
mov edx, dword [ebp - 0x24]
jmp 0x446190
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x44569b
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
add esp, 4
mov dword [ebp - 0x24], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.00440c00
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44b10b
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
mov edi, esi
test eax, eax
jne 0x44761d
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
mov dword [ebp - 0x14], eax
jmp 0x447620
mov edi, dword [ecx + 0x20]
mov edx, 1
or dword [ecx + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.00439780
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x44b108
mov eax, dword [esi]
push dword [ebx + 8]
push esi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
test edi, edi
jne 0x44aada
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edi, dword [ebp - 0x1c]
mov edx, esi
mov ecx, edi
call fcn.00440c00
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [ebp - 0x24]
jmp 0x446190
cmp byte [ecx + 0x57], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
jne 0x446e85
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x44b3cd
mov edx, dword [ebx]
test edx, edx
je 0x44b3cd
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 0x14]
mov esi, dword [esi + 8]
je 0x44525f
mov al, byte [ecx + 0x5c]
mov ecx, dword [ebp - 0x28]
mov edi, dword [edi + 0x5c]
mov byte [ebp - 0x65], al
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x44ab5b
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x44ab50
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x38]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov edi, dword [ebp - 0x18]
add esp, 0x10
mov esi, dword [ebp - 0x1c]
mov edx, ebx
mov dword [ebp - 0x24], eax
mov ecx, esi
mov al, byte [ebp - 0x65]
mov byte [edi + 0x5c], al
call fcn.00440c00
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x44abd4
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 4], edx
je 0x44abab
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [edi + 0x28], eax
mov eax, edi
mov dword [eax + 0x2c], ecx
mov edi, esi
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test edx, edx
jne 0x44b10b
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
cmp dl, 0x13
jne 0x44abab
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x44abab
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x44b406
mov esi, dword [ebp - 0x14]
mov ecx, edi
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], 0
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov edx, dword [ebp - 0x14]
mov ecx, edi
call fcn.00444c90
mov esi, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.0042c5c0
mov ecx, dword [ebp - 0x18]
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], 0
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ebx, dword [ebp - 0x14]
mov ecx, edi
mov edx, ebx
call fcn.00444c90
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x18]
add edx, edx
mov ecx, dword [eax + 0x10]
mov eax, ebx
mov esi, dword [ecx + edx*8 + 4]
xor edx, edx
cmp dword [eax + 0xc], edx
je 0x44ac8d
mov ecx, esi
call fcn.0042c5c0
mov edx, eax
mov eax, ebx
cmp edx, dword [eax + 0xc]
cmovb edx, dword [eax + 0xc]
mov ecx, esi
call fcn.0042d780
mov dword [edi], eax
mov dword [edi + 4], 0
jmp 0x44569b
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x34], edi
cmp dword [esi], edi
je 0x44acf9
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov al, byte [ebp - 0x54]
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x44acf9
mov edi, dword [ebp - 0x14]
lea edx, [esi + 0x1c]
lea edx, [edx + ecx*4]
nop dword [eax + eax]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x44ace0
mov edi, dword [ebp - 0x34]
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edi + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x44ad7a
jle 0x44ad4e
mov dl, 1
mov ecx, edi
call fcn.0043ad60
mov edi, dword [ebp - 0x1c]
push eax
push 0x68abcc
push edi
call fcn.0043b460
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x44ad51
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
lea edx, [edi + 0xe4]
mov ecx, dword [ebp - 0x18]
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.0043e630
mov edx, dword [ebp - 0x24]
add esp, 8
mov dword [esi + 0x14], 0
jmp 0x446190
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, dword [esi + 4]
mov ebx, 0xf7ff
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
and word [edx + eax*8 + 0x10], bx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, 0x800
test word [ebx + edx*8 + 0x10], ax
je 0x446741
movzx eax, byte [ebx + edx*8 + 0x13]
cdq
push edx
push eax
call fcn.0043a4f0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
test byte [ebx + edx*8 + 0x10], 1
lea ecx, [eax + eax*4]
je 0x44ae3e
mov eax, 0xf7ff
and word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov eax, 0x800
or word [ebx + ecx*8 + 0x10], ax
mov al, byte [ebx + edx*8]
mov byte [ebx + ecx*8 + 0x13], al
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ecx, ebx
lea edi, [eax + eax*4]
call fcn.00444cc0
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + edi*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.00646ae0
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [ebx + edi*8 + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x44569b
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov edi, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ecx, edi
lea ebx, [eax + eax*4]
call fcn.00444cc0
mov esi, eax
mov ecx, edx
mov eax, dword [edi + ebx*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.00646ae0
mov edi, eax
mov eax, dword [ebp - 0x28]
mov esi, edi
and edi, 7
shrd esi, edx, 3
mov ecx, dword [eax + ebx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
test eax, edx
jne 0x44af0a
inc dword [edi + 0xc4]
jmp 0x446897
inc dword [edi + 0xc0]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xbc]
add esi, 0x14
jmp 0x44519f
mov cl, byte [ecx + 0x5e]
test cl, 0x41
je 0x44afca
cmp byte [edi + 0x95], 0xfe
je 0x44afca
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x44af4e
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x44afca
test cl, 0x40
je 0x44af7b
mov edx, eax
mov ecx, edi
call fcn.00444360
mov esi, eax
mov eax, dword [ebp - 0x18]
push esi
push dword [eax + 0xdc]
mov ecx, dword [eax + 0xd8]
call ecx
push esi
call fcn.00411510
add esp, 0xc
jmp 0x44afca
mov ebx, dword [ebp - 0x18]
push eax
cmp dword [ebx + 0xc8], 1
jle 0x44afb6
push str.____s
push ebx
call fcn.00414020
mov ecx, dword [ebx + 0xd8]
add esp, 0xc
mov esi, eax
push esi
push edi
push dword [ebx + 0xdc]
push 1
call ecx
push esi
push ebx
call fcn.00411730
add esp, 0x18
jmp 0x44afca
mov eax, dword [ebx + 0xd8]
push edi
push dword [ebx + 0xdc]
push 1
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [0x6b8b3c]
jl 0x44b00f
cmp byte [ecx], 0xb8
je 0x44525c
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x44b00d
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x44b001
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x44aff0
mov ecx, dword [ebp - 0x14]
xor eax, eax
inc eax
mov dword [ecx + 4], eax
inc dword [edi + 0xbc]
jmp 0x446891
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi + 4]
mov dword [edi + 0x24], ecx
mov al, byte [esi + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x44b0c7
mov ecx, esi
movzx eax, word [ecx + 2]
test ax, ax
je 0x44b07d
push dword [eax*4 + 0x6930c8]
push str._s_constraint_failed
push edi
call fcn.0043b460
mov edi, esi
add esp, 0xc
mov eax, dword [edi + 0x10]
test eax, eax
je 0x44b091
mov ebx, dword [ebp - 0x1c]
push eax
push dword [ebx + 0x7c]
push str._z:__s
push dword [ebp - 0x18]
call fcn.00414020
add esp, 0x10
mov dword [ebx + 0x7c], eax
jmp 0x44b091
push dword [ecx + 0x10]
push 0x68abcc
push edi
call fcn.0043b460
mov edi, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov ecx, edi
sub ecx, dword [ebp - 0x64]
push dword [eax + 0x7c]
push dword [eax + 0xc8]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [edi + 4]
call fcn.00414390
mov edi, dword [ebp - 0x1c]
add esp, 0x14
mov ecx, edi
call fcn.0043df90
mov esi, dword [ebp - 0x1c]
mov edi, eax
mov ecx, dword [ebp - 0x18]
cmp edi, 5
jne 0x44b0e3
mov dword [esi + 0x24], eax
jmp 0x44b488
cmp dword [esi + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x44b488
mov ecx, 0x17676
call fcn.004ca0d0
mov edx, eax
mov dword [ebp - 0x24], edx
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
cmp byte [edi + 0x57], 0
je 0x44b65e
mov edx, 7
jmp 0x44b689
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
add ecx, ecx
push dword [edx + ecx*8]
mov ecx, dword [ebp - 0x74]
push dword [ecx]
mov ecx, esi
push dword [eax*4 + 0x6b9ab4]
call fcn.00445090
mov esi, dword [ebp - 0x1c]
push eax
push str.cannot_store__s_value_in__s_column__s._s
push esi
call fcn.0043b460
mov edx, 0xc13
add esp, 0x18
mov dword [ebp - 0x24], edx
jmp 0x44b10b
mov esi, dword [ebp - 0x1c]
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.0043b460
mov edx, 5
add esp, 8
mov dword [ebp - 0x24], edx
jmp 0x44b10b
mov esi, dword [ebp - 0x1c]
push str.cannot_release_savepoint___SQL_statements_in_progress
push esi
call fcn.0043b460
mov edx, 5
add esp, 8
mov dword [ebp - 0x24], edx
jmp 0x44b10b
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov byte [edi + 0x55], 0
jmp 0x44b10e
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x64]
mov esi, edi
imul ecx
mov ecx, dword [ebp - 0x18]
mov edi, 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [esi + 0x24], edi
jmp 0x44b488
mov edi, dword [ebp - 0x18]
and edx, 0x100000
or edx, 0
mov esi, dword [ebp - 0x1c]
je 0x44b1f2
mov edx, 8
mov dword [ebp - 0x24], edx
jmp 0x44b10e
mov edx, 0xb
mov dword [ebp - 0x24], edx
jmp 0x44b10e
mov esi, dword [ebp - 0x1c]
cmp dl, 5
jne 0x44b10b
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x64]
imul ecx
mov ecx, dword [ebp - 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov edi, dword [ebp - 0x24]
mov dword [esi + 0x24], edi
jmp 0x44b488
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x7c]
mov ebx, dword [ebp - 0x18]
push ebx
call fcn.00411730
add esp, 8
mov edx, str.database_schema_has_changed
mov ecx, ebx
call fcn.00411bf0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x7c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov eax, ebx
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x44]
je 0x44b27a
mov ecx, ebx
call fcn.00467df0
mov esi, edi
mov eax, dword [esi]
mov edx, 0x11
and eax, 0xfffffffd
mov dword [ebp - 0x24], edx
or eax, 1
mov edi, ebx
and eax, 0xffffffef
mov dword [esi], eax
mov esi, dword [ebp - 0x1c]
jmp 0x44b10e
mov edx, 0x204
jmp 0x44b105
mov ecx, dword [edi]
call fcn.0042d300
mov edx, dword [ebp - 0x24]
jmp 0x44b108
mov edi, dword [ebp - 0x1c]
push str.string_or_blob_too_big
push edi
call fcn.0043b460
add esp, 8
mov edx, 0x12
jmp 0x44b105
push str.index_corruption
mov edx, 0x18378
mov ecx, 0x30b
call fcn.004ca0a0
add esp, 4
jmp 0x44b103
push 0x692b64
push 0x18445
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00414390
add esp, 0x14
mov edx, 0xb
jmp 0x44b105
mov edx, 6
mov byte [edi + 0x94], 2
jmp 0x44b105
mov ecx, ebx
call fcn.00467e60
mov ecx, ebx
jmp 0x446e85
push dword [ebp - 0x100]
call fcn.00411510
mov edx, dword [ebp - 0x24]
add esp, 4
jmp 0x44b108
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [ebp - 0x24], 1
call fcn.0043b460
add esp, 8
mov edx, 1
jmp 0x44b10b
push esi
call fcn.00441420
mov esi, dword [ebp - 0x1c]
add esp, 4
push eax
push 0x68abcc
push esi
call fcn.0043b460
mov edx, dword [ebp - 0x24]
add esp, 0xc
jmp 0x44b10b
cmp esi, 5
mov dword [ebp - 0x24], 1
mov esi, dword [ebp - 0x1c]
mov ecx, str.out_of
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push esi
call fcn.0043b460
add esp, 0xc
mov edx, 1
jmp 0x44b10b
push dword [ebp - 0x2c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov edi, ebx
jmp 0x446e82
mov edx, 6
jmp 0x44b105
push dword [ebp - 0x44]
call fcn.00411510
mov edx, dword [ebp - 0x24]
add esp, 4
jmp 0x44b108
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0xcc], eax
jmp 0x44b105
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov byte [esi + 0x94], al
jmp 0x44b10e
mov eax, dword [edi + 0x1c]
mov ebx, dword [ebp - 0x14]
add eax, 2
mov edx, dword [ebp - 0x28]
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [edi + 0x78], eax
cmp byte [ecx + 0x57], 0
jne 0x446e85
test byte [ecx + 0x5e], 4
je 0x44b463
mov eax, dword [ecx + 0xd8]
push 0
push edi
push dword [ecx + 0xdc]
push 4
call eax
add esp, 0x10
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x64]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x20], eax
mov edi, 0x64
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0xcc]
nop
cmp dword [ebp - 0xbc], ebx
jb 0x44b750
mov edx, dword [ebp - 0x90]
ja 0x44b4ad
cmp dword [ebp - 0x20], edx
jb 0x44b750
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x44b750
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [ebp - 0x90], edx
adc ebx, 0
call eax
mov ecx, dword [ebp - 0x18]
add esp, 4
test eax, eax
je 0x44b490
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0xcc], eax
mov edi, ecx
mov dword [ebp - 0x24], edx
jmp 0x44b10e
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ecx + 4]
movzx eax, byte [edx + 0x55]
mov ecx, dword [ecx + 8]
cmp ebx, eax
je 0x44b5d5
test ecx, ecx
je 0x44b52c
mov esi, dword [ebp - 0x18]
mov edx, 0x204
mov ecx, esi
call fcn.004c7390
mov al, 1
jmp 0x44b56f
test ebx, ebx
je 0x44b551
cmp dword [edx + 0xc4], 0
jle 0x44b551
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.0043b460
add esp, 8
mov edx, 5
jmp 0x44b105
mov edx, 1
mov ecx, edi
call fcn.0043df20
mov edi, eax
test edi, edi
jne 0x44b482
mov esi, dword [ebp - 0x18]
mov al, bl
mov edi, dword [ebp - 0x1c]
mov ecx, edi
mov byte [esi + 0x55], al
call fcn.0043df90
cmp eax, 5
jne 0x44b5b2
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x1c]
imul ecx
mov ecx, dword [ebp - 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov al, 1
sub al, bl
mov edi, 5
mov byte [ecx + 0x55], al
mov dword [esi + 0x24], edi
jmp 0x44b488
mov ecx, esi
call fcn.004c6c70
mov esi, dword [ebp - 0x1c]
mov edi, 0x65
mov ecx, dword [ebp - 0x18]
mov eax, 1
cmp dword [esi + 0x24], 0
cmovne edi, eax
jmp 0x44b488
test ebx, ebx
jne 0x44b5f0
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.0043b460
add esp, 8
lea edx, [ebx + 1]
jmp 0x44b105
test ecx, ecx
mov edx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, edx
push eax
push edi
call fcn.0043b460
add esp, 8
mov edx, 1
jmp 0x44b105
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x20], eax
mov edx, 9
jmp 0x44b105
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x20], eax
jmp 0x446e85
mov esi, ebx
jmp 0x44b10b
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
jmp 0x44b10e
cmp edx, 0x210a
jne 0x44b68c
push 0x692b64
push 0x18d49
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00414390
add esp, 0x14
mov edx, 0xb
mov dword [ebp - 0x24], edx
cmp dword [esi + 0x7c], 0
jne 0x44b6b0
cmp edx, 0xc0a
je 0x44b6b0
mov ecx, edx
call fcn.004c74d0
push eax
push 0x68abcc
push esi
call fcn.0043b460
add esp, 0xc
mov ebx, dword [ebp - 0x24]
mov edx, ebx
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0x24], ebx
call fcn.00415110
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x64]
push dword [esi + 0x7c]
imul ecx
push dword [esi + 0xc8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.00414390
add esp, 0x14
cmp byte [esi + 0x97], 2
jne 0x44b6ff
mov ecx, esi
call fcn.0043df90
cmp ebx, 0xc0a
jne 0x44b736
mov ecx, dword [ebp - 0x18]
call fcn.00411d30
mov ecx, dword [ebp - 0x18]
mov al, byte [ebp - 0x85]
mov edi, 1
test al, al
je 0x44b488
movzx edx, al
dec edx
call fcn.00467df0
mov ecx, dword [ebp - 0x18]
jmp 0x44b488
cmp ebx, 0xb
jne 0x44b70f
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 0x55], 0
jne 0x44b712
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x44b712
mov ecx, dword [ebp - 0x20]
add dword [esi + 0xb4], ecx
cmp dword [esi + 0xa0], 0
je 0x44b769
mov ecx, esi
call fcn.0043c8d0
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0061e015
mov esp, ebp
pop ebp
ret