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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2ec
mov eax, dword [0x57906c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x294], 0
xor cl, cl
mov dword [ebp - 0x288], esi
mov byte [ebp - 0x2b5], cl
xorps xmm0, xmm0
push edi
mov eax, dword [esi + 0x68]
mov ecx, esi
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x284], eax
mov eax, dword [esi]
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x2b4], 0
movlpd qword [ebp - 0x2d0], xmm0
mov al, byte [eax + 0x54]
mov byte [ebp - 0x2a4], al
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x298], eax
call fcn.0044f000
mov ecx, dword [ebp - 0x28c]
cmp dword [ecx + 0x170], 0
je 0x455fda
mov ebx, dword [ecx + 0x178]
xor edx, edx
mov eax, dword [esi + 0xb4]
div ebx
sub ebx, edx
xor eax, eax
jmp 0x455fe0
or ebx, 0xffffffff
or eax, 0xffffffff
cmp dword [esi + 0x24], 7
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2bc], ebx
je 0x45cceb
mov dword [esi + 0x24], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x78], 0
cmp dword [ecx + 0x128], 0
mov dword [ecx + 0x1c4], 0
jne 0x45ccce
mov eax, dword [esi + 0x20]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x2a8]
mov dword [ebp - 0x2dc], 0x561a30
movsd qword [ebp - 0x2e8], xmm0
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov edx, dword [ebp - 0x2cc]
mov eax, dword [ebp - 0x2d0]
add eax, 1
mov dword [ebp - 0x284], edi
mov dword [ebp - 0x290], eax
adc edx, 0
mov dword [ebp - 0x2c8], edx
mov dl, byte [edi]
movzx ebx, dl
cmp ebx, 0xb4
ja case.0x456082.89
jmp dword [ebx*4 + 0x45cea0]
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
sub ecx, dword [ebp - 0x2a8]
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 0x45c1cf
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x4566f6
mov eax, dword [ebx + eax*8]
mov edx, dword [ebp - 0x2a8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 - 0x284]
cmp dword [ecx + 8], 0
jne 0x4597d2
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov edx, dword [ebp - 0x2a8]
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 edi, [edx + eax*4]
xor eax, eax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov edi, dword [ebp - 0x2a8]
mov eax, dword [edx + 4]
sub edx, edi
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 dword [ebx + esi*8 + 4], edx
lea ecx, [edi + eax*4]
mov dword [ebp - 0x284], ecx
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x4566f6
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x45c791
mov ecx, dword [ebp - 0x284]
cmp dword [ecx + 4], 0
jne 0x45c791
mov eax, dword [edx + 4]
mov ebx, dword [ebp - 0x28c]
mov ecx, dword [esi + 0x2c]
dec dword [esi + 0xd8]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x28]
add dword [ebx + 0x70], eax
mov dword [ebx + 0x6c], ecx
adc dword [ebx + 0x74], ecx
mov ecx, edx
mov dword [ebx + 0x68], eax
call fcn.0044fb80
mov edx, dword [esi + 0x68]
mov ecx, eax
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x2a8], edx
cmp dword [eax + 8], 4
jne 0x45629b
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + eax*4 + 8]
dec ecx
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x298], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*4]
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x284], ecx
mov ecx, ebx
mov edi, dword [ebp - 0x284]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4562f2
call fcn.00455e00
mov ecx, eax
jmp 0x4562fb
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x284]
mov edi, dword [ebp - 0x284]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x290]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x456352
mov ecx, edx
call fcn.00455e00
mov edx, eax
jmp 0x45635b
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x284]
mov edi, dword [ebp - 0x284]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4563b2
call fcn.00455e00
mov ecx, eax
mov edi, dword [ebp - 0x284]
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x290]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x284]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x456414
mov ecx, esi
call fcn.00455e00
mov esi, eax
jmp 0x45641d
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x456428
xor ecx, ecx
jmp 0x45643f
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x456430
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [ebp - 0x2a4], 1
mov dword [ebx + 4], ecx
je 0x4564e2
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.0044d060
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x294], edi
test edi, edi
jne 0x45c9d4
test byte [esi + 0x10], 2
mov al, byte [ebp - 0x2a4]
jne 0x456482
mov byte [esi + 0x12], al
jmp 0x456498
cmp byte [esi + 0x12], al
je 0x456498
mov dl, al
mov ecx, esi
call fcn.0042f1b0
test eax, eax
jne 0x45ae7a
mov ecx, dword [ebp - 0x284]
mov eax, 0x2000
or word [esi + 0x10], ax
mov dword [esi + 0x18], 0
cmp byte [ecx + 1], 0xfa
jne 0x4564cc
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x4564cc
mov ecx, dword [ebp - 0x28c]
call fcn.0042c2b0
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x284]
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 - 0x28c]
mov esi, dword [ebp - 0x288]
cmp ecx, dword [eax + 0x78]
jg 0x45c9da
mov byte [ebx], 0x49
jmp 0x456502
mov ebx, dword [ebp - 0x284]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x456520
call fcn.00455e00
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 - 0x2a4]
mov byte [ecx + 0x12], al
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x45613b
mov ebx, dword [ebp - 0x298]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x284]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x45c574
cmp dword [ebx + esi*8 + 4], edx
mov edi, dword [ebp - 0x284]
mov esi, dword [ebp - 0x288]
jne 0x45618d
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x284]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x4565cd
mov ecx, edx
call fcn.00455e00
mov edx, eax
jmp 0x4565d6
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 0x45c574
mov eax, 0x9000
nop dword [eax]
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x456626
lea ecx, [esi - 0x10]
call fcn.0044c6e0
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x456610
jmp 0x4566e4
mov ecx, dword [ebp - 0x284]
mov edx, 0xffc1
mov ebx, dword [ebp - 0x298]
mov edi, dword [ebp - 0x284]
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 - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4566aa
mov ecx, esi
call fcn.00455e00
mov esi, eax
jmp 0x4566b3
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x284]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x45670a
mov edx, eax
mov ecx, esi
call fcn.0044ccf0
mov ecx, esi
call fcn.0044c370
test eax, eax
jne 0x45ae7a
mov al, byte [ebp - 0x2a4]
mov byte [esi + 0x12], al
mov edi, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x28c]
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.0044d060
add esp, 0x10
jmp 0x4566db
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.0044cf40
test eax, eax
jne 0x45c9da
mov eax, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x298]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x456768
mov ecx, esi
call fcn.0044c6e0
movups xmm0, xmmword [edi - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov word [esi + 0x10], ax
jmp 0x4566e4
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x298]
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
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4567c1
cmp dword [esi + 0x18], 0
je 0x4567c8
mov ecx, esi
call fcn.0044c720
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 0x45680a
mov ecx, esi
call fcn.0044c320
test eax, eax
jne 0x45ae7a
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x4567b0
jmp 0x4566e4
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x298]
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 dword [eax + eax]
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.0044cfa0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x45686b
mov ecx, esi
call fcn.0044c320
test eax, eax
jne 0x45ae7a
mov eax, ebx
dec ebx
test eax, eax
je 0x45c574
add esi, 0x28
add edi, 0x28
jmp 0x456840
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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.0044cfa0
mov ecx, dword [ebp - 0x28c]
add esp, 4
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 0x456920
push eax
push edx
call fcn.0044cd40
mov ecx, dword [ebp - 0x28c]
add esp, 8
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edi, dword [ebp - 0x284]
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x290]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
xor edx, edx
mov ecx, esi
call fcn.004505c0
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [ebx + 0x10]
mov dword [ebp - 0xd4], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov al, byte [edi + 0x10]
or al, cl
test al, 1
je 0x4569e0
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4569d2
mov ecx, esi
call fcn.0044c6e0
jmp 0x4566e4
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x4566e4
test cl, 0x12
jne 0x4569f9
mov dl, byte [ebp - 0x2a4]
mov ecx, ebx
push 0
call fcn.0044c3d0
add esp, 4
jmp 0x456a08
test ecx, 0x400
je 0x456a25
mov ecx, ebx
call fcn.0044c370
test eax, eax
jne 0x45ae7a
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0xd4], eax
movzx edx, word [edi + 0x10]
mov dword [ebp - 0x1c], edx
test dl, 0x12
jne 0x456a5f
mov dl, byte [ebp - 0x2a4]
mov ecx, edi
push 0
call fcn.0044c3d0
add esp, 4
test eax, eax
jne 0x45ae7a
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [ebp - 0x1c], edx
jmp 0x456a88
test edx, 0x400
je 0x456a88
mov ecx, edi
call fcn.0044c370
test eax, eax
jne 0x45ae7a
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28c]
mov edx, dword [edi + 0xc]
add edx, dword [ebx + 0xc]
mov dword [ebp - 0x14], edx
cmp edx, dword [eax + 0x78]
jg 0x45c9d4
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 3
push eax
call fcn.0044c160
add esp, 4
test eax, eax
jne 0x45ae7a
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x456aed
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call fcn.00516430
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov word [edi + 0x10], ax
push dword [ebx + 0xc]
mov eax, dword [esi + 8]
push dword [ebx + 8]
add eax, dword [edi + 0xc]
push eax
call fcn.00516430
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov word [ebx + 0x10], ax
mov eax, dword [esi + 8]
mov byte [ecx + eax], 0
mov eax, dword [esi + 8]
mov byte [eax + ecx + 1], 0
mov eax, dword [esi + 8]
mov byte [eax + ecx + 2], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov dword [esi + 0xc], ecx
jmp 0x4566db
mov ecx, dword [ebp - 0x284]
mov edi, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [ebp - 0x29c], eax
call fcn.00455de0
movzx ebx, ax
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov ecx, esi
mov dword [ebp - 0x34], esi
call fcn.00455de0
movzx ecx, ax
mov eax, dword [ebp - 0x284]
and cl, bl
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0xd4], eax
mov ax, word [esi + 0x10]
mov esi, dword [ebp - 0x29c]
or ax, word [esi + 0x10]
movzx eax, ax
test cl, 4
je 0x456d33
mov eax, esi
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x48], ebx
movzx eax, byte [eax]
add eax, 0xffffff96
mov dword [ebp - 0x44], edi
cmp eax, 3
ja case.default.0x456bd9
jmp dword [eax*4 + 0x45d174]
test esi, esi
jl 0x456c4a
jg 0x456bea
test edx, edx
jb 0x456c4a
test edi, edi
jl 0x456c7d
jg 0x456bfc
test ebx, ebx
je 0x456c7d
or ecx, 0xffffffff
mov eax, accept
sub ecx, ebx
sbb eax, edi
cmp eax, esi
jg 0x456c7d
jl 0x456c12
cmp ecx, edx
jae 0x456c7d
mov esi, dword [ebp - 0x29c]
mov ecx, esi
call fcn.0044c8b0
mov ebx, dword [ebp - 0x34]
mov ecx, ebx
movsd qword [ebp - 0x18], xmm0
call fcn.0044c8b0
mov eax, dword [ebp - 0x284]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x456c43
jmp dword [eax*4 + 0x45d184]
test edi, edi
jg 0x456c7d
jl 0x456c54
test ebx, ebx
jae 0x456c7d
mov ebx, 1
mov ecx, accept
sub ebx, dword [ebp - 0x1c]
mov eax, esi
sbb ecx, edi
mov edi, edx
add edi, 1
adc eax, 0
cmp ecx, eax
jg 0x456c12
jl 0x456c77
cmp ebx, edi
ja 0x456c12
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
add edx, ebx
mov dword [ebp - 0x48], edx
adc esi, edi
mov dword [ebp - 0x44], esi
jmp 0x456d06
push esi
push edx
lea ecx, [ebp - 0x48]
call fcn.00430c60
add esp, 8
test eax, eax
jne 0x456c12
jmp 0x456d06
push esi
push edx
lea ecx, [ebp - 0x48]
call fcn.00430cb0
add esp, 8
test eax, eax
jne 0x456c12
jmp 0x456d06
mov eax, edx
or eax, esi
je 0x456d3b
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x456cd6
test ebx, ebx
jne 0x456cd6
cmp edi, 0x80000000
je 0x456c12
push esi
push edx
push edi
push ebx
call fcn.00540060
jmp 0x456d00
mov eax, edx
or eax, esi
je 0x456d3b
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x456cf7
mov edx, 1
xor esi, esi
push esi
push edx
push edi
push ebx
call fcn.00540570
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0xd4]
mov edx, 0xf244
mov eax, dword [ebp - 0x48]
mov dword [ecx], eax
mov eax, dword [ebp - 0x44]
mov dword [ecx + 4], eax
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ecx + 0x10], ax
jmp 0x4566e4
test al, 1
je 0x456c18
mov eax, dword [ebp - 0xd4]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x456e15
mov ecx, eax
call fcn.0044c6e0
jmp 0x4566e4
addsd xmm0, qword [ebp - 0x18]
jmp 0x456dc8
subsd xmm0, qword [ebp - 0x18]
jmp 0x456dc8
mulsd xmm0, qword [ebp - 0x18]
jmp 0x456dc8
movsd xmm1, qword [ebp - 0x18]
ucomisd xmm1, qword [ebp - 0x2e8]
lahf
test ah, 0x44
jnp 0x456d3b
divsd xmm0, xmm1
jmp 0x456dc8
mov ecx, esi
call fcn.0044c820
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.0044c820
mov ecx, esi
mov dword [ebp - 0x48], eax
or ecx, edi
mov dword [ebp - 0x44], edx
je 0x456d3b
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x456db8
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00540570
mov ecx, eax
call fcn.00540460
movsd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x456def
mov eax, dword [ebp - 0x18]
and ecx, 0xfffff
or eax, ecx
jne 0x456d3b
mov ecx, dword [ebp - 0xd4]
mov edx, 0xf248
mov ax, word [ecx + 0x10]
and ax, dx
movsd qword [ecx], xmm0
or ax, 8
movzx eax, ax
mov word [ecx + 0x10], ax
jmp 0x4566e4
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4566e4
mov eax, dword [edi + 4]
test eax, eax
je 0x4566f6
mov edx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, 0x9000
test word [eax + 0x10], dx
je 0x456e6d
push 0
push 0
mov ecx, eax
call fcn.0044cd40
mov ecx, dword [ebp - 0x28c]
add esp, 8
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
mov dword [ebp - 0x14], edx
test al, 1
je 0x456f26
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x456efd
mov ecx, edx
call fcn.0044c6e0
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x28c]
mov eax, 1
mov edi, dword [ebp - 0x284]
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
call fcn.0044c820
mov ebx, eax
mov esi, edx
mov ecx, edi
mov dword [ebp - 0x2d8], ebx
mov dword [ebp - 0x2d4], esi
call fcn.0044c820
mov edi, eax
mov eax, dword [ebp - 0x284]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x456f57
and ebx, edi
and esi, edx
jmp 0x456fba
cmp cl, 0x67
jne 0x456f62
or ebx, edi
or esi, edx
jmp 0x456fba
mov eax, edi
or eax, edx
je 0x456fba
test edx, edx
jg 0x456f96
jl 0x456f72
test edi, edi
jae 0x456f8b
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x456f96
jg 0x456f84
cmp edi, 0xffffffc0
jbe 0x456f96
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x456fdb
jg 0x456f96
cmp edi, 0x40
jb 0x456fdb
test esi, esi
jg 0x456fac
jl 0x456fa0
test ebx, ebx
jae 0x456fac
cmp cl, 0x68
je 0x456fac
or ebx, 0xffffffff
or esi, ebx
jmp 0x456fba
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], ebx
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 0x10], ax
jmp 0x4566e4
movq xmm1, qword [ebp - 0x2d8]
movd xmm0, edi
cmp cl, 0x68
jne 0x456ff7
psllq xmm1, xmm0
movq qword [ebp - 0x20], xmm1
jmp 0x456fb4
psrlq xmm1, xmm0
movq qword [ebp - 0x20], xmm1
test esi, esi
jg 0x456fb4
jl 0x45700a
test ebx, ebx
jae 0x456fb4
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.005408c0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
or ebx, eax
or esi, edx
jmp 0x456fba
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0044c820
mov dword [esi], eax
mov ecx, 0xf244
mov ax, word [esi + 0x10]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x4566e4
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x4570c6
push dword [ebp - 0x2a4]
mov dl, 0x43
mov ecx, esi
call fcn.00455c80
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, eax
test al, 4
jne 0x4570c6
mov ecx, dword [ebp - 0x284]
cmp dword [ecx + 8], 0
jne 0x4597cc
mov edx, 0x14
jmp 0x45cafe
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
jmp 0x4566e4
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x24
lea esi, [edx + eax*8]
je 0x4566f0
mov ecx, esi
call fcn.0044c8b0
mov ax, word [esi + 0x10]
mov ecx, 0xf248
and ax, cx
movsd qword [esi], xmm0
mov ecx, dword [ebp - 0x28c]
or ax, 8
mov word [esi + 0x10], ax
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x457168
mov ecx, esi
call fcn.0044c370
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x284]
mov ecx, esi
push dword [ebp - 0x2a4]
mov dl, byte [eax + 8]
call fcn.0044cbc0
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
jmp 0x4566e4
mov ecx, dword [ebp - 0x284]
mov esi, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
movzx edi, word [esi + eax*8 + 0x10]
lea ecx, [esi + eax*8]
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x2a0], ecx
mov dword [ebp - 0x29c], edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 0x10]
lea esi, [esi + eax*8]
mov eax, ecx
mov dword [ebp - 0x2ac], ecx
and eax, edi
test al, 4
je 0x45729c
mov eax, dword [ebp - 0x2a0]
mov ecx, dword [esi + 4]
mov edi, dword [esi]
mov edx, dword [eax]
mov eax, dword [eax + 4]
cmp ecx, eax
jl 0x457222
jg 0x4571fc
cmp edi, edx
jbe 0x457218
cmp byte [ebx + 0x561a30], 0
jne 0x4597cc
mov dword [ebp - 0x2b4], 1
jmp 0x4566e4
cmp ecx, eax
jg 0x45725f
jl 0x457222
cmp edi, edx
jae 0x45725f
cmp byte [ebx + 0x561a24], 0
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov esi, dword [ebp - 0x288]
jne 0x4597de
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x2b4], 0xffffffff
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
cmp byte [ebx + 0x561a2a], 0
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov esi, dword [ebp - 0x288]
jne 0x4597de
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x2b4], 0
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, ecx
or ebx, edi
test bl, 1
je 0x457330
mov ebx, dword [ebp - 0x284]
movzx ebx, word [ebx + 2]
test bl, bl
jns 0x4572f7
test al, 1
je 0x4572d8
test ecx, 0x100
jne 0x4572d8
mov ebx, dword [ebp - 0x2a0]
mov dword [ebp - 0x2b4], 0
jmp 0x457464
mov ebx, dword [ebp - 0x2a0]
mov eax, ecx
not eax
and eax, 1
lea eax, [eax*2 - 1]
mov dword [ebp - 0x2b4], eax
jmp 0x457464
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov esi, dword [ebp - 0x288]
test bl, 0x10
jne 0x4597de
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x2b4], 1
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [ebp - 0x284]
mov al, byte [eax + 2]
and al, 0x47
cmp al, 0x43
jb 0x45738b
test bl, 2
je 0x457435
mov ebx, dword [ebp - 0x29c]
mov al, bl
mov ebx, dword [ebp - 0x2a0]
and al, 0x2e
cmp al, 2
jne 0x45736f
xor edx, edx
mov ecx, ebx
call fcn.00455b90
movzx ecx, word [esi + 0x10]
mov dword [ebp - 0x2ac], ecx
mov al, cl
and al, 0x2e
cmp al, 2
jne 0x457380
xor edx, edx
mov ecx, esi
call fcn.00455b90
mov edi, dword [ebp - 0x29c]
jmp 0x45743b
cmp al, 0x42
jne 0x457435
mov ebx, dword [ebp - 0x29c]
test bl, 2
jne 0x4573f1
test bl, 0x2c
je 0x4573f1
mov edi, dword [ebp - 0x2a0]
mov ecx, edi
mov dl, byte [ebp - 0x2a4]
push 1
call fcn.0044c3d0
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
xor ax, bx
add esp, 4
and ax, cx
xor ax, word [edi + 0x10]
movzx ebx, ax
mov dword [ebp - 0x29c], ebx
cmp edi, esi
jne 0x4573eb
mov eax, ebx
or eax, 2
movzx ecx, ax
mov dword [ebp - 0x2ac], ecx
jmp 0x4573f1
mov ecx, dword [ebp - 0x2ac]
test cl, 2
jne 0x45742f
test cl, 0x2c
je 0x45742f
mov dl, byte [ebp - 0x2a4]
mov ecx, esi
push 1
call fcn.0044c3d0
mov ecx, dword [ebp - 0x2ac]
add esp, 4
mov ax, word [esi + 0x10]
xor ax, cx
mov ecx, 0xdbf
and ax, cx
xor ax, word [esi + 0x10]
movzx ecx, ax
mov dword [ebp - 0x2ac], ecx
mov edi, dword [ebp - 0x29c]
mov ebx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x284]
mov edx, ebx
mov ecx, esi
push dword [eax + 0x10]
call fcn.004516c0
mov ecx, dword [ebp - 0x2ac]
add esp, 4
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp - 0x284]
mov dl, byte [eax]
cmp dword [ebp - 0x2b4], 0
movzx edx, dl
jge 0x457477
mov eax, 0x561a24
jmp 0x457483
mov eax, 0x561a2a
cmovne eax, dword [ebp - 0x2dc]
mov al, byte [edx + eax]
mov word [esi + 0x10], cx
mov esi, dword [ebp - 0x288]
mov word [ebx + 0x10], di
test al, al
jne 0x4597d2
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
cmp dword [ebp - 0x2b4], 0
je 0x4597de
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x284]
test byte [ebx + 2], 1
jne 0x4574e7
xor eax, eax
jmp 0x4574ed
mov eax, dword [ebx - 4]
add eax, 4
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp - 0x284]
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x24], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0x34], ebx
test ecx, ecx
jle 0x4561f3
lea ebx, [edx + 0x14]
nop
test eax, eax
je 0x457529
mov edi, dword [eax + esi*4]
jmp 0x45752b
mov edi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0x298]
push dword [ebx]
movzx eax, byte [eax + esi]
and eax, 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x34]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x24]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004516c0
mov edx, eax
add esp, 4
mov dword [ebp - 0x2b4], edx
test edx, edx
jne 0x457581
mov eax, dword [ebp - 0x1c]
inc esi
mov edx, dword [ebp - 0xd4]
add ebx, 4
cmp esi, dword [ebp - 0x14]
jl 0x457520
jmp 0x4566e4
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x4575bc
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x298]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x4575b4
mov eax, dword [ebp - 0x34]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
je 0x4575bc
neg edx
mov dword [ebp - 0x2b4], edx
cmp dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov esi, dword [ebp - 0x288]
je 0x4566f6
mov eax, dword [ebp - 0x290]
neg edx
mov dword [ebp - 0x2b4], edx
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x2b4]
mov edx, dword [ebp - 0x284]
test ebx, ebx
jns 0x45762a
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x2a8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
jne 0x457652
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x2a8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x2a8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x284]
mov edi, 2
mov ecx, dword [ebp - 0x298]
mov edx, edi
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0044c8e0
mov ecx, dword [ebx + 8]
mov edx, edi
mov ebx, dword [ebp - 0x298]
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
call fcn.0044c8e0
mov ecx, dword [ebp - 0x284]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x4576c8
mov dl, byte [esi + eax + 0x560afc]
jmp 0x4576cf
mov dl, byte [esi + eax + 0x5612d0]
mov eax, dword [ecx + 0xc]
lea esi, [eax + eax*4]
movzx ecx, word [ebx + esi*8 + 0x10]
cmp dl, 2
jne 0x4576f2
and ecx, 0xf241
or ecx, 1
mov word [ebx + esi*8 + 0x10], cx
jmp 0x4566e4
movzx eax, dl
and ecx, 0xf244
cdq
or ecx, 4
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov word [ebx + esi*8 + 0x10], cx
jmp 0x4566e4
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0044c8e0
mov ecx, dword [ebp - 0x284]
xor eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
cdq
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x457775
push edx
push eax
call fcn.0044cd40
mov ecx, dword [ebp - 0x28c]
add esp, 8
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edi, dword [ebp - 0x284]
mov dword [ecx], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x290]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
lea ecx, [ebx + eax*8]
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x45780e
xor edx, edx
call fcn.0044c8e0
neg eax
mov ecx, 0x9000
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x4577f7
push 0
push eax
mov ecx, esi
call fcn.0044cd40
add esp, 8
jmp 0x4566e4
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 0x10], ax
jmp 0x4566e4
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4569c6
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x457865
mov ecx, esi
call fcn.0044c6e0
mov ecx, dword [ebp - 0x28c]
jmp 0x45786e
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x45c57a
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.0044c820
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4561f3
mov edi, dword [esi + 0xd0]
test edi, edi
je 0x457913
mov ecx, dword [ebp - 0x284]
mov eax, 0x66666667
sub ecx, dword [esi + 0x68]
mov edi, dword [edi + 0x18]
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 0x4597cc
bts edx, ecx
mov byte [esi + edi], dl
mov esi, dword [ebp - 0x288]
mov edi, dword [ebp - 0x284]
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x284]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [esi + 0x68]
mov edi, dword [ebp - 0x284]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x4597d8
mov ecx, edi
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x298]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0044c8e0
test eax, eax
jne 0x4597d2
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x298]
sete dl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0044c8e0
test eax, eax
je 0x4597d2
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x4597de
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
movzx eax, word [edx + eax*8 + 0x10]
test al, 1
jne 0x4597de
and eax, 0x3f
movzx eax, byte [eax + 0x564760]
cmp eax, dword [edi + 0xc]
je 0x4597de
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x457ae0
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x457ae0
mov eax, edx
mov edx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], dx
lea eax, [ebx + eax*8]
je 0x457ab0
push 0
push 0
mov ecx, eax
call fcn.0044cd40
mov ecx, dword [ebp - 0x28c]
add esp, 8
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edi, dword [ebp - 0x284]
mov edx, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [ebp - 0x284]
mov edx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], dx
lea eax, [ebx + eax*8]
je 0x457b22
mov ecx, eax
call fcn.0044c6e0
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edi, dword [ebp - 0x284]
mov edx, 1
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x4597de
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x45613b
mov eax, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x298]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x457bb5
mov ecx, eax
call fcn.0044c6e0
jmp 0x4597d2
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4597d2
mov ebx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
mov edi, dword [ebp - 0x288]
mov dword [ebp - 0x2a0], ecx
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x48]
mov dword [ebp - 0x29c], ebx
cmp eax, dword [edi + 0x1c]
je 0x457c46
cmp byte [esi + 2], 0
jne 0x457cac
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x457c1c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x457c74
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x457c74
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x457bd5
cmp byte [edi], 0
je 0x457c8b
mov ecx, esi
call fcn.00450ea0
mov edi, dword [ebp - 0x288]
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb0a
mov ecx, dword [ebp - 0x2a0]
jmp 0x457be1
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x457d45
mov ecx, esi
call fcn.00450ea0
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb0a
mov ecx, dword [ebp - 0x2a0]
jmp 0x457be1
mov ecx, esi
call fcn.00450e30
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov ecx, edi
call fcn.00443df0
mov eax, dword [edi + 0x2c]
lea ebx, [esi + 0x54]
mov edx, ebx
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.00444490
mov edi, dword [ebp - 0x288]
jmp 0x457cd9
cmp byte [esi], 3
jne 0x457dca
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x457dca
mov edx, dword [ebp - 0x298]
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 eax, dword [edx + ecx*8 + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x1c]
mov edi, dword [ebp - 0x29c]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x4c]
movzx eax, byte [eax]
mov dword [edi], eax
cmp eax, 0x80
jae 0x457cfe
mov eax, 1
jmp 0x457d0b
mov ecx, dword [esi + 0x4c]
mov edx, edi
call fcn.00430a40
movzx eax, al
mov dword [esi + 0x34], eax
xor eax, eax
mov word [esi + 0x3e], ax
mov ecx, dword [edi]
cmp dword [ebx], ecx
jae 0x457dbd
mov dword [ebx], eax
mov ebx, dword [ebp - 0x29c]
mov dword [esi + 0x4c], eax
mov eax, dword [ebx]
cmp eax, 0x18003
ja 0x457f67
cmp eax, dword [esi + 0x50]
ja 0x457f67
mov ecx, dword [ebp - 0x2a0]
movzx edx, word [esi + 0x3e]
cmp edx, ecx
ja 0x457fd0
mov edi, dword [esi + 0x34]
mov ecx, dword [ebx]
cmp edi, ecx
jae 0x457f86
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x457e04
xorps xmm0, xmm0
lea eax, [ebp - 0x120]
movups xmmword [ebp - 0x120], xmm0
push eax
movups xmmword [ebp - 0x110], xmm0
movq qword [ebp - 0x100], xmm0
mov edx, dword [ebx]
mov ecx, dword [esi + 0x2c]
call fcn.0044d440
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebx]
mov edi, dword [esi + 0x34]
mov dword [ebp - 0x3c], eax
movzx eax, word [esi + 0x3e]
jmp 0x457e06
mov eax, dword [esi + 0x4c]
mov edi, dword [esi + 0x34]
mov dword [ebp - 0x3c], eax
xor eax, eax
jmp 0x457e06
mov eax, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x298]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x457df6
mov ecx, eax
call fcn.0044c6e0
jmp 0x4566e4
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4561f3
mov eax, edx
add ecx, dword [ebp - 0x3c]
xor edx, edx
add edi, dword [ebp - 0x3c]
movzx ebx, ax
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0xd4], ecx
mov eax, dword [eax + ebx*4]
add ebx, 0x16
lea ebx, [esi + ebx*4]
nop dword [eax]
mov dword [ebp - 0x14], eax
movzx eax, byte [edi]
mov dword [ebp - 0xdc], eax
mov dword [ebx], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x24], edx
cmp eax, 0x80
jae 0x457e60
movzx eax, al
mov ecx, 1
movzx eax, byte [eax + 0x561428]
cdq
jmp 0x457e95
lea edx, [ebp - 0xdc]
mov ecx, edi
call fcn.00430a40
movzx ecx, al
mov eax, dword [ebp - 0xdc]
mov dword [ebx], eax
mov eax, dword [ebp - 0xdc]
cmp eax, 0x80
jb 0x457e8c
add eax, 0xfffffff4
shr eax, 1
jmp 0x457e93
movzx eax, byte [eax + 0x561428]
xor edx, edx
add eax, dword [ebp - 0x14]
adc edx, dword [ebp - 0x24]
add edi, ecx
mov ecx, dword [ebp - 0x1c]
add ebx, 4
mov dword [ebp - 0x14], edx
inc ecx
mov edx, dword [ebp - 0x29c]
mov dword [ebp - 0x1c], ecx
mov dword [edx + ecx*4], eax
mov edx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x2a0]
ja 0x457ed2
cmp edi, dword [ebp - 0xd4]
jb 0x457e30
mov ebx, dword [ebp - 0xd4]
jmp 0x457edc
mov ebx, dword [ebp - 0xd4]
cmp edi, ebx
jb 0x457ee9
cmp edi, ebx
ja 0x457ef4
cmp eax, dword [esi + 0x50]
jne 0x457ef4
test edx, edx
jne 0x457ef4
test edx, edx
jb 0x457f03
ja 0x457ef4
cmp eax, dword [esi + 0x50]
jbe 0x457f03
mov eax, dword [ebp - 0x29c]
cmp dword [eax], 0
jne 0x457f41
xor ecx, ecx
mov edi, ebx
sub edi, dword [ebp - 0x3c]
cmp dword [esi + 0x4c], 0
mov word [esi + 0x3e], cx
mov dword [esi + 0x34], edi
jne 0x457f33
test dword [ebp - 0x110], 0x9000
jne 0x457f28
cmp dword [ebp - 0x108], 0
je 0x457f33
lea ecx, [ebp - 0x120]
call fcn.0044c720
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0x29c]
jmp 0x457f8e
cmp dword [esi + 0x4c], 0
jne 0x457f67
test dword [ebp - 0x110], 0x9000
jne 0x457f5c
cmp dword [ebp - 0x108], 0
je 0x457f67
lea ecx, [ebp - 0x120]
call fcn.0044c720
mov edx, dword [ebp - 0x2a8]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x45c85f
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edx + eax*4]
jmp 0x4561ed
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
movzx eax, word [esi + 0x3e]
cmp eax, dword [ebp - 0x2a0]
ja 0x457fda
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x298]
cmp byte [ecx + 1], 0xf6
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jne 0x457ddf
mov edx, dword [ecx + 0x10]
mov ecx, eax
push 0x2000
call fcn.0044cfa0
add esp, 4
jmp 0x4561f3
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0xdc], ecx
mov eax, dword [ebp - 0x284]
mov edx, dword [ebp - 0x298]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x458007
mov ecx, edi
call fcn.0044c6e0
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x2a0]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebx + edx*4 + 4]
jb 0x4580c1
mov eax, dword [ebp - 0x29c]
mov ebx, dword [esi + 0x4c]
add ebx, dword [eax + edx*4]
cmp ecx, 0xc
jae 0x45803d
mov edx, ecx
mov ecx, ebx
push edi
call fcn.00450f00
add esp, 4
jmp 0x4561f3
mov al, byte [ebp - 0x2a4]
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 0x458087
mov eax, dword [ebp - 0x28c]
cmp esi, dword [eax + 0x78]
jg 0x45c9d4
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.0044c160
add esp, 4
test eax, eax
jne 0x45ae7a
mov eax, dword [edi + 8]
jmp 0x45808d
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebx
push eax
call fcn.00516430
mov eax, dword [edi + 8]
add esp, 0xc
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov eax, dword [ebp - 0xdc]
and eax, 1
mov ax, word [eax*2 + 0x5614c0]
mov word [edi + 0x10], ax
jmp 0x4561f3
mov al, byte [ebp - 0x2a4]
mov byte [edi + 0x12], al
mov eax, dword [ebp - 0x284]
mov edx, dword [ebp - 0xdc]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x4580ec
cmp edx, 0xc
jb 0x4580e8
test dl, 1
je 0x458106
test al, al
js 0x458106
cmp edx, 0x80
jb 0x4580fb
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x458102
movzx eax, byte [edx + 0x561428]
test eax, eax
jne 0x458119
push edi
mov ecx, 0x560df8
call fcn.00450f00
add esp, 4
jmp 0x4561f3
mov edx, dword [ebp - 0x28c]
cmp eax, dword [edx + 0x78]
jg 0x45c9d4
mov ecx, dword [esi + 0x2c]
push edi
push eax
mov eax, dword [ebp - 0x2a0]
mov edx, dword [ebx + eax*4]
call fcn.0044d360
mov edx, eax
add esp, 8
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov edx, dword [ebp - 0xdc]
mov ecx, dword [edi + 8]
push edi
call fcn.00450f00
mov eax, 0xbfff
add esp, 4
and word [edi + 0x10], ax
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x298]
mov dword [ebp - 0x14], edx
mov ebx, dword [edx + 4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x24], ebx
lea esi, [ecx + eax*8]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x1c], ecx
cmp ax, word [edx + 0x22]
jge 0x4561f3
lea edi, [ebx + 8]
mov dword [ebp - 0xd4], edi
nop dword [eax]
movzx eax, word [edi + 6]
test al, 0x60
je 0x4581d0
test al, 0x20
jne 0x458283
mov eax, dword [ebp - 0x284]
cmp dword [eax + 0xc], 0
jne 0x458280
push dword [ebp - 0x2a4]
mov dl, byte [edi]
mov ecx, esi
call fcn.00455c80
movzx eax, word [esi + 0x10]
add esp, 4
mov ebx, eax
test al, 1
jne case.default.0x458201
mov ecx, dword [edi - 4]
shr ecx, 4
and ecx, 0xf
lea edx, [ecx - 2]
cmp edx, 4
ja case.default.0x458201
jmp dword [edx*4 + 0x45d194]
test al, 0x10
jmp 0x458274
test al, 4
jmp 0x458274
test al, 2
jmp 0x458274
test al, 4
je 0x458272
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 0x45824f
jb 0x458237
cmp ecx, 0xffffffff
ja 0x45824f
mov eax, 0x20
or eax, ebx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [ebp - 0xd4]
jmp case.default.0x458201
mov ecx, edi
call fcn.00540460
mov eax, 8
movsd qword [esi], xmm0
or eax, ebx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [ebp - 0xd4]
jmp case.default.0x458201
test al, 0x28
je 0x45c887
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xd4], edi
cmp ecx, eax
jl 0x4581b0
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
nop dword [eax + eax]
push dword [ebp - 0x2a4]
mov dl, al
mov ecx, esi
call fcn.00455c80
add esp, 4
cmp byte [edi], 0x45
jne 0x458320
movzx ebx, word [esi + 0x10]
test bl, 4
je 0x458320
mov ecx, dword [esi]
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x458308
jb 0x4582fd
cmp ecx, 0xffffffff
ja 0x458308
and ebx, 0xfffb
or ebx, 0x20
jmp 0x45831c
mov ecx, dword [esi]
call fcn.00540460
and ebx, 0xfffb
movsd qword [esi], xmm0
or ebx, 8
mov word [esi + 0x10], bx
mov al, byte [edi + 1]
inc edi
test al, al
je 0x45c574
add esi, 0x28
jmp 0x4582c0
mov edx, dword [ebp - 0x284]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x298]
xor ecx, ecx
movlpd qword [ebp - 0xd8], xmm0
mov dword [ebp - 0x2b0], ecx
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [ebp - 0x28], xmm0
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x1c], ebx
lea eax, [eax + eax*4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x3c], eax
test edi, edi
je 0x4583c1
mov al, byte [edi]
lea esi, [ebx + 0x10]
mov ebx, dword [ebp - 0x2a4]
push ebx
lea ecx, [esi - 0x10]
mov dl, al
call fcn.00455c80
add esp, 4
cmp byte [edi], 0x45
jne 0x4583ad
movzx eax, word [esi]
test al, 4
je 0x4583ad
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
test al, al
jne 0x458388
mov ecx, dword [ebp - 0x2b0]
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x2a0], edi
lea eax, [eax*8 - 0xc]
mov dword [ebp - 0x2ac], edx
add eax, ebx
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0xd4], ebx
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ebx
movzx ebx, word [eax - 0xc]
mov dword [ebp - 0x29c], eax
test bl, 1
je 0x45841e
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [eax], ebx
mov dword [ebp - 0x2b0], ecx
jmp 0x45867b
test bl, 0x24
je 0x458599
mov esi, dword [eax - 0x1c]
mov eax, dword [eax - 0x18]
test eax, eax
jg 0x45843f
jl 0x458437
test esi, esi
jae 0x45843f
mov ecx, esi
not eax
not ecx
jmp 0x458441
mov ecx, esi
inc dword [ebp - 0x2b0]
test eax, eax
ja 0x45851c
jb 0x458456
cmp ecx, 0x7f
ja 0x45849e
mov eax, esi
xor ebx, ebx
and eax, 1
cmp eax, esi
jne 0x458483
mov esi, dword [ebp - 0x29c]
cmp ebx, dword [esi - 0x18]
jne 0x458483
mov eax, dword [ebp - 0x288]
cmp byte [eax + 0x93], 4
jb 0x458483
lea eax, [ecx + 8]
jmp 0x458667
add edx, 1
mov eax, 1
mov dword [ebp - 0x2ac], edx
adc edi, ebx
mov dword [ebp - 0x2a0], edi
jmp 0x458667
test eax, eax
ja 0x45851c
jb 0x4584ac
cmp ecx, 0x7fff
ja 0x4584c8
add edx, 2
mov eax, 2
mov dword [ebp - 0x2ac], edx
adc edi, 0
mov dword [ebp - 0x2a0], edi
jmp 0x458667
test eax, eax
ja 0x45851c
jb 0x4584d6
cmp ecx, 0x7fffff
ja 0x4584f2
add edx, 3
mov eax, 3
mov dword [ebp - 0x2ac], edx
adc edi, 0
mov dword [ebp - 0x2a0], edi
jmp 0x458667
test eax, eax
ja 0x45851c
jb 0x458500
cmp ecx, 0x7fffffff
ja 0x45851c
add edx, 4
mov eax, 4
mov dword [ebp - 0x2ac], edx
adc edi, 0
mov dword [ebp - 0x2a0], edi
jmp 0x458667
cmp eax, 0x7fff
ja 0x458546
jb 0x45852a
cmp ecx, 0xffffffff
ja 0x458546
add edx, 6
mov eax, 5
mov dword [ebp - 0x2ac], edx
adc edi, 0
mov dword [ebp - 0x2a0], edi
jmp 0x458667
add edx, 8
mov dword [ebp - 0x2ac], edx
adc edi, 0
mov dword [ebp - 0x2a0], edi
test bl, 0x20
je 0x45858f
mov ecx, dword [ebp - 0x29c]
mov edx, dword [ecx - 0x18]
mov ecx, esi
call fcn.00540460
mov eax, dword [ebp - 0x29c]
and ebx, 0xffdf
or ebx, 8
movsd qword [eax - 0x1c], xmm0
mov word [eax - 0xc], bx
mov eax, 7
jmp 0x458667
mov eax, 6
jmp 0x458667
test bl, 8
je 0x4585c2
inc ecx
mov dword [eax], 7
add edx, 8
mov dword [ebp - 0x2b0], ecx
mov dword [ebp - 0x2ac], edx
adc edi, 0
mov dword [ebp - 0x2a0], edi
jmp 0x45867b
mov edi, dword [eax - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
lea eax, [eax + edi*2]
add eax, 0xc
mov dword [ebp - 0x34], eax
test ebx, 0x400
je 0x458620
mov esi, dword [ebp - 0x29c]
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x34], eax
mov eax, edx
or eax, dword [ebp - 0x2a0]
je 0x45860b
lea ecx, [esi - 0x1c]
call fcn.0044c370
test eax, eax
jne 0x45ae7a
add edi, dword [esi - 0x1c]
jmp 0x458617
mov eax, ecx
cdq
add dword [ebp - 0x24], eax
adc dword [ebp - 0xd4], edx
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x34]
add edx, edi
mov esi, 1
mov edi, dword [ebp - 0x2a0]
mov dword [ebp - 0x2ac], edx
adc edi, 0
mov edx, eax
mov dword [ebp - 0x2a0], edi
shr edx, 7
xor ecx, ecx
mov eax, edx
or eax, ecx
je 0x45865e
nop dword [eax]
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x458650
add dword [ebp - 0x2b0], esi
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x29c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x29c]
add eax, 0xffffffe4
cmp eax, dword [ebp - 0x1c]
je 0x458697
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x2ac]
sub eax, 0x28
jmp 0x4583f4
cmp ecx, 0x7e
jle 0x4586fc
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x4586c1
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4586b3
mov eax, dword [ebp - 0x2b0]
mov edi, 1
add eax, ebx
mov dword [ebp - 0x2b0], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x4586f2
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4586e4
mov ecx, dword [ebp - 0x2b0]
cmp ebx, edi
jge 0x458703
inc ecx
mov dword [ebp - 0x2b0], ecx
mov edi, dword [ebp - 0x2ac]
mov eax, ecx
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x2a0]
cdq
mov ecx, eax
mov eax, edx
mov esi, dword [esi + 0x18]
add edi, ecx
mov dword [ebp - 0x29c], ecx
mov ecx, edi
adc ebx, eax
mov dword [ebp - 0x34], eax
add ecx, dword [ebp - 0x24]
mov eax, esi
cdq
adc ebx, dword [ebp - 0xd4]
cmp ebx, edx
jg 0x45874c
jl 0x458741
cmp ecx, eax
ja 0x45874c
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x458798
mov eax, dword [ebp - 0x28c]
mov eax, dword [eax + 0x78]
cdq
cmp ebx, edx
jg 0x45c9d4
jl 0x458768
cmp ecx, eax
ja 0x45c9d4
cmp esi, edi
jge 0x458780
mov ecx, dword [ebp - 0x3c]
mov edx, edi
push 0
call fcn.0044c160
mov edx, dword [ebp - 0x3c]
add esp, 4
jmp 0x458790
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x20]
and word [edx + 0x10], 0x2d
mov dword [edx + 8], eax
xor eax, eax
test eax, eax
jne 0x45ae7a
mov ecx, dword [ebp - 0x24]
mov eax, 0x10
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [ebp - 0xd4]
mov dword [edx + 0xc], edi
je 0x4587bc
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x2b0]
mov ebx, dword [edx + 8]
lea edi, [ebx + eax]
cmp eax, 0x80
jge 0x4587d4
mov byte [ebx], al
inc ebx
jmp 0x4587e9
push dword [ebp - 0x34]
mov ecx, ebx
push dword [ebp - 0x29c]
call fcn.00430820
add esp, 8
add ebx, eax
mov esi, dword [ebp - 0x1c]
add esi, 0xc
nop
mov edx, dword [esi + 0x10]
cmp edx, 7
ja 0x458837
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x458873
movzx edx, byte [edx + 0x561428]
mov ecx, dword [esi - 0xc]
mov eax, dword [esi - 8]
mov dword [ebp - 0xd4], edx
sub edx, 1
mov byte [edx + edi], cl
je 0x45882f
nop word [eax + eax]
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + edi], cl
jne 0x458820
add edi, dword [ebp - 0xd4]
jmp 0x458873
cmp edx, 0x80
jae 0x45884f
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x458873
mov eax, dword [esi]
test eax, eax
jle 0x458873
jmp 0x458864
push 0
push edx
mov ecx, ebx
call fcn.00430820
add ebx, eax
add esp, 8
mov eax, dword [esi]
test eax, eax
je 0x458873
push eax
push dword [esi - 4]
push edi
call fcn.00516430
add esp, 0xc
add edi, dword [esi]
mov eax, dword [ebp - 0x14]
lea eax, [eax*8 - 0x1c]
add eax, dword [ebp - 0x1c]
cmp esi, eax
je 0x45c574
add esi, 0x28
jmp 0x4587f0
mov ebx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
cmp dword [ebx + 0xc], 0
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
je 0x4588b7
mov ecx, edx
call fcn.00444eb0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x4588e1
mov ecx, dword [ebp - 0x28c]
lea eax, [ebp - 0x80]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x80], xmm0
call fcn.0044a110
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x458907
call fcn.00455e00
mov ecx, eax
jmp 0x458910
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x80]
mov dword [ecx], eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x28c]
cmp dword [ecx + 0x128], 0
jne 0x45caf9
mov esi, dword [ebp - 0x2c4]
cmp dword [ebp - 0x2c8], esi
jb 0x45c57a
mov ebx, dword [ebp - 0x2bc]
mov edi, dword [ebp - 0x290]
ja 0x458960
cmp edi, ebx
jb 0x45c57a
nop word [eax + eax]
mov eax, dword [ecx + 0x170]
test eax, eax
je 0x45c57a
add ebx, dword [ecx + 0x178]
push dword [ecx + 0x174]
adc esi, 0
mov dword [ebp - 0x2bc], ebx
mov dword [ebp - 0x2c4], esi
call eax
add esp, 4
test eax, eax
jne 0x45cae7
mov ecx, dword [ebp - 0x28c]
cmp dword [ebp - 0x2c8], esi
ja 0x458960
jb 0x4561f3
cmp edi, ebx
jae 0x458960
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [ebp - 0x29c], eax
test eax, eax
jne 0x458aa6
cmp dword [ecx + 0xc4], eax
jg 0x45c8d3
test ebx, ebx
jne 0x4589e1
xor esi, esi
jmp 0x4589fb
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4589e6
sub esi, ecx
mov ecx, dword [ebp - 0x28c]
and esi, 0x3fffffff
mov eax, dword [ecx + 0x1f8]
xor edx, edx
add eax, dword [ecx + 0x1f4]
push eax
call fcn.004a0f20
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x28c]
lea eax, [esi + 0x21]
push edx
push eax
call fcn.0042c5b0
mov edi, eax
add esp, 8
test edi, edi
je 0x458d6f
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.00516430
mov ecx, dword [ebp - 0x28c]
add esp, 0xc
cmp byte [ecx + 0x55], 0
je 0x458a68
mov byte [ecx + 0x55], 0
mov byte [ecx + 0x5d], 1
jmp 0x458a6e
inc dword [ecx + 0x1f4]
mov eax, dword [ecx + 0x1e8]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x200]
mov dword [ecx + 0x1e8], edi
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x204]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x208]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x20c]
mov dword [edi + 0x14], eax
jmp 0x458d6f
mov esi, dword [ecx + 0x1e8]
xor edi, edi
test esi, esi
je 0x458ac7
mov ecx, dword [esi]
mov edx, ebx
call fcn.0042fba0
test eax, eax
je 0x458aec
mov esi, dword [esi + 0x18]
inc edi
test esi, esi
jne 0x458ab2
mov edi, dword [ebp - 0x288]
push ebx
push str.no_such_savepoint:__s
push edi
call fcn.0044dc30
mov edx, 1
add esp, 0xc
mov dword [ebp - 0x294], edx
jmp 0x45cb0a
mov edx, dword [ebp - 0x28c]
mov ebx, dword [ebp - 0x29c]
cmp dword [edx + 0xc4], 0
jle 0x458b0a
cmp ebx, 1
je 0x45c8eb
cmp dword [esi + 0x18], 0
jne 0x458b8b
cmp byte [edx + 0x5d], 0
je 0x458b8b
mov dword [ebp - 0x24], 1
cmp ebx, 1
jne 0x458b92
mov ecx, dword [ebp - 0x288]
mov edx, ebx
call fcn.004505c0
mov dword [ebp - 0x294], eax
test eax, eax
jne 0x45cdf4
mov eax, dword [ebp - 0x28c]
mov ecx, dword [ebp - 0x288]
mov byte [eax + 0x55], bl
call fcn.00450630
cmp eax, 5
je 0x45c90f
mov eax, dword [ebp - 0x288]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x294], edx
test edx, edx
je 0x458b7c
mov eax, dword [ebp - 0x28c]
mov byte [eax + 0x55], 0
jmp 0x458ca4
mov edx, dword [ebp - 0x28c]
mov byte [edx + 0x5d], 0
jmp 0x458cb2
mov dword [ebp - 0x24], 0
mov ecx, dword [edx + 0x1f4]
mov eax, dword [edx + 0x14]
sub ecx, edi
dec ecx
mov dword [ebp - 0x1c], ecx
cmp ebx, 2
jne 0x458c0c
mov edx, dword [edx + 0x18]
xor ebx, ebx
and edx, 1
mov dword [ebp - 0xd4], edx
test eax, eax
jle 0x458c14
mov ecx, edx
xor ecx, 1
xor edi, edi
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x28c]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.00443940
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x28c]
inc ebx
mov ecx, dword [ebp - 0x14]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x458bc2
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xd4]
jmp 0x458c14
xor edx, edx
mov dword [ebp - 0xd4], edx
xor ebx, ebx
test eax, eax
jle 0x458c60
mov eax, dword [ebp - 0x28c]
xor edi, edi
mov edx, dword [ebp - 0x29c]
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.00443c00
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x28c]
inc ebx
mov ecx, dword [ebp - 0x1c]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x458c22
mov edx, dword [ebp - 0xd4]
test edx, edx
je 0x458c95
mov ebx, dword [ebp - 0x28c]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x458c8a
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 0x458c71
mov ecx, ebx
call fcn.00473ac0
or dword [ebx + 0x18], 1
mov edx, dword [ebp - 0x294]
mov ebx, dword [ebp - 0x29c]
mov edi, dword [ebp - 0x1c]
test edx, edx
jne 0x45cb04
mov edx, dword [ebp - 0x28c]
mov ecx, dword [edx + 0x1e8]
cmp ecx, esi
je 0x458cf0
mov ebx, dword [ebp - 0x28c]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1e8], eax
call fcn.0042c2b0
mov ecx, dword [ebx + 0x1e8]
dec dword [ebx + 0x1f4]
cmp ecx, esi
jne 0x458cc2
mov ebx, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x28c]
cmp ebx, 1
jne 0x458d1f
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x28c]
mov dword [edx + 0x1e8], eax
mov edx, esi
call fcn.0042c2b0
cmp dword [ebp - 0x24], 0
jne 0x458d6f
mov edx, dword [ebp - 0x28c]
dec dword [edx + 0x1f4]
jmp 0x458d4e
cmp dword [ebp - 0x24], 0
mov eax, dword [esi + 8]
mov dword [edx + 0x200], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x204], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x208], eax
mov eax, dword [esi + 0x14]
mov dword [edx + 0x20c], eax
je 0x458d4e
cmp ebx, 2
jne 0x458d6f
mov ecx, dword [ebp - 0x28c]
mov edx, ebx
push edi
call fcn.004a0f20
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov esi, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x28c]
cmp byte [esi + 0x95], 3
je 0x45c94c
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x284]
mov dword [ebp - 0x24], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x458dd4
mov edx, dword [ecx + 0x20]
mov eax, edx
mov ecx, dword [ecx + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x45c95c
mov ecx, dword [ebp - 0x28c]
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x458eb7
lea eax, [ebp - 0x24]
mov edx, edi
push eax
mov ecx, ebx
call fcn.004428c0
mov edi, dword [ebp - 0x288]
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45c993
test byte [edi + 0x98], 0x20
je 0x458ecb
mov eax, dword [ebp - 0x284]
cmp dword [eax + 8], edx
je 0x458ecb
mov edx, dword [ebp - 0x28c]
cmp byte [edx + 0x55], 0
je 0x458e43
cmp dword [edx + 0xc0], 1
jle 0x458ecb
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x458e5f
mov eax, dword [edx + 0x1f4]
inc dword [edx + 0x1f8]
add eax, dword [edx + 0x1f8]
mov dword [edi + 0x30], eax
mov ecx, dword [ebp - 0x28c]
dec eax
push eax
xor edx, edx
call fcn.004a0f20
add esp, 4
mov dword [ebp - 0x294], eax
test eax, eax
jne 0x458e8b
mov edx, dword [edi + 0x30]
mov ecx, ebx
call fcn.00443ba0
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ecx + 0x200]
mov dword [edi + 0x48], eax
mov eax, dword [ecx + 0x204]
mov dword [edi + 0x4c], eax
mov eax, dword [ecx + 0x208]
mov dword [edi + 0x50], eax
mov eax, dword [ecx + 0x20c]
mov dword [edi + 0x54], eax
jmp 0x458ebd
mov edi, dword [ebp - 0x288]
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb0a
mov ecx, dword [ebp - 0x284]
cmp word [ecx + 2], 0
je 0x4561f3
mov eax, dword [ebp - 0x24]
cmp eax, dword [ecx + 0xc]
jne 0x458ef3
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
je 0x4561f3
mov edx, dword [edi + 0x7c]
mov ebx, dword [ebp - 0x28c]
test edx, edx
je 0x458f07
mov ecx, ebx
call fcn.0042c2b0
mov edx, str.database_schema_has_changed
mov ecx, ebx
call fcn.0042c800
mov esi, dword [ebp - 0x284]
mov dword [edi + 0x7c], eax
mov eax, dword [ebx + 0x10]
mov edx, dword [esi + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x24]
je 0x458f38
mov ecx, ebx
call fcn.00473a60
mov eax, dword [edi + 0x98]
mov edx, 0x11
and eax, 0xfffffffd
mov dword [ebp - 0x294], edx
or eax, 1
mov dword [edi + 0x98], eax
jmp 0x45cb10
mov edx, dword [ebp - 0x284]
lea eax, [ebp - 0x9c]
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.0044a000
mov eax, dword [ebp - 0x284]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x458fce
call fcn.00455e00
mov edi, dword [ebp - 0x284]
mov ecx, eax
mov eax, dword [ebp - 0x9c]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x290]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edi, dword [ebp - 0x284]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x9c]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x290]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
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.0044a060
mov edx, dword [ebp - 0x284]
add esp, 4
mov dword [ebp - 0x294], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x459061
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 - 0x28c]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.00481830
mov edx, dword [ebp - 0x284]
jmp 0x45906f
cmp eax, 2
jne 0x45906f
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x459091
mov ecx, dword [ebp - 0x28c]
xor edx, edx
call fcn.004526a0
mov esi, dword [ebp - 0x288]
and dword [esi + 0x98], 0xfffffffc
jmp 0x459097
mov esi, dword [ebp - 0x288]
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x4590f0
mov eax, dword [edi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x4590f0
mov ecx, dword [edi + 0x2c]
add edi, 0x2c
call fcn.0043fae0
jmp 0x459213
mov ecx, dword [ebp - 0x28c]
mov eax, dword [esi + 0x98]
and al, 3
cmp al, 1
je 0x45c9ca
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x1c], 0
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x24], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x14], edi
mov ecx, dword [eax + 4]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x284]
cmp dl, 0x71
jne 0x459160
mov eax, dword [eax + 0xc]
movzx ebx, word [ecx + 2]
and ebx, 8
or ebx, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x93]
jae 0x459162
mov byte [esi + 0x93], al
jmp 0x459162
xor ebx, ebx
test byte [ecx + 2], 0x10
je 0x45918c
mov ecx, dword [ebp - 0x298]
lea eax, [edi + edi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0044c990
mov edi, dword [esi]
mov ecx, dword [ebp - 0x284]
mov esi, dword [ebp - 0x288]
mov dword [ebp - 0x14], edi
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x45919f
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x1c], eax
movzx eax, word [eax + 8]
jmp 0x4591ae
cmp al, 0xfd
jne 0x4591a8
mov eax, dword [ecx + 0x10]
jmp 0x4591ae
mov eax, dword [ebp - 0xd4]
mov edx, dword [ecx + 4]
mov ecx, esi
push 0
push eax
call fcn.00455a90
mov esi, eax
add esp, 8
test esi, esi
je 0x45ae7a
push dword [esi + 0x2c]
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x34]
or dword [esi + 8], 4
mov dword [esi + 0x38], edi
lea edi, [esi + 0x2c]
push ebx
mov byte [esi + 1], al
mov byte [esi + 2], 1
call fcn.00443d80
mov dword [ebp - 0x294], eax
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x284]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x284]
mov ecx, dword [edi]
movzx edx, word [eax + 2]
and edx, 3
call fcn.0043fc90
jmp 0x459097
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, esi
movsx eax, word [edi + 0x3c]
push eax
call fcn.00455a90
mov esi, eax
add esp, 8
test esi, esi
je 0x45ae7a
or dword [esi + 8], 1
mov byte [esi + 2], 1
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x30], ecx
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, dword [esi + 8]
and ecx, 4
xor ecx, dword [esi + 8]
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.00443d80
add esp, 0xc
mov dword [ebp - 0x294], eax
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4592df
mov edx, dword [ebp - 0x298]
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], 0x55faaf
mov edx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x45932d
test byte [esi + 8], 8
jne 0x45932d
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x45932d
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.00449c70
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
jmp 0x459457
push 0
push dword [ecx + 8]
mov ecx, dword [ebp - 0x288]
call fcn.00455a90
mov esi, eax
add esp, 8
test esi, esi
je 0x45ae7a
mov eax, dword [ebp - 0x284]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx ecx, word [eax + 2]
mov eax, dword [ebp - 0x28c]
or ecx, 5
push ecx
push edi
push eax
mov ecx, dword [eax]
call fcn.00441630
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.004428c0
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x459426
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x14], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x4593fd
movzx eax, word [ecx + 2]
lea edx, [esi + 0x38]
mov ecx, dword [edi]
or eax, 2
push eax
call fcn.00449a40
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x4593f7
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [ebp - 0x14]
mov ecx, dword [edi]
push 4
call fcn.00443d80
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x294], edx
mov byte [esi + 4], 0
jmp 0x459426
push dword [esi + 0x2c]
mov ecx, dword [edi]
mov edx, 1
push 0
push 4
mov dword [esi + 0x38], 1
call fcn.00443d80
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [ebp - 0x294], edx
mov eax, dword [ebp - 0x284]
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
je 0x45945f
mov ecx, dword [edi]
call fcn.00441d80
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb04
mov byte [esi + 2], 1
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, esi
call fcn.00455a90
add esp, 8
test eax, eax
je 0x45ae80
mov edx, dword [ebp - 0x284]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [ebp - 0x28c]
call fcn.0045e4a0
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
jmp 0x45909d
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 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 esi, dword [ebp - 0x288]
mov dword [edx + 0x1c], eax
je 0x4597d2
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, esi
call fcn.00455a90
add esp, 8
test eax, eax
je 0x45ae80
mov ecx, dword [ebp - 0x284]
mov edi, dword [ebp - 0x284]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x28c]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x6320b0
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov edx, dword [esi + 0x60]
mov eax, dword [ecx + 4]
mov ecx, esi
mov edx, dword [edx + eax*4]
call fcn.0044f9e0
mov eax, dword [ebp - 0x284]
mov edi, dword [ebp - 0x284]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
xor edi, edi
mov eax, dword [esi + 0x60]
mov dword [ebp - 0xd4], edi
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov word [esi + 2], di
mov dword [esi + 0x20], edi
je 0x4596d3
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 0x10]
mov dword [ebp - 0x24], eax
and al, 0x2e
cmp al, 2
jne 0x4595f7
xor edx, edx
mov ecx, edi
call fcn.00455b90
mov ecx, edi
call fcn.0044c820
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], edx
mov word [edi + 0x10], ax
test cl, 0x24
jne 0x45969d
test cl, 8
jne 0x459672
test cl, 1
jne 0x4597cc
cmp ebx, 0x16
jae 0x4597cc
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0x2c]
call fcn.00444770
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp dword [ebp - 0x2c], 0
jne 0x4597cc
mov ecx, dword [ebp - 0x284]
cmp dword [ebp - 0xd4], 0
lea eax, [ecx + 0x14]
cmove eax, ecx
mov dword [ebp - 0x284], eax
jmp 0x4561f3
push dword [ebp - 0x1c]
movsd xmm1, qword [edi]
push dword [ebp - 0x14]
call fcn.00451640
add esp, 8
test eax, eax
jle 0x459695
test bl, 1
lea eax, [ebx - 1]
cmove eax, ebx
mov ebx, eax
jmp 0x45969d
jns 0x45969d
test bl, 1
jne 0x45969d
inc ebx
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x2c]
mov ecx, dword [esi + 0x2c]
xor edx, edx
push eax
push dword [ebp - 0x1c]
push edi
call fcn.004447e0
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov dword [ebp - 0x294], edx
mov dword [esi + 0x44], eax
test edx, edx
jne 0x45cb04
jmp 0x45976e
mov ecx, dword [esi + 0x2c]
mov edx, 2
call fcn.0044b2a0
mov ecx, dword [ebp - 0x284]
lea edx, [ebp - 0x1a8]
test eax, eax
mov eax, 1
cmovne edi, eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x1a8], eax
test bl, 1
mov ax, word [ecx + 0x10]
mov word [ebp - 0x194], ax
sete al
mov byte [ebp - 0x18e], 0
mov dword [ebp - 0xd4], edi
lea eax, [eax*2 - 1]
mov byte [ebp - 0x192], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x1a4], eax
lea eax, [ebp - 0x2c]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.00444ab0
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
test edi, edi
je 0x45976e
cmp byte [ebp - 0x18e], al
je 0x45964a
mov eax, dword [ebp - 0x2c]
cmp ebx, 0x16
jl 0x459804
test eax, eax
js 0x459791
jne 0x459785
cmp ebx, 0x17
je 0x459791
mov dword [ebp - 0x2c], 0
jmp 0x459654
mov dword [ebp - 0x2c], 0
xor edx, edx
mov ecx, dword [esi + 0x2c]
call fcn.00445060
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
je 0x45964a
cmp edx, 0x65
jne 0x45cb04
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x2c], 1
mov esi, dword [ebp - 0x288]
mov edi, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x28c]
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0x2a8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
test eax, eax
jg 0x45981f
jne 0x45980f
cmp ebx, 0x14
je 0x45981f
mov ecx, dword [esi + 0x2c]
call fcn.00444ea0
mov dword [ebp - 0x2c], eax
jmp 0x45964a
mov dword [ebp - 0x2c], 0
xor edx, edx
mov ecx, dword [esi + 0x2c]
call fcn.004451b0
jmp 0x4597a2
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 0x18]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x2c]
call fcn.00443e30
test eax, eax
je 0x45613b
mov ecx, dword [ebp - 0x284]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x210], eax
mov byte [ebp - 0x1fa], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [ebp - 0x1fc], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [ebp - 0x298]
mov dword [ebp - 0x6c], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x28c]
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x210]
mov edx, edi
push eax
call fcn.004525a0
mov edx, eax
add esp, 8
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x6c]
test eax, eax
jg 0x4598fc
je 0x4597cc
test esi, esi
jle 0x45c574
mov ecx, dword [edi + 0x2c]
dec esi
call fcn.00445060
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
je 0x459894
cmp edx, 0x65
jne 0x45cb04
mov dword [ebp - 0x294], 0
add dword [ebp - 0x284], 0x14
jmp 0x4597cc
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov edi, dword [ebp - 0x284]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x284]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x45994c
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x45618d
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
cmp dword [eax + ecx*4], 0
je 0x45c1cf
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x284]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x45613b
jmp 0x4599db
mov ecx, dword [ebp - 0x284]
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x298]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x13c], ecx
movzx eax, word [eax + 0x10]
mov word [ebp - 0x12c], ax
test ax, ax
je 0x459a44
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [ebp - 0x140], eax
lea edx, [ebp - 0x140]
mov byte [ebp - 0x12a], 0
mov ecx, dword [esi + 0x2c]
push ebx
call fcn.00444ab0
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
jmp 0x459ab1
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x459a5c
call fcn.0044c370
test eax, eax
jne 0x45ae7a
mov ecx, dword [esi + 0x30]
call fcn.00451190
mov edi, eax
test edi, edi
je 0x45ae7a
mov edx, dword [ebp - 0x13c]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.004511f0
mov byte [edi + 0x16], 0
lea ebx, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
mov edx, edi
push ebx
call fcn.00444ab0
mov ecx, dword [ebp - 0x28c]
add esp, 0xc
mov edx, edi
mov dword [ebp - 0x294], eax
call fcn.0042c2b0
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb04
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 - 0x284]
mov al, byte [eax]
cmp al, 0x1c
jne 0x459b03
mov esi, dword [ebp - 0x288]
test ecx, ecx
je 0x4597d2
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
test ecx, ecx
jne 0x4597cc
cmp al, 0x1a
jne 0x459b3d
movzx edx, word [ebp - 0x12c]
test edx, edx
je 0x45c574
mov eax, dword [ebp - 0x13c]
add eax, 0x10
test byte [eax], 1
jne 0x4597cc
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x459b27
jmp 0x4561f3
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
cmp al, 0x19
jne 0x4566f0
mov eax, edi
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
jne 0x459bf0
movups xmm0, xmmword [ebx + eax*8]
mov dl, 0x43
lea ecx, [ebp - 0xd0]
push dword [ebp - 0x2a4]
movups xmmword [ebp - 0xd0], xmm0
movups xmm0, xmmword [ebx + eax*8 + 0x10]
movups xmmword [ebp - 0xc0], xmm0
movq xmm0, qword [ebx + eax*8 + 0x20]
movq qword [ebp - 0xb0], xmm0
call fcn.00455c80
add esp, 4
test byte [ebp - 0xc0], 4
je 0x4597d2
mov edi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xcc]
jmp 0x459bfd
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 - 0x284]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x50]
push eax
push ebx
push edi
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x50], 0
call fcn.004447e0
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 - 0x50]
mov dword [esi + 0x24], eax
cmp dword [ebp - 0x50], 0
mov dword [ebp - 0x294], edx
je 0x459c6f
mov ecx, dword [ebp - 0x284]
cmp dword [ecx + 8], 0
jne 0x4597cc
mov ecx, 0x16d10
call fcn.004bdb20
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
jmp 0x4561f3
mov ebx, dword [ebp - 0x284]
mov ecx, esi
mov edx, ebx
call fcn.00455e20
mov ecx, dword [esi + 0x60]
mov edi, ebx
mov edx, dword [ebx + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x18]
mov dword [eax], ecx
mov ecx, dword [edx + 0x1c]
mov dword [eax + 4], ecx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28c]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
xorps xmm0, xmm0
mov ecx, esi
movlpd qword [ebp - 0x18], xmm0
mov dword [ebp - 0x1c], 0
call fcn.00455e20
mov ecx, dword [esi + 0x60]
mov ebx, eax
mov eax, dword [ebp - 0x284]
mov edx, dword [eax + 4]
mov edi, dword [ecx + edx*4]
test byte [edi + 8], 2
jne 0x459d5c
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x1c]
call fcn.00444770
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp dword [ebp - 0x1c], eax
je 0x459d2d
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], eax
jmp 0x459d5c
mov ecx, dword [edi + 0x2c]
call fcn.00443e40
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
cmp edx, 0x7fffffff
jl 0x459d50
jg 0x459d4a
cmp eax, 0xffffffff
jb 0x459d50
or dword [edi + 8], 2
jmp 0x459d5c
add eax, 1
mov dword [ebp - 0x18], eax
adc edx, 0
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x284]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x459df0
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x459d94
mov eax, dword [edx + 4]
test eax, eax
je 0x459d89
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x459d80
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x459da0
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x298]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0044c990
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x459dbd
cmp edx, 0x7fffffff
je 0x459e48
test byte [edi + 8], 2
jne 0x459e48
add ecx, 1
adc edx, 0
cmp dword [ebp - 0x14], edx
jg 0x459de5
jl 0x459ddb
mov eax, dword [ebp - 0x18]
cmp eax, ecx
jae 0x459de8
mov eax, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
jmp 0x459de8
mov eax, dword [ebp - 0x18]
mov dword [esi], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 4], eax
test byte [edi + 8], 2
je 0x459e52
xor esi, esi
lea eax, [ebp - 0x18]
push eax
push 8
call fcn.0042ef40
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x18], ecx
push eax
mov dword [ebp - 0x14], eax
xor edx, edx
push ecx
mov ecx, dword [edi + 0x2c]
call fcn.004447e0
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp dword [ebp - 0x1c], eax
jne 0x459e52
inc esi
cmp esi, 0x64
jl 0x459df8
mov edx, 0xd
jmp 0x45cafe
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
mov eax, dword [ebp - 0x18]
mov dword [ebx], eax
mov eax, dword [ebp - 0x14]
mov dword [ebx + 4], eax
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x24], esi
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov dword [ebp - 0x160], ecx
mov eax, dword [ebx + eax*8 + 4]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x15c], eax
jne 0x459ed6
mov eax, dword [ebp - 0x28c]
cmp dword [eax + 0xfc], 0
je 0x459ed6
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ebx, dword [edx + 0x10]
mov ecx, dword [eax + ecx*8]
mov dword [ebp - 0x14], ecx
jmp 0x459edb
xor ebx, ebx
mov dword [ebp - 0x14], ebx
movzx eax, word [edx + 2]
mov edx, eax
test al, 1
je 0x459efd
mov eax, dword [ebp - 0x288]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, dword [ebp - 0x284]
movzx edx, word [eax + 2]
movzx ecx, dx
test dl, 0x20
je 0x459f24
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0x284]
movzx ecx, word [eax + 2]
mov edx, dword [ebp - 0x298]
mov eax, dword [edx + edi*8 + 8]
mov dword [ebp - 0x158], eax
mov eax, dword [edx + edi*8 + 0xc]
mov dword [ebp - 0x14c], eax
test cl, 0x10
je 0x459f48
mov edx, dword [esi + 0x24]
jmp 0x459f4a
xor edx, edx
mov eax, dword [ebp - 0x298]
mov esi, 0x400
test word [eax + edi*8 + 0x10], si
mov esi, dword [ebp - 0x24]
je 0x459f6a
mov eax, dword [eax + edi*8]
mov dword [ebp - 0x148], eax
jmp 0x459f74
mov dword [ebp - 0x148], 0
push edx
and ecx, 0x8a
mov dword [ebp - 0x168], 0
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0x168]
call fcn.004488e0
mov edx, eax
mov byte [esi + 3], 0
add esp, 8
mov dword [ebp - 0x294], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x45cb04
test ebx, ebx
je 0x45c574
push dword [ebp - 0x15c]
mov eax, dword [ebp - 0x284]
mov ecx, 0x17
push dword [ebp - 0x160]
push dword [ebx]
test byte [eax + 2], 4
mov eax, 0x12
push dword [ebp - 0x14]
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x28c]
push dword [eax + 0xf8]
mov eax, dword [eax + 0xfc]
call eax
add esp, 0x18
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
mov ecx, dword [esi + 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 - 0x284]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x45a033
mov ebx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x45a041
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00448ef0
mov edx, eax
add esp, 8
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x45a0c1
mov eax, dword [ebp - 0x28c]
cmp dword [eax + 0xfc], 0
je 0x45a0c1
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x45a0c5
cmp byte [esi + 4], 0
je 0x45a0c5
mov ecx, dword [esi + 0x2c]
call fcn.00443e40
mov dword [esi + 0x44], edx
mov edx, dword [ebp - 0x284]
mov dword [esi + 0x40], eax
jmp 0x45a0c5
xor ebx, ebx
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.00449280
mov edx, eax
mov dword [esi + 0x20], 0
mov dword [ebp - 0x294], edx
mov dword [esi + 0x24], 0
test edx, edx
jne 0x45cb04
test byte [ebp - 0x14], 1
mov ecx, dword [ebp - 0x28c]
je 0x45c57a
mov eax, dword [ebp - 0x288]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [ecx + 0xfc]
test eax, eax
je 0x45c57a
test edi, edi
je 0x45c57a
test byte [edi + 0x1c], 0x80
jne 0x45c57a
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push ebx
push 9
push dword [ecx + 0xf8]
call eax
add esp, 0x18
jmp 0x4561f3
push dword [esi + 0x2c]
push dword [esi + 0x28]
call fcn.00452680
mov ecx, dword [ebp - 0x28c]
add esp, 8
mov eax, dword [ebp - 0x290]
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x298]
mov dword [ebp - 0x88], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x284]
push dword [eax + 0x10]
call fcn.00460630
mov edx, eax
add esp, 8
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp dword [ebp - 0x88], eax
jmp 0x456135
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x298]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.00460590
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x284]
mov edi, dword [ebp - 0x284]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28c]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ecx, esi
call fcn.00455e20
mov esi, eax
mov eax, dword [ebp - 0x284]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x288]
mov ecx, dword [eax + 0x60]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.00443e70
mov edx, dword [ebp - 0x28c]
cmp eax, dword [edx + 0x78]
ja 0x45c9d4
push esi
mov edx, eax
mov ecx, edi
call fcn.0044d440
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x284]
cmp dword [ecx + 0xc], eax
jne 0x45c574
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x45c574
mov ecx, esi
call fcn.0044c320
mov ecx, dword [ebp - 0x28c]
mov esi, dword [ebp - 0x288]
test eax, eax
jne 0x45ae86
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ecx, esi
call fcn.00455e20
mov ecx, dword [ebp - 0x284]
mov edi, eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x45a31b
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x4561f3
cmp byte [esi + 3], 0
je 0x45a35b
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0x68], ecx
mov eax, dword [esi + 0x44]
mov esi, dword [ebp - 0x288]
mov dword [ebp - 0x64], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x28c]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
cmp byte [esi], 2
jne 0x45a3c2
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0x68]
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 - 0x294], eax
mov edx, esi
mov esi, dword [ebp - 0x288]
mov ecx, esi
call fcn.00452810
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x68]
mov dword [edi], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x28c]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, esi
call fcn.00450ee0
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp byte [esi + 2], al
je 0x45a3ec
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x4561f3
mov ecx, dword [esi + 0x2c]
call fcn.00443e40
mov esi, dword [ebp - 0x288]
mov ecx, eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], edx
mov dword [edi], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x28c]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x45a46b
push 3
push 1
mov ecx, esi
call fcn.00455a90
mov ecx, dword [ebp - 0x28c]
add esp, 8
test eax, eax
je 0x45ae86
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x6320b0
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x456141
mov ecx, dword [eax + 0x2c]
call fcn.0043fae0
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x54], 0
cmp dl, 0x89
jne 0x45a4db
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.00443e30
test eax, eax
jne 0x45c574
lea edx, [ebp - 0x54]
mov ecx, edi
call fcn.00444770
mov edx, eax
mov al, byte [ebp - 0x54]
mov dword [ebp - 0x294], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x284]
cmp dword [ecx + 8], edx
jle 0x45c574
mov esi, dword [ebp - 0x288]
cmp dword [ebp - 0x54], edx
jmp 0x456135
mov ecx, dword [ebp - 0x284]
lea edx, [ebp - 0x58]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00444740
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp dword [ebp - 0x58], eax
jne 0x4597cc
mov ecx, esi
call fcn.00444eb0
test edx, edx
jl 0x45a58b
jg 0x45a569
test eax, eax
jb 0x45a58b
push edx
push eax
call fcn.00430e60
mov ecx, dword [ebp - 0x284]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x45a58b
mov dword [ebp - 0x58], 1
jmp 0x4597cc
mov esi, dword [ebp - 0x288]
cmp dword [ebp - 0x58], 0
jmp 0x456135
inc dword [esi + 0xac]
mov ecx, dword [ebp - 0x284]
lea edx, [ebp - 0x4c]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x4c], 1
cmp byte [esi], 1
jne 0x45a5c7
mov ecx, esi
call fcn.00460450
jmp 0x45a5da
mov ecx, dword [esi + 0x2c]
call fcn.00444740
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov al, byte [ebp - 0x4c]
mov byte [esi + 2], al
mov esi, dword [ebp - 0x288]
cmp dword [ebp - 0x4c], edx
jmp 0x456135
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x28c]
call fcn.004604f0
jmp 0x45a652
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.004451b0
jmp 0x45a652
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00445060
mov edx, eax
mov dword [ebp - 0x294], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x45a684
mov ecx, dword [ebp - 0x288]
mov byte [esi + 2], al
mov eax, dword [ebp - 0x284]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa4]
jmp 0x45c1cf
cmp edx, 0x65
jne 0x45cb04
mov dword [ebp - 0x294], 0
mov byte [esi + 2], 1
jmp 0x45891b
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ebx, dword [ebp - 0x298]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x284]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x45a6d8
mov eax, dword [ebp - 0x288]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x45a700
mov ecx, esi
call fcn.0044c370
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0x258], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x244], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x240], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x45a740
mov ecx, dword [edi + 0x24]
jmp 0x45a742
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x258]
and eax, 0x8a
push eax
call fcn.004488e0
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 8
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x45a7b6
mov ecx, esi
call fcn.0044c370
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov edx, esi
mov ecx, edi
call fcn.0045f5c0
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x298]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x1f0], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x1dc], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x1f0]
mov byte [ebp - 0x1da], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x1ec], eax
lea eax, [ebp - 0x98]
push eax
call fcn.00444ab0
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp dword [ebp - 0x98], eax
jne 0x45a869
mov dl, 4
mov ecx, edi
call fcn.00449280
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
cmp word [ecx + 2], 0
je 0x45a889
mov ecx, dword [ebp - 0x28c]
call fcn.004741c0
test eax, eax
je 0x45c9f2
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.00450ee0
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
cmp byte [esi + 2], al
jne 0x45a976
mov ecx, dword [ebp - 0x28c]
lea eax, [ebp - 0x78]
xorps xmm0, xmm0
movlpd qword [ebp - 0x78], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.00452430
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x284]
cmp byte [eax], 0x8d
jne 0x45a93c
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x288]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov byte [ecx + 2], dl
mov eax, dword [ebp - 0x78]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x74]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0x284]
mov byte [ecx + 3], 1
mov dword [ecx + 0x20], edx
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x28], esi
jmp 0x4561f3
mov esi, dword [ebp - 0x288]
mov edx, eax
mov ecx, esi
call fcn.00455e20
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x284]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x298]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0044ccd0
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x45613b
call fcn.00450e30
mov edx, eax
mov dword [ebp - 0x294], edx
jmp 0x45909d
mov ebx, dword [ebp - 0x284]
cmp dl, 0x29
mov eax, dword [esi + 0x60]
mov edx, dword [ebp - 0x298]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x230], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x21c], ax
sbb al, al
mov byte [ebp - 0x21a], al
mov eax, ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x22c], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.00443e70
mov esi, eax
test esi, esi
je 0x45ca10
cmp esi, 0x7fffffff
ja 0x45ca10
mov edx, dword [ebp - 0x28c]
lea ecx, [ebp - 0x280]
push 0
call fcn.0044ccb0
add esp, 4
lea eax, [ebp - 0x280]
mov edx, esi
mov ecx, edi
push eax
call fcn.0044d440
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov edx, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00451840
add esp, 8
lea ecx, [ebp - 0x280]
mov esi, eax
call fcn.0044c780
mov ecx, ebx
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
and dl, 1
cmove esi, ecx
test esi, esi
mov esi, dword [ebp - 0x288]
jg 0x4597d2
mov ecx, dword [ebp - 0x28c]
mov edi, ebx
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ebx, dword [ebp - 0x284]
mov ecx, esi
mov edx, ebx
call fcn.00455e20
mov edx, dword [ebp - 0x28c]
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov ecx, dword [edx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x45ca21
mov ebx, dword [ebx + 0xc]
lea eax, [ebp - 0x5c]
mov ecx, dword [edx + 0x10]
mov edx, dword [ebp - 0x284]
push eax
mov eax, ebx
mov dword [ebp - 0x5c], 0
add eax, eax
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00449fb0
mov dword [ebp - 0x294], eax
add esp, 4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x5c]
cdq
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x294]
mov dword [esi], eax
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x45c574
mov ecx, dword [ebp - 0x284]
mov edx, ebx
push dword [ecx + 4]
mov ecx, dword [ebp - 0x28c]
push eax
call fcn.00477040
lea ecx, [ebx + 1]
add esp, 8
mov byte [ebp - 0x2b5], cl
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
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.00449c70
mov ecx, dword [ebp - 0x284]
add esp, 4
mov edx, eax
mov dword [ebp - 0x294], edx
cmp dword [ecx + 0xc], 0
je 0x45909d
mov edx, dword [ebp - 0x38]
add dword [esi + 0x28], edx
mov eax, dword [ebp - 0x34]
adc dword [esi + 0x2c], eax
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x459097
mov ebx, dword [ebp - 0x298]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], edx
mov eax, dword [ebp - 0x34]
adc dword [ebx + ecx*8 + 4], eax
jmp 0x459097
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x45ac28
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x28c]
call fcn.0045e9c0
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ecx + 0x2c]
call fcn.00449d30
mov edx, eax
mov dword [ebp - 0x294], edx
jmp 0x45909d
mov edx, dword [ebp - 0x284]
mov ecx, esi
call fcn.00455e20
mov edx, dword [ebp - 0x284]
mov esi, eax
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x84], 0
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
shl ecx, 4
lea edx, [ebp - 0x84]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.00449a40
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [ebp - 0x84]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
inc byte [ecx + 0x60]
push 0
push 0
push 0
push dword [edx + 0x10]
push ecx
call fcn.00487ad0
mov ecx, dword [ebp - 0x28c]
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x294], edx
dec byte [ecx + 0x60]
test edx, edx
jne 0x45cb04
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
cmp dword [edx + 0x10], 0
mov esi, dword [edx + 4]
jne 0x45ad5a
mov ebx, dword [ebp - 0x28c]
mov ecx, esi
add ecx, ecx
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.0047b0e0
mov eax, dword [ebp - 0x284]
add esp, 4
and dword [ebx + 0x18], 0xffffffef
mov edx, esi
mov ecx, ebx
movzx eax, word [eax + 2]
push eax
mov eax, dword [ebp - 0x288]
add eax, 0x7c
push eax
call fcn.0048c4d0
mov esi, dword [ebp - 0x288]
mov ecx, ebx
mov edx, eax
add esp, 8
mov dword [ebp - 0x294], edx
or dword [ecx + 0x18], 1
and dword [esi + 0x98], 0xfffffffc
jmp 0x45ae52
mov edi, dword [ebp - 0x288]
mov dword [ebp - 0xf8], ecx
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xf0], esi
add esi, esi
lea eax, [edi + 0x7c]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xf4], eax
mov ecx, dword [ecx + esi*8 + 4]
call fcn.00441390
mov ecx, dword [ebp - 0x28c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x284]
push dword [eax + 0x10]
mov eax, dword [ecx + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ecx
call fcn.0042eb90
mov esi, eax
add esp, 0x14
test esi, esi
je 0x45ca3e
mov eax, dword [ebp - 0x28c]
lea ecx, [ebp - 0xf8]
push 0
push ecx
push fcn.0048c2e0
push esi
push eax
mov byte [eax + 0xb1], 1
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe4], 0
call fcn.00487ad0
add esp, 0x14
mov dword [ebp - 0x294], eax
test eax, eax
jne 0x45ae30
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x294], eax
test eax, eax
jne 0x45ae30
cmp dword [ebp - 0xe4], eax
jne 0x45ae30
mov ecx, 0x172fd
call fcn.004bdb20
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x28c]
mov edx, esi
call fcn.0042c2b0
mov ecx, dword [ebp - 0x28c]
mov esi, edi
mov edx, dword [ebp - 0x294]
mov byte [ecx + 0xb1], 0
test edx, edx
je 0x456141
mov edi, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x28c]
call fcn.00473ac0
mov edx, dword [ebp - 0x294]
cmp edx, 7
jne 0x45cb0a
mov esi, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x28c]
call fcn.0042c9b0
push str.out_of_memory
push esi
call fcn.0044dc30
add esp, 8
mov edx, 7
jmp 0x45cafe
mov edx, dword [ebp - 0x284]
mov edx, dword [edx + 4]
call fcn.004719a0
mov edx, eax
mov dword [ebp - 0x294], edx
jmp 0x45909d
mov edx, dword [ebp - 0x284]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00474010
mov ecx, dword [ebp - 0x28c]
add esp, 4
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00473910
mov ecx, dword [ebp - 0x28c]
add esp, 4
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.0049a2f0
mov ecx, dword [ebp - 0x28c]
add esp, 4
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 - 0x94]
push eax
mov eax, dword [ebx + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x28c]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.0044ab40
add esp, 0x10
mov ecx, edi
mov ebx, eax
call fcn.0044ccd0
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x45afe7
test ebx, ebx
je 0x45ae7a
mov ecx, dword [ebp - 0x298]
dec eax
cdq
push fcn.0042c1f0
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov edx, ebx
push 0xffffffffffffffff
mov ecx, edi
call fcn.0044d060
add esp, 0x10
movzx edx, byte [ebp - 0x2a4]
mov ecx, edi
call fcn.0044c140
jmp 0x45891b
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 0x45b02b
mov ecx, esi
call fcn.0044ce70
test eax, eax
jne 0x45ae7a
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [ebx + edi*8]
call fcn.00437150
add esp, 8
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
je 0x45b098
mov ecx, dword [esi + 8]
lea edx, [ebp - 0xa8]
call fcn.004374b0
test eax, eax
je 0x45b098
mov eax, dword [ebp - 0x284]
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0044cd70
add esp, 8
jmp 0x45891b
mov ecx, esi
call fcn.0044ccd0
jmp 0x45c1cf
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x298]
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 0x45b0de
mov ecx, esi
call fcn.0044ce70
test eax, eax
jne 0x45ae7a
mov edx, dword [ebp - 0x298]
test ebx, ebx
je 0x45b100
push dword [edx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [edx + edi*8]
mov edx, ebx
call fcn.00437510
add esp, 8
test eax, eax
jne 0x4597cc
test ebx, ebx
js 0x4561f3
mov ebx, dword [ebp - 0x298]
jmp 0x45b02b
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x298]
mov dword [ebp - 0x14], ebx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x1c], ecx
cmp word [eax + 2], 0
je 0x45b163
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x45b160
nop dword [eax]
cmp dword [eax + 0x1c], ecx
je 0x45613b
mov eax, dword [eax + 4]
test eax, eax
jne 0x45b150
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x28c]
mov eax, dword [esi + 0xd8]
cmp eax, dword [edi + 0xa0]
jge 0x45ca4d
test byte [ecx + 0x10], 0x10
jne 0x45b28e
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 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 [ebx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x45b1aa
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov ecx, edi
mov eax, ebx
cdq
push edx
push eax
call fcn.0042c540
mov edi, eax
add esp, 8
test edi, edi
je 0x45ae7a
mov ecx, dword [ebp - 0x1c]
call fcn.0044c760
mov eax, dword [ebp - 0x1c]
mov ecx, 0x1010
mov word [eax + 0x10], cx
mov dword [eax + 0xc], ebx
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x284]
sub ecx, dword [ebp - 0x2a8]
mov dword [eax + 8], edi
mov dword [eax + 0x24], 0x44f170
mov eax, dword [ebp - 0x288]
mov dword [edi], eax
mov dword [edi + 0x3c], esi
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x288]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0x58]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x38], eax
mov eax, dword [ecx + 0x60]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 0x68]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [esi*4 + 0xb]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x58]
cmp eax, ecx
je 0x45b280
mov edx, dword [ebp - 0x28c]
nop word [eax + eax]
xor esi, esi
mov dword [eax + 0x14], edx
mov word [eax + 0x10], si
add eax, 0x28
cmp eax, ecx
jne 0x45b270
mov esi, dword [ebp - 0x288]
mov eax, dword [esi + 0xd8]
jmp 0x45b291
mov edi, dword [ecx + 8]
mov ecx, dword [ebp - 0x28c]
lea edx, [edi + 0x58]
inc eax
mov dword [ebp - 0x298], edx
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0xd0]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x28]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x28]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 0x4c], eax
mov ecx, dword [esi]
mov eax, dword [ecx + 0x68]
mov dword [edi + 0x50], eax
mov eax, dword [ecx + 0x6c]
mov dword [edi + 0x54], eax
mov eax, dword [esi + 0xe4]
mov dword [edi + 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], edi
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x14], ecx
movzx eax, word [edi + 0x40]
mov dword [esi + 0x18], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [esi + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x18], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.00516f30
mov ecx, dword [ebx]
add esp, 0xc
mov dword [esi + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x2a8], ecx
add ecx, 0xffffffec
mov dword [esi + 0x6c], eax
mov dword [ebp - 0x284], ecx
jmp 0x45891b
mov edx, dword [ebp - 0x284]
mov ecx, esi
call fcn.00455e20
mov esi, eax
mov eax, dword [ebp - 0x288]
push 0x4000
mov eax, dword [eax + 0xd0]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0x284]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.0044cfa0
add esp, 4
jmp 0x4561f3
mov eax, dword [ecx + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [ebp - 0x284]
mov edi, eax
je 0x45b3e0
mov eax, dword [eax + 8]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [ebp - 0x290]
adc dword [ecx + 0x20c], edx
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x45b40a
add dword [ecx + 0x200], eax
mov eax, dword [ebp - 0x290]
adc dword [ecx + 0x204], edx
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
add dword [esi + 0x40], eax
mov eax, dword [ebp - 0x290]
adc dword [esi + 0x44], edx
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
cmp dword [edi + 4], 0
je 0x45b462
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x4566f6
mov eax, dword [ecx + 0x208]
or eax, dword [ecx + 0x20c]
je 0x4597de
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jmp 0x45b436
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x45b4a3
mov eax, dword [edx + 4]
test eax, eax
je 0x45b489
nop dword [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x45b480
mov eax, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x45b4b8
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.0044c990
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.0044c990
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x45c574
jl 0x45b4ed
cmp dword [edi], eax
jae 0x45c574
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 0x4561f3
jg 0x45b522
test ecx, ecx
je 0x4561f3
mov eax, dword [ebp - 0x284]
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 0x4597cc
mov ecx, dword [ebp - 0x284]
mov edx, ecx
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x288]
lea ebx, [eax + eax*4]
call fcn.00455e20
mov edx, dword [ebp - 0x298]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], ecx
test ecx, ecx
jl 0x45b5c9
jg 0x45b580
test eax, eax
je 0x45b5c9
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x45b591
jg 0x45b59f
test eax, eax
jne 0x45b59f
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
push eax
lea ecx, [ebp - 0x90]
call fcn.00430bc0
add esp, 8
test eax, eax
jne 0x45b5c9
mov eax, dword [ebp - 0x90]
mov dword [edi], eax
mov eax, dword [ebp - 0x8c]
mov dword [edi + 4], eax
jmp 0x4561f3
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 0x4561f3
test edx, edx
jl 0x4597cc
jg 0x45b610
test ecx, ecx
je 0x4597cc
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x4597cc
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
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 0x45b656
jg 0x45b649
test eax, eax
je 0x45b656
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
mov edi, dword [ebp - 0x284]
or eax, ecx
mov ecx, dword [ebp - 0x28c]
je 0x4597de
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov edx, dword [ebp - 0x284]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
call fcn.0042c5b0
mov esi, eax
add esp, 8
test esi, esi
je 0x45ae7a
mov edx, dword [ebp - 0x28c]
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov dword [esi + 8], 0
push 1
mov dword [esi], ecx
call fcn.0044ccb0
mov ecx, dword [ebp - 0x284]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x2a8]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x284]
sar edx, 3
mov eax, edx
mov byte [esi + 0x19], 0
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x288]
mov dword [esi + 0xc], eax
mov al, byte [ebp - 0x2a4]
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov word [ecx], 0xf1a3
mov dword [ecx + 0x10], esi
jmp 0x45b71f
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ebp - 0x298]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x14], edi
cmp dword [esi + 8], edi
je 0x45b76a
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x45b76a
mov edi, dword [ebp - 0x284]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
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 0x45b751
mov edi, dword [ebp - 0x14]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [ebp - 0x284]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x45b78b
mov eax, dword [ecx + 0x1c]
jmp 0x45b78e
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4566ea
jle 0x45b7c7
push dword [esi]
call fcn.00452ea0
add esp, 4
push eax
push 0x56a978
push dword [ebp - 0x288]
call fcn.0044dc30
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x294], eax
cmp byte [esi + 0x19], 0
je 0x45b7f6
mov eax, dword [ebp - 0x284]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x45b7ec
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.0044cd70
add esp, 8
mov edi, dword [ebp - 0x284]
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
call fcn.0044c760
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 0x294]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
test edx, edx
jne 0x45cb04
mov ecx, dword [ebp - 0x28c]
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x45b87f
push dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov ecx, esi
lea edx, [ebx + eax*8]
call fcn.0044c660
mov edi, eax
add esp, 4
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jmp 0x45b88b
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.0044c5a0
mov edi, eax
mov dword [ebp - 0x294], edi
test edi, edi
jne 0x45ca6f
movzx edx, byte [ebp - 0x2a4]
mov ecx, esi
call fcn.0044c140
jmp 0x4561f3
mov edx, dword [ebp - 0x284]
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.004bc3d0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x294], edx
test edx, edx
je 0x45b903
cmp edx, 5
jne 0x45cb04
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x284]
xor esi, esi
mov ecx, dword [ebp - 0x298]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
nop word [eax + eax]
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.0044cd70
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x45b920
jmp 0x4561f3
mov ebx, dword [ebp - 0x284]
mov ecx, esi
mov edx, ebx
call fcn.00455e20
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x14], eax
call fcn.0044a240
mov ebx, eax
mov ecx, ebx
call fcn.0043c6a0
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.0043c6b0
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.0043c320
cmp esi, 5
jne 0x45ba10
mov ecx, eax
call fcn.0042f7b0
test eax, eax
je 0x45b9b4
mov ecx, ebx
call fcn.0043c6e0
test eax, eax
jne 0x45ba10
mov esi, edi
mov eax, dword [ebp - 0x294]
test eax, eax
je 0x45b9c2
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.0043c580
mov ebx, dword [ebp - 0x1c]
mov ecx, 0x2202
mov word [ebx + 0x10], cx
mov ecx, eax
call fcn.004889c0
mov ecx, eax
mov dword [ebx + 8], eax
call fcn.0042f7b0
movzx edx, byte [ebp - 0x2a4]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0x12], 1
call fcn.0044c140
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb04
jmp 0x4561f3
cmp esi, edi
je 0x45b9b6
cmp edi, 5
je 0x45ba1e
cmp esi, 5
jne 0x45b9b6
mov eax, dword [ebp - 0x28c]
cmp byte [eax + 0x55], 0
je 0x45ca95
cmp dword [eax + 0xc0], 1
jg 0x45ca95
cmp edi, 5
jne 0x45ba62
mov edx, eax
mov ecx, ebx
call fcn.0043c900
mov dword [ebp - 0x294], eax
test eax, eax
jne 0x45b9c0
mov edx, esi
mov ecx, ebx
call fcn.0043c580
jmp 0x45ba7e
cmp edi, 4
jne 0x45ba71
lea edx, [edi - 2]
mov ecx, ebx
call fcn.0043c580
cmp dword [ebp - 0x294], 0
jne 0x45b9c0
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.0044b210
mov dword [ebp - 0x294], eax
jmp 0x45b9bc
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 8]
test eax, eax
je 0x45bab5
mov edx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jmp 0x45bab7
xor eax, eax
mov edx, dword [ebp - 0x28c]
push eax
push dword [ecx + 4]
lea ecx, [esi + 0x7c]
call fcn.0049f470
mov edx, eax
add esp, 8
mov dword [ebp - 0x294], edx
jmp 0x45909d
mov ecx, dword [ebp - 0x284]
mov eax, dword [ebp - 0x28c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00443290
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
je 0x45613b
cmp edx, 0x65
jne 0x45cb04
mov dword [ebp - 0x294], 0
jmp 0x4597d2
cmp dword [edi + 4], 0
jne 0x45bb46
mov edx, dword [edi + 8]
call fcn.004526a0
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov eax, dword [edi + 8]
inc eax
xor eax, dword [esi + 0x98]
and eax, 3
xor dword [esi + 0x98], eax
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.00443e50
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.00443e60
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov al, byte [edi + 0xc]
mov byte [ebp - 0x2cc], al
test al, al
jne 0x45bbf9
mov eax, dword [ecx + 0x20]
and eax, 0x400
mov dword [ebp - 0x18], eax
jne 0x4566f6
mov eax, dword [ebp - 0x284]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 0x284]
push dword [ebp - 0x2cc]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0044b0e0
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
test edx, edx
je 0x45613b
cmp dl, 6
jne 0x45cb04
mov eax, dword [ebp - 0x284]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.0044dc30
mov edx, dword [ebp - 0x294]
add esp, 0xc
jmp 0x45cb04
mov edx, dword [ebp - 0x284]
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.004a0df0
mov edx, eax
mov dword [ebp - 0x294], edx
test esi, esi
je 0x45bc8e
mov edx, dword [esi + 8]
mov esi, dword [ebp - 0x288]
mov ecx, esi
call fcn.00452810
jmp 0x459097
mov esi, dword [ebp - 0x288]
jmp 0x45909d
xorps xmm0, xmm0
movups xmmword [ebp - 0x1c0], xmm0
mov dword [ebp - 0x1bc], ecx
mov ecx, dword [ebp - 0x284]
movups xmmword [ebp - 0x1d0], xmm0
movq qword [ebp - 0x1b0], xmm0
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x1d0]
call fcn.0044cff0
mov dword [ebp - 0x294], eax
lea eax, [ebp - 0x1d0]
push eax
call fcn.00452ea0
add esp, 4
test eax, eax
je 0x45bd13
lea ecx, [esi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x28c]
push eax
mov eax, dword [ebp - 0x284]
mov edx, dword [eax + 4]
call fcn.004a0870
add esp, 8
mov dword [ebp - 0x294], eax
lea ecx, [ebp - 0x1d0]
call fcn.0044c760
jmp 0x459097
mov edx, dword [ebp - 0x284]
inc dword [ecx + 0xcc]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.004a0c50
mov ecx, dword [ebp - 0x28c]
mov edx, eax
add esp, 4
mov dword [ebp - 0x294], edx
dec dword [ecx + 0xcc]
test edx, edx
jne 0x45cb04
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0xd4], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x45cae0
mov edi, dword [esi]
test edi, edi
je 0x45cae0
lea eax, [ebp - 0xd4]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [ebp - 0x288]
add esp, 8
mov edx, esi
mov dword [ebp - 0x294], eax
mov ecx, ebx
call fcn.00452810
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cd08
mov eax, dword [ebp - 0xd4]
mov ecx, ebx
push 2
push edx
mov dword [eax], esi
mov eax, dword [ebp - 0x284]
mov edx, dword [eax + 4]
call fcn.00455a90
add esp, 8
test eax, eax
je 0x45cacb
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0x284]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
mov esi, ebx
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
push 0
push 8
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.0042c160
mov esi, eax
add esp, 8
test esi, esi
je 0x45ae7a
mov eax, dword [ebp - 0x284]
mov ecx, dword [edi + 0x2c]
mov edx, dword [ebp - 0x298]
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, dword [ebp - 0x288]
call fcn.00455e20
mov ecx, 1
mov edx, esi
push fcn.0042c1f0
push str.ValueList
mov word [eax + 0x10], cx
mov ecx, eax
call fcn.0044cdb0
add esp, 8
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x288]
mov esi, dword [ebp - 0x298]
add esi, 0x28
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x60]
mov edi, dword [esi + edx*8]
lea esi, [esi + edx*8]
mov ebx, dword [ebx + 0x5c]
movd xmm0, esi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0xd4], esi
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], ebx
mov eax, dword [eax]
mov dword [ebp - 0x29c], eax
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x298]
mov edx, dword [eax + edx*8]
mov dword [ebp - 0x24], edx
test edi, edi
jle 0x45c003
cmp edi, 0x10
jb 0x45bfeb
cmp dword [0x58cd3c], 2
jl 0x45bfeb
movaps xmm2, xmmword [0x5702e0]
mov eax, edi
and eax, reloc.WS2_32.dll_ntohs
jns 0x45bf2e
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x5702f0]
mov edx, edi
sub edx, eax
mov esi, 8
mov dword [ebp - 0x14], edx
lea edx, [ebx + 0x20]
mov ebx, dword [ebp - 0x14]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
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 0x45bf50
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x24]
cmp ecx, edi
jge 0x45c003
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x45bff8
mov eax, dword [ebp - 0x284]
mov esi, dword [ebp - 0x34]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [ebp - 0x3c]
push edx
push esi
mov eax, dword [edi + 0x20]
call eax
mov edx, dword [ebp - 0x29c]
add esp, 0x14
mov ecx, dword [ebp - 0x288]
mov dword [ebp - 0x294], eax
call fcn.00452810
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb04
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x2a0]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x4561f3
jmp 0x4597cc
mov edx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x298]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x45c093
mov ecx, esi
call fcn.0044ccd0
jmp 0x4561f3
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x2c]
mov ebx, dword [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0x2a4]
movups xmmword [ebp - 0x188], xmm0
mov dword [ebp - 0x188], esi
movups xmmword [ebp - 0x178], xmm0
mov byte [ebp - 0x170], al
je 0x45c0e0
mov ecx, esi
call fcn.0044ccd0
mov edx, dword [ebp - 0x284]
mov eax, 0x401
mov dword [esi], 0
jmp 0x45c0f3
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 - 0x188]
push dword [edx + 8]
push eax
mov eax, dword [ebp - 0x14]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [ebp - 0x288]
add esp, 0xc
mov edx, ebx
mov dword [ebp - 0x294], eax
mov ecx, edi
call fcn.00452810
cmp dword [ebp - 0x174], 0
jle 0x45c151
push esi
call fcn.00452ea0
add esp, 4
push eax
push 0x56a978
push edi
call fcn.0044dc30
mov eax, dword [ebp - 0x174]
add esp, 0xc
mov dword [ebp - 0x294], eax
movzx edx, byte [ebp - 0x2a4]
mov ecx, esi
call fcn.0044c140
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb0a
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x45613b
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
mov ecx, dword [ebp - 0x288]
add esp, 4
mov edx, esi
mov dword [ebp - 0x294], eax
call fcn.00452810
mov edx, dword [ebp - 0x294]
test edx, edx
jne 0x45cb04
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x45891b
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x284]
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x2a8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
mov dword [ebp - 0x284], eax
jmp 0x458921
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 - 0x284]
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x298]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.0044c140
mov edx, eax
mov dword [ebp - 0x294], edx
test edx, edx
jne 0x45cb04
mov eax, dword [esi]
push dword [ebx + 8]
push esi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x294], eax
test edi, edi
jne 0x45c270
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, esi
mov esi, dword [ebp - 0x288]
mov ecx, esi
call fcn.00452810
and dword [esi + 0x98], 0xfffffffc
jmp 0x459097
cmp byte [ecx + 0x57], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
jne 0x45ae86
mov edx, dword [ebp - 0x284]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x45cae0
mov edx, dword [ebx]
test edx, edx
je 0x45cae0
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 0x284]
mov esi, dword [esi + 8]
je 0x4561f9
mov al, byte [ecx + 0x5c]
mov ecx, dword [ebp - 0x298]
mov byte [ebp - 0x2bd], al
mov eax, dword [ebp - 0x288]
mov edi, dword [eax + 0x5c]
mov eax, dword [ebp - 0x284]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x45c30b
nop dword [eax + eax]
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x45c300
mov eax, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x28c]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x40]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov ecx, dword [ebp - 0x28c]
add esp, 0x10
mov esi, dword [ebp - 0x288]
mov edx, ebx
mov dword [ebp - 0x294], eax
mov al, byte [ebp - 0x2bd]
mov byte [ecx + 0x5c], al
mov ecx, esi
call fcn.00452810
mov edx, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x284]
test edx, edx
jne 0x45c37d
cmp dword [ecx + 4], edx
je 0x45c37d
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x40]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 0x284]
cmp dl, 0x13
jne 0x45c3d7
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x45c3d7
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x45c3be
mov ecx, dword [ebp - 0x28c]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x294], 0
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov byte [esi + 0x92], al
jmp 0x45909d
add dword [esi + 0x28], 1
adc dword [esi + 0x2c], 0
jmp 0x45909d
mov edx, dword [ebp - 0x284]
mov ecx, esi
call fcn.00455e20
mov esi, eax
mov eax, dword [ebp - 0x284]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x28c]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.00441390
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x4561f3
mov ebx, dword [ebp - 0x284]
mov ecx, esi
mov edx, ebx
call fcn.00455e20
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x28c]
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 0x45c45d
mov ecx, esi
call fcn.00441390
mov edx, eax
mov eax, ebx
mov eax, dword [eax + 0xc]
cmp edx, eax
cmovb edx, eax
mov ecx, esi
call fcn.004422a0
mov dword [edi], eax
mov dword [edi + 4], 0
jmp 0x4561f3
mov ecx, dword [ebp - 0x284]
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x14], edi
cmp dword [esi], edi
je 0x45c4d9
mov eax, dword [ebp - 0x288]
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov al, byte [ebp - 0x2a4]
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x45c4d9
mov edi, dword [ebp - 0x284]
lea edx, [esi + 0x1c]
lea edx, [edx + ecx*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 0x45c4c0
mov edi, dword [ebp - 0x14]
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 0x45c574
jle 0x45c534
push edi
call fcn.00452ea0
mov edi, dword [ebp - 0x288]
add esp, 4
push eax
push 0x56a978
push edi
call fcn.0044dc30
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x294], eax
jmp 0x45c53a
mov edi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x284]
lea edx, [edi + 0xe4]
mov ecx, dword [ebp - 0x28c]
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.00450b40
mov edx, dword [ebp - 0x294]
add esp, 8
mov dword [esi + 0x14], 0
test edx, edx
jne 0x45cb0a
jmp 0x4561f3
mov ecx, dword [ebp - 0x28c]
mov esi, dword [ebp - 0x288]
mov edi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov ecx, dword [ebp - 0x284]
mov edx, ecx
mov ebx, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
mov ecx, ebx
lea edi, [eax + eax*4]
call fcn.00455e50
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.00540630
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 0x4561f3
mov ecx, dword [ebp - 0x284]
mov edx, ecx
mov edi, dword [ebp - 0x298]
mov eax, dword [ecx + 4]
mov ecx, edi
lea ebx, [eax + eax*4]
call fcn.00455e50
mov esi, eax
mov ecx, edx
mov eax, dword [edi + ebx*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.00540630
mov edi, eax
mov eax, dword [ebp - 0x298]
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 esi, dword [ebp - 0x288]
mov edi, dword [ebp - 0x284]
shl eax, cl
mov ecx, dword [ebp - 0x28c]
test eax, edx
jne 0x45c653
inc dword [esi + 0xc4]
jmp 0x4597de
inc dword [esi + 0xc0]
mov eax, dword [ebp - 0x290]
mov edx, dword [ebp - 0x2c8]
add edi, 0x14
jmp 0x456059
mov cl, byte [ecx + 0x5e]
test cl, 0x41
je 0x45c734
cmp byte [esi + 0x93], 0xfe
je 0x45c734
mov edx, dword [ebp - 0x284]
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x45c6a1
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x45c734
test cl, 0x40
je 0x45c6d7
mov edx, eax
mov ecx, esi
call fcn.004555b0
mov esi, eax
mov eax, dword [ebp - 0x28c]
push esi
push dword [eax + 0xdc]
mov ecx, dword [eax + 0xd8]
call ecx
push esi
call fcn.0042c1f0
mov esi, dword [ebp - 0x288]
add esp, 0xc
jmp 0x45c734
mov ebx, dword [ebp - 0x28c]
push eax
cmp dword [ebx + 0xc8], 1
jle 0x45c720
push str.____s
push ebx
call fcn.0042eb90
mov ecx, dword [ebx + 0xd8]
add esp, 0xc
mov esi, eax
push esi
push dword [ebp - 0x288]
push dword [ebx + 0xdc]
push 1
call ecx
push esi
push ebx
call fcn.0042c300
mov esi, dword [ebp - 0x288]
add esp, 0x18
jmp 0x45c734
mov eax, dword [ebx + 0xd8]
push esi
push dword [ebx + 0xdc]
push 1
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x284]
mov eax, dword [ecx + 4]
cmp eax, dword [0x58a0fc]
jl 0x45c782
cmp byte [ecx], 0xb4
je 0x45613b
mov edx, 1
cmp dword [esi + 0x6c], edx
jle 0x45c780
mov eax, 0x14
nop dword [eax]
mov ecx, dword [esi + 0x68]
cmp byte [eax + ecx], 0xe
jne 0x45c771
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x6c]
jl 0x45c760
mov ecx, dword [ebp - 0x284]
xor eax, eax
inc eax
mov dword [ecx + 4], eax
inc dword [esi + 0xbc]
jmp 0x4597d2
mov edx, dword [ebp - 0x284]
mov ecx, dword [edx + 4]
mov dword [esi + 0x24], ecx
mov al, byte [edx + 8]
mov byte [esi + 0x92], al
test ecx, ecx
je 0x45c83f
movzx eax, word [edx + 2]
test ax, ax
je 0x45c7f5
push dword [eax*4 + 0x560858]
push str._s_constraint_failed
push esi
call fcn.0044dc30
mov ebx, dword [ebp - 0x284]
add esp, 0xc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x45c80c
push eax
push dword [esi + 0x7c]
push str._z:__s
push dword [ebp - 0x28c]
call fcn.0042eb90
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x45c80c
push dword [edx + 0x10]
push 0x56a978
push esi
call fcn.0044dc30
mov ebx, dword [ebp - 0x284]
add esp, 0xc
push dword [esi + 0x7c]
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x2a8]
push dword [esi + 0xc8]
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 [ebx + 4]
call fcn.0042ee60
add esp, 0x14
mov ecx, esi
call fcn.00450630
mov edi, dword [ebp - 0x288]
mov esi, eax
cmp esi, 5
jne 0x45cc72
mov dword [edi + 0x24], eax
jmp 0x45ce00
push 0x570134
push 0x1647f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0042ee60
add esp, 0x14
mov edx, 0xb
jmp 0x45cafe
mov edx, dword [ebp - 0x1c]
and eax, 0x3f
mov esi, dword [ebp - 0x24]
add edx, edx
mov edi, dword [ebp - 0x288]
movzx eax, byte [eax + 0x564760]
push dword [esi + edx*8]
mov edx, dword [ebp - 0x14]
push dword [edx]
push dword [ecx*4 + 0x58aee4]
push dword [eax*4 + 0x563378]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0044dc30
mov edx, 0xc13
add esp, 0x18
mov dword [ebp - 0x294], edx
jmp 0x45cb0a
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.0044dc30
add esp, 8
mov edx, 5
jmp 0x45cafe
mov edi, dword [ebp - 0x288]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.0044dc30
mov edx, 5
add esp, 8
mov dword [ebp - 0x294], edx
jmp 0x45cb0a
mov ecx, dword [ebp - 0x284]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x2a8]
mov esi, 5
mov edi, dword [ebp - 0x288]
imul ecx
mov ecx, dword [ebp - 0x28c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [edi + 0x24], esi
jmp 0x45ce06
mov edi, dword [ebp - 0x288]
mov esi, 0x65
jmp 0x45ce06
mov esi, dword [ebp - 0x284]
and edx, 0x100000
or edx, 0
mov edi, dword [ebp - 0x288]
je 0x45c983
mov edx, 8
mov dword [ebp - 0x294], edx
jmp 0x45cb10
mov edx, 0xb
mov dword [ebp - 0x294], edx
jmp 0x45cb10
cmp dl, 5
jne 0x45cb0a
mov ecx, dword [ebp - 0x284]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x2a8]
mov esi, dword [ebp - 0x294]
imul ecx
mov dword [edi + 0x24], esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
jmp 0x45ce00
mov edx, 0x204
jmp 0x45cafe
mov esi, dword [ebp - 0x288]
push str.string_or_blob_too_big
push esi
call fcn.0044dc30
add esp, 8
mov edx, 0x12
jmp 0x45cafe
push str.index_corruption
mov edx, 0x17134
mov ecx, 0x30b
call fcn.004bdaf0
add esp, 4
mov edx, eax
jmp 0x45cafe
mov ecx, 0x17201
call fcn.004bdb20
mov edx, eax
jmp 0x45cafe
mov edi, dword [ebp - 0x288]
mov edx, 6
mov dword [ebp - 0x294], edx
mov byte [edi + 0x92], 2
jmp 0x45cb0a
mov dword [ebp - 0x294], 7
jmp 0x45ae60
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [ebp - 0x294], 1
call fcn.0044dc30
add esp, 8
mov edx, 1
jmp 0x45cb04
push esi
call fcn.00452ea0
mov edi, dword [ebp - 0x288]
add esp, 4
push eax
push 0x56a978
push edi
call fcn.0044dc30
mov edx, dword [ebp - 0x294]
add esp, 0xc
jmp 0x45cb0a
mov edi, dword [ebp - 0x288]
mov ecx, str.out_of
cmp esi, 5
mov dword [ebp - 0x294], 1
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.0044dc30
add esp, 0xc
mov edx, 1
jmp 0x45cb0a
push dword [ebp - 0xd4]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov esi, ebx
jmp 0x45ae80
mov edx, 6
jmp 0x45cafe
or ebx, 0xffffffff
or eax, 0xffffffff
mov dword [ebp - 0x2bc], ebx
mov dword [ebp - 0x2c4], eax
mov edx, 9
mov dword [ebp - 0x294], edx
mov edi, dword [ebp - 0x288]
mov esi, dword [ebp - 0x284]
mov eax, dword [ebp - 0x28c]
cmp byte [eax + 0x57], 0
je 0x45cd0f
mov edx, 7
jmp 0x45cd23
mov eax, dword [esi + 0x1c]
mov ebx, dword [ebp - 0x284]
add eax, 2
mov edx, dword [ebp - 0x298]
or eax, 1
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esi + 0x78], eax
cmp byte [ecx + 0x57], 0
jne 0x45ae86
test byte [ecx + 0x5e], 4
je 0x45cb74
mov eax, dword [ecx + 0xd8]
push 0
push esi
push dword [ecx + 0xdc]
push 4
call eax
add esp, 0x10
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x2a8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x20], eax
mov esi, 0x64
jmp 0x45cdfa
mov ecx, dword [ebp - 0x284]
mov edx, dword [ebp - 0x28c]
mov ebx, dword [ecx + 4]
movzx eax, byte [edx + 0x55]
mov ecx, dword [ecx + 8]
cmp ebx, eax
je 0x45cc90
test ecx, ecx
je 0x45cbd3
mov esi, dword [ebp - 0x28c]
mov edx, 0x204
mov ecx, esi
call fcn.004bb540
mov al, 1
jmp 0x45cc1c
test ebx, ebx
je 0x45cbf8
cmp dword [edx + 0xc4], 0
jle 0x45cbf8
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.0044dc30
add esp, 8
mov edx, 5
jmp 0x45cafe
mov edx, 1
mov dword [ebp - 0x2cc], ebx
mov ecx, esi
call fcn.004505c0
mov esi, eax
test esi, esi
jne 0x45cdfa
mov esi, dword [ebp - 0x28c]
mov eax, ebx
mov edi, dword [ebp - 0x288]
mov ecx, edi
mov byte [esi + 0x55], al
call fcn.00450630
cmp eax, 5
jne 0x45cc6b
mov ecx, dword [ebp - 0x284]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x2a8]
mov esi, 5
imul ecx
mov ecx, dword [ebp - 0x28c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov al, 1
sub al, bl
mov byte [ecx + 0x55], al
mov dword [edi + 0x24], esi
jmp 0x45ce06
mov ecx, esi
call fcn.004baea0
cmp dword [edi + 0x24], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x294], eax
mov esi, eax
jmp 0x45ce00
test ebx, ebx
jne 0x45ccab
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.0044dc30
add esp, 8
lea edx, [ebx + 1]
jmp 0x45cafe
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 esi
call fcn.0044dc30
add esp, 8
mov edx, 1
jmp 0x45cafe
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2c8], eax
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x290], eax
jmp 0x45caf9
mov eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2c8], eax
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x290], eax
jmp 0x45ae86
mov edi, ebx
jmp 0x45cb0a
cmp edx, 0x210a
jne 0x45cd29
mov ecx, 0x17a8a
call fcn.004bdb20
mov edx, eax
mov dword [ebp - 0x294], edx
cmp dword [edi + 0x7c], 0
jne 0x45cd4d
cmp edx, 0xc0a
je 0x45cd4d
mov ecx, edx
call fcn.004bb680
push eax
push 0x56a978
push edi
call fcn.0044dc30
add esp, 0xc
mov ebx, dword [ebp - 0x294]
mov edx, ebx
mov ecx, dword [ebp - 0x28c]
mov dword [edi + 0x24], ebx
call fcn.0042f8b0
push dword [edi + 0x7c]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [ebp - 0x2a8]
push dword [edi + 0xc8]
imul ecx
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.0042ee60
add esp, 0x14
cmp byte [edi + 0x95], 2
jne 0x45cda4
mov ecx, edi
call fcn.00450630
cmp ebx, 0xc0a
jne 0x45cdd7
mov ecx, dword [ebp - 0x28c]
call fcn.0042c9b0
mov ecx, dword [ebp - 0x28c]
mov al, byte [ebp - 0x2b5]
mov esi, 1
test al, al
je 0x45ce06
movzx edx, al
dec edx
call fcn.00473a60
jmp 0x45ce00
cmp ebx, 0xb
jne 0x45cdb7
mov ecx, dword [ebp - 0x28c]
cmp byte [ecx + 0x55], 0
jne 0x45cdbd
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x45cdbd
mov esi, dword [ebp - 0x294]
mov edi, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x28c]
mov ebx, dword [ebp - 0x2c4]
nop dword [eax]
cmp dword [ebp - 0x2c8], ebx
jb 0x45ce78
mov edx, dword [ebp - 0x2bc]
ja 0x45ce28
cmp dword [ebp - 0x290], edx
jb 0x45ce78
mov eax, dword [ecx + 0x170]
test eax, eax
je 0x45ce78
add edx, dword [ecx + 0x178]
push dword [ecx + 0x174]
mov dword [ebp - 0x2bc], edx
adc ebx, 0
call eax
mov ecx, dword [ebp - 0x28c]
add esp, 4
test eax, eax
je 0x45ce10
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [ebp - 0x2bc], ebx
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x294], edx
jmp 0x45cb0a
mov ecx, dword [ebp - 0x290]
add dword [edi + 0xb4], ecx
mov ecx, edi
call fcn.0044f0d0
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c61ad
mov esp, ebp
pop ebp
ret