Function at 0x5a68f0
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, edx
mov ebx, ecx
mov eax, dword [0x72a00c]
xor eax, ebp
mov dword [esp + 0x98], eax
cmp byte [edx + 0x55], 0
je 0x5a694a
cmp dword [esi + 0xbc], 2
jl 0x5a696d
test esi, esi
je 0x5a69f1
xor edi, edi
cmp byte [esi + 0x57], 0
jne 0x5a6c0d
mov ecx, esi
mov edx, 0x2b
push 0
call fcn.00580000
add esp, 4
jmp 0x5a69fd
test esi, esi
je 0x5a69ba
xor edi, edi
cmp byte [esi + 0x57], 0
jne 0x5a6c0d
mov ecx, esi
mov edx, 0x28
push 0
call fcn.00580000
add esp, 4
jmp 0x5a69c6
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x3c]
test ecx, ecx
mov dword [esp + 0x1c], ebx
je 0x5a6a2c
movzx ebx, word [ecx + 0x10]
mov eax, ebx
and eax, 0x3f
cmp byte [eax + 0x717e12], 3
jne 0x5a6a3a
mov eax, ebx
not eax
test eax, 0x202
mov dword [esp + 8], edx
jne 0x5a6a6a
cmp byte [ecx + 0x12], 1
jne 0x5a6a6a
mov eax, dword [ecx + 8]
jmp 0x5a6a7c
mov ecx, 0x28
xor edx, edx
call fcn.00576290
mov edi, eax
test eax, eax
je 0x5a6c0b
movsd xmm0, qword [0x718f25]
movsd qword [edi + 0x20], xmm0
movups xmm0, xmmword [0x718f15]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM_from_within_a_transaction]
jmp 0x5a6a24
mov ecx, 0x2b
xor edx, edx
call fcn.00576290
mov edi, eax
test eax, eax
je 0x5a6c0b
movups xmm0, xmmword [0x718f48]
movups xmmword [edi + 0x1b], xmm0
movups xmm0, xmmword [0x718f3d]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM___SQL_statements_in_progress]
movups xmmword [edi], xmm0
jmp 0x5a6c0d
mov dword [esp + 8], edx
mov dword [esp + 0x30], 0x704b43
jmp 0x5a6a89
test esi, esi
je 0x5a6be3
xor edi, edi
cmp byte [esi + 0x57], 0
mov ebx, dword [esp + 0x1c]
jne 0x5a6c0d
mov ecx, esi
mov edx, 0x12
push 0
call fcn.00580000
add esp, 4
mov edi, eax
jmp 0x5a6bf5
xor eax, eax
test bl, 1
jne 0x5a6a7c
xor edx, edx
inc edx
call fcn.00593420
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x30], eax
and edx, 0xfffffff8
or edx, 6
mov dword [esi + 0x3c], edx
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x50], edx
or edx, 6
mov cl, byte [esi + 0x5e]
mov byte [esp + 0x2b], cl
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x70]
mov dword [esp + 0x44], ecx
mov dword [esi + 0x18], edx
mov dword [esp + 0x54], ebx
mov edx, ebx
and edx, 0xfffffffe
mov dword [esi + 0x24], edx
mov dword [esp + 0x10], edi
and edi, 0xefffadfe
or edi, 0x201
mov dword [esi + 0x20], edi
mov byte [esi + 0x5e], 0
mov ebx, dword [ebp + 8]
shl ebx, 4
mov ecx, dword [eax + ebx + 4]
mov dword [esp + 0xc], ecx
mov edx, dword [ecx + 4]
mov edx, dword [edx]
cmp byte [edx + 0xc], 0
je 0x5a6b03
xor ecx, ecx
inc ecx
jmp 0x5a6b0c
xor ecx, ecx
cmp byte [edx + 0x10], 0
setne cl
mov dword [esp + 0x24], ecx
mov eax, dword [eax + ebx]
mov dword [esp + 0x38], eax
mov edi, dword [esi + 0x14]
push dword [esp + 0x30]
push str.ATTACH__Q_AS_vacuum_db
push dword [esp + 0x24]
push esi
call fcn.005b2350
add esp, 0x10
mov ecx, dword [esp + 8]
mov dword [esi + 0x3c], ecx
mov dword [esp + 8], eax
test eax, eax
je 0x5a6b54
mov dword [esp + 0x30], 0
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x5a6ed6
mov dword [esp + 0x20], esi
mov eax, dword [esi + 0x10]
mov dword [esp + 0x3c], edi
shl edi, 4
lea edx, [eax + edi]
mov dword [esp + 0x30], edx
mov edx, dword [eax + edi + 4]
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x18], edx
je 0x5a6c24
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
mov edi, dword [ecx + 0x40]
xor ecx, ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [edi]
test ecx, ecx
mov esi, dword [esp + 0x20]
je 0x5a6bcc
mov ecx, dword [ecx + 0x18]
call dword [section..00cfg]
lea eax, [esp + 0x60]
push eax
push edi
call ecx
add esp, 8
test eax, eax
jne 0x5a6e4b
mov eax, dword [esp + 0x60]
xor ecx, ecx
neg eax
sbb ecx, dword [esp + 0x64]
jl 0x5a6e4b
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x18]
or byte [esi + 0x18], 8
movzx ecx, byte [eax + ebx + 8]
mov edi, dword [esi + 0x20]
and edi, 0x38
or edi, ecx
mov dword [esp + 8], edi
jmp 0x5a6c2f
mov ecx, 0x12
xor edx, edx
call fcn.00576290
mov edi, eax
mov ebx, dword [esp + 0x1c]
test edi, edi
je 0x5a6c0b
movups xmm0, xmmword [str.non_text_filename]
movups xmmword [edi], xmm0
mov word [edi + 0x10], 0x65
jmp 0x5a6c0d
xor edi, edi
mov edx, dword [ebx]
test edx, edx
je 0x5a6c1a
mov ecx, esi
call fcn.0057fe10
mov dword [ebx], edi
xor esi, esi
inc esi
jmp 0x5a6f6d
xor ecx, ecx
inc ecx
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov edi, dword [ecx + 0x24]
sub edi, dword [ecx + 0x28]
movzx ecx, byte [ecx + 0x16]
cmp edi, ecx
cmovle edi, ecx
mov dword [esp + 0x34], edi
mov eax, dword [eax + ebx + 0xc]
mov ebx, dword [eax + 0x50]
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov edi, dword [eax + 0xe4]
mov dword [edi + 0x18], ebx
mov ecx, dword [0x72dd58]
test ebx, ebx
jns 0x5a6cad
mov dword [esp + 0x14], ecx
mov ecx, ebx
sar ecx, 0x1f
shld ecx, ebx, 0xa
shl ebx, 0xa
xor eax, eax
neg ebx
sbb eax, ecx
mov ecx, dword [edi + 0x24]
add ecx, dword [edi + 0x20]
mov edx, ecx
sar edx, 0x1f
push edx
push ecx
push eax
push ebx
call fcn.00690350
mov ebx, 0x3b9aca00
cmp eax, ebx
mov ecx, 0x3b9aca00
cmovb ecx, eax
test edx, edx
cmovs ebx, eax
cmove ebx, ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [edi + 0x34]
call dword [section..00cfg]
push ebx
push edi
call ecx
add esp, 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [eax + 0xe4]
mov ecx, dword [edi + 0x18]
test ecx, ecx
jns 0x5a6d10
mov edx, ecx
sar edx, 0x1f
shld edx, ecx, 0xa
shl ecx, 0xa
xor eax, eax
neg ecx
sbb eax, edx
mov edx, dword [edi + 0x24]
add edx, dword [edi + 0x20]
mov ebx, edx
sar ebx, 0x1f
push ebx
push edx
push eax
push ecx
call fcn.00690350
mov ecx, 0x3b9aca00
cmp eax, ecx
mov ebx, 0x3b9aca00
cmovb ebx, eax
test edx, edx
cmovs ecx, eax
cmove ecx, ebx
mov eax, dword [edi + 0x1c]
cmp ecx, eax
cmovg eax, ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
test eax, eax
je 0x5a6d5f
mov edi, dword [ecx + 0xe4]
jns 0x5a6d57
mov edx, eax
sar edx, 0x1f
shld edx, eax, 0xa
shl eax, 0xa
xor ecx, ecx
neg eax
sbb ecx, edx
mov edx, dword [edi + 0x24]
add edx, dword [edi + 0x20]
mov ebx, edx
sar ebx, 0x1f
push ebx
push edx
push ecx
push eax
call fcn.00690350
mov edx, dword [esp + 0x18]
mov dword [edi + 0x1c], eax
mov eax, dword [edx + 4]
mov ecx, dword [eax]
cmp byte [ecx + 0xc], 0
mov eax, dword [esp + 8]
je 0x5a6d7d
mov word [ecx + 7], 1
mov byte [ecx + 9], 0
mov dword [esp + 0x14], 0
jmp 0x5a6da4
mov edx, eax
and edx, 7
cmp edx, 3
setae bl
mov dword [esp + 0x14], ebx
setae byte [ecx + 8]
cmp edx, 4
sete byte [ecx + 9]
cmp edx, 1
sete byte [ecx + 7]
jne 0x5a6e70
mov byte [ecx + 0xa], 0
mov dl, 1
xor ebx, ebx
movzx eax, bl
shl bl, 2
xor edi, edi
cmp byte [esp + 0x14], 0
cmovne edi, eax
movzx ebx, bl
test dl, dl
mov eax, 0xc
cmovne eax, ebx
test byte [esp + 8], 0x10
cmove eax, ebx
or eax, edi
mov byte [ecx + 0xb], al
and byte [ecx + 0x15], 0xfe
mov ecx, esi
mov edx, dword [esp + 0x1c]
push str.BEGIN
call fcn.005b24a0
add esp, 4
test eax, eax
jne 0x5a6eca
xor edx, edx
mov ebx, dword [ebp + 0xc]
test ebx, ebx
sete dl
add edx, edx
mov edi, dword [esp + 0xc]
mov ecx, edi
push 0
call fcn.00577cb0
add esp, 4
mov dword [esp + 8], eax
test eax, eax
mov edx, dword [esp + 0x10]
jne 0x5a6ed6
mov eax, dword [edi + 4]
test ebx, ebx
jne 0x5a6f85
mov ecx, dword [eax]
cmp byte [ecx + 5], 5
mov ecx, dword [esp + 0x18]
jne 0x5a6f89
mov dword [esi + 0x64], 0
mov eax, dword [edi + 4]
jmp 0x5a6f89
test esi, esi
je 0x5a6e89
xor edi, edi
cmp byte [esi + 0x57], 0
mov ebx, dword [esp + 0x1c]
jne 0x5a6eb8
mov ecx, esi
mov edx, 0x1b
push 0
call fcn.00580000
add esp, 4
mov edi, eax
jmp 0x5a6e9b
test al, 8
jne 0x5a6e7c
mov byte [ecx + 0xa], 2
mov bl, 2
jmp 0x5a6e82
mov byte [ecx + 0xa], 3
mov bl, 3
xor edx, edx
jmp 0x5a6dac
mov ecx, 0x1b
xor edx, edx
call fcn.00576290
mov edi, eax
mov ebx, dword [esp + 0x1c]
test edi, edi
je 0x5a6eb6
movups xmm0, xmmword [0x718f8c]
movups xmmword [edi + 0xb], xmm0
movups xmm0, xmmword [str.output_file_already_exists]
movups xmmword [edi], xmm0
jmp 0x5a6eb8
xor edi, edi
mov edx, dword [ebx]
test edx, edx
je 0x5a6ec5
mov ecx, esi
call fcn.0057fe10
mov dword [ebx], edi
xor eax, eax
inc eax
mov dword [esp + 8], eax
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
xor ebx, ebx
mov byte [esi + 0xb0], bl
mov eax, dword [esp + 0x50]
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], edx
mov eax, dword [esp + 0x54]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x68], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x6c], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x70], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x74], eax
mov al, byte [esp + 0x2b]
mov byte [esi + 0x5e], al
mov edi, dword [edi + 4]
mov byte [edi + 0x16], bl
test byte [edi + 0x18], 2
jne 0x5a6f46
lea edx, [edi + 0x24]
mov eax, dword [edi + 0x24]
sub eax, dword [edi + 0x28]
mov ecx, dword [edi]
test eax, eax
cmovg ebx, eax
push ebx
call fcn.00581d10
add esp, 4
mov eax, dword [edi + 0x24]
movzx ecx, bx
sub eax, ecx
mov dword [edi + 0x28], eax
or byte [edi + 0x18], 2
mov byte [esi + 0x55], 1
mov edi, dword [esp + 0x30]
test edi, edi
je 0x5a6f62
mov ecx, dword [edi + 4]
call fcn.005928b0
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 0xc], eax
mov ecx, esi
call fcn.005788f0
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.0066e1f1
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x2c], eax
mov ebx, dword [ecx + 4]
mov ecx, dword [esp + 0x34]
mov byte [ebx + 0x16], cl
mov eax, dword [ebx + 0x24]
sub eax, dword [ebx + 0x28]
cmp eax, ecx
cmovle eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 8], 7
test byte [ebx + 0x18], 2
jne 0x5a6ed6
lea edx, [ebx + 0x24]
mov eax, dword [esp + 0x2c]
lea ecx, [eax - 0x200]
cmp ecx, 0xfe00
ja 0x5a704a
mov ecx, dword [esp + 0x2c]
mov eax, ecx
shr eax, 1
and eax, 0x55555555
sub ecx, eax
mov eax, 0x33333333
mov edi, ecx
and edi, eax
shr ecx, 2
and ecx, eax
add ecx, edi
mov edi, dword [esp + 0xc]
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul ecx, eax, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x5a704a
cmp dword [esp + 0x14], 0x21
mov ecx, 0x400
mov eax, dword [esp + 0x2c]
cmovb ecx, eax
cmp eax, 0x200
cmovne ecx, eax
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x5a704a
add ecx, 0xfffffffc
mov dword [ebx + 0x44], ecx
mov dword [esp + 0x2c], edx
call fcn.005864e0
mov edx, dword [esp + 0x2c]
mov dword [ebx + 0x44], 0
mov ecx, dword [ebx]
push dword [esp + 0x14]
call fcn.00581d10
add esp, 4
mov ecx, dword [ebx + 0x24]
movzx edx, word [esp + 0x14]
sub ecx, edx
mov dword [ebx + 0x28], ecx
test eax, eax
jne 0x5a6b4b
cmp dword [esp + 0x24], 0
mov edx, dword [esp + 0x10]
je 0x5a70b4
cmp byte [esi + 0x57], 0
jne 0x5a6ed6
movzx eax, byte [esi + 0x5a]
test al, al
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
jns 0x5a719f
mov eax, dword [edi + 4]
cmp byte [eax + 0x11], 0
je 0x5a719d
cmp byte [eax + 0x12], 1
mov eax, 2
sbb eax, 0
jmp 0x5a719f
mov eax, dword [esi + 0x64]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx + 4]
mov ecx, dword [esp + 0x34]
mov byte [ebx + 0x16], cl
mov eax, dword [ebx + 0x24]
sub eax, dword [ebx + 0x28]
cmp eax, ecx
cmovle eax, ecx
mov dword [esp + 0x24], eax
test byte [ebx + 0x18], 2
jne 0x5a6ed6
lea edx, [ebx + 0x24]
mov eax, dword [esp + 0x14]
lea ecx, [eax - 0x200]
cmp ecx, 0xfe00
ja 0x5a7171
mov ecx, dword [esp + 0x14]
mov eax, ecx
shr eax, 1
and eax, 0x55555555
sub ecx, eax
mov eax, 0x33333333
mov edi, ecx
and edi, eax
shr ecx, 2
and ecx, eax
add ecx, edi
mov edi, dword [esp + 0xc]
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul ecx, eax, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x5a7171
cmp dword [esp + 0x24], 0x21
mov ecx, 0x400
mov eax, dword [esp + 0x14]
cmovb ecx, eax
cmp eax, 0x200
cmovne ecx, eax
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x5a7171
add ecx, 0xfffffffc
mov dword [ebx + 0x44], ecx
mov dword [esp + 0x14], edx
call fcn.005864e0
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x44], 0
mov ecx, dword [ebx]
push dword [esp + 0x24]
call fcn.00581d10
add esp, 4
mov ecx, dword [ebx + 0x24]
movzx edx, word [esp + 0x24]
sub ecx, edx
mov dword [ebx + 0x28], ecx
test eax, eax
mov edx, dword [esp + 0x10]
jne 0x5a6ed6
jmp 0x5a7078
xor eax, eax
mov ecx, dword [ecx + 4]
test byte [ecx + 0x18], 2
je 0x5a71b2
test eax, eax
setne dl
cmp byte [ecx + 0x11], dl
jne 0x5a71bf
test eax, eax
setne byte [ecx + 0x11]
cmp eax, 2
sete byte [ecx + 0x12]
mov byte [esi + 0xb0], bl
mov ebx, dword [esp + 0x38]
push ebx
push str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typetableAND_name__sqlite_sequence_AND_coalesce_rootpage_1__0
push dword [esp + 0x24]
push esi
call fcn.005b2350
add esp, 0x10
mov dword [esp + 8], eax
test eax, eax
jne 0x5a6b4b
push ebx
push str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
push dword [esp + 0x24]
push esi
call fcn.005b2350
add esp, 0x10
mov dword [esp + 8], eax
test eax, eax
jne 0x5a6b4b
mov byte [esi + 0xb0], 0
push ebx
push str.SELECTINSERT_INTO_vacuum_db.quote_name__SELECTFROM__w_.quote_name_FROM_vacuum_db.sqlite_schema_WHERE_typetableAND_coalesce_rootpage_1__0
push dword [esp + 0x24]
push esi
call fcn.005b2350
add esp, 0x10
and byte [esi + 0x18], 0xfb
mov dword [esp + 8], eax
test eax, eax
jne 0x5a6ece
push dword [esp + 0x38]
push str.INSERT_INTO_vacuum_db.sqlite_schema_SELECTFROM___w_.sqlite_schema_WHERE_type_IN_view_trigger__OR_typetableAND_rootpage0_
push dword [esp + 0x24]
push esi
call fcn.005b2350
add esp, 0x10
mov dword [esp + 8], eax
test eax, eax
je 0x5a7260
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
jmp 0x5a6ed6
mov esi, 0xfffffffe
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
movzx edi, byte [esi + 0x719159]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + edi*4 + 0x24]
movzx eax, byte [esi + 0x71915a]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov eax, dword [ecx + 0x14]
je 0x5a72ad
mov edx, dword [eax + 0x1c]
cmp edx, dword [ecx + 0x18]
jae 0x5a72d4
mov edx, dword [eax + 0x2c]
mov dword [esp + 8], edx
test edx, edx
jne 0x5a724f
mov edx, dword [eax + 0x9c]
cmp edx, dword [eax + 0xa8]
jbe 0x5a72cd
call fcn.0058cb60
jmp 0x5a72df
call fcn.0058cf70
jmp 0x5a72df
cmp dword [eax + 0x68], 0
je 0x5a72eb
call fcn.00582500
mov dword [esp + 8], eax
test eax, eax
jne 0x5a724f
bswap ebx
add ebx, dword [esp + 0x1c]
bswap ebx
mov eax, dword [esp + 0x24]
mov dword [eax + edi*4 + 0x24], ebx
add esi, 2
cmp esi, 8
jb 0x5a7265
cmp dword [ebp + 0xc], 0
je 0x5a736f
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.00579730
mov dword [esp + 8], eax
test eax, eax
jne 0x5a724f
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.00579590
mov dword [esp + 8], eax
test eax, eax
sete cl
cmp dword [ebp + 0xc], 0
jne 0x5a7499
cmp dword [esp + 8], 0
jne 0x5a7499
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
cmp byte [eax + 0x11], 0
je 0x5a746f
cmp byte [eax + 0x12], 1
mov eax, 2
sbb eax, 0
jmp 0x5a7471
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [eax + 0x40]
cmp dword [edi], 0
je 0x5a73d1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x24]
mov ecx, dword [eax + 0x30]
mov eax, ecx
mul ebx
sar ebx, 0x1f
imul ebx, ecx
add edx, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov eax, dword [edi]
test eax, eax
je 0x5a73d1
mov ecx, dword [eax + 0x28]
call dword [section..00cfg]
lea eax, [esp + 0x58]
push eax
push 0xb
push edi
call ecx
add esp, 0xc
mov dword [esp + 8], eax
cmp eax, 0xc
je 0x5a73d1
cmp dword [esp + 8], 0
jne 0x5a745f
xorps xmm0, xmm0
lea edi, [esp + 0x60]
movaps xmmword [edi + 0x20], xmm0
movaps xmmword [edi + 0x10], xmm0
movaps xmmword [edi], xmm0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 4], eax
mov dword [edi + 0x10], 1
push 0x7fffffff
push edi
call fcn.005774b0
add esp, 8
push edi
call fcn.00579ab0
add esp, 4
mov dword [esp + 8], eax
test eax, eax
je 0x5a7441
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x5a745f
inc dword [eax + 0x6c]
mov ecx, dword [eax + 0x60]
test ecx, ecx
je 0x5a7452
mov dword [ecx + 0x10], 1
mov ecx, dword [ecx + 0x2c]
jmp 0x5a7431
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
and word [eax + 0x18], 0xfffd
jmp 0x5a730d
mov ecx, dword [eax + 0xe4]
xor edx, edx
call fcn.00589a70
cmp dword [esp + 8], 0
jne 0x5a724f
jmp 0x5a730d
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 4]
test byte [edx + 0x18], 2
je 0x5a748a
test eax, eax
setne ch
mov cl, 1
cmp byte [edx + 0x11], ch
jne 0x5a7499
test eax, eax
setne byte [edx + 0x11]
cmp eax, 2
sete byte [edx + 0x12]
mov cl, 1
cmp dword [ebp + 0xc], 0
jne 0x5a724f
test cl, cl
je 0x5a724f
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
movzx edi, byte [edx + 0x16]
mov eax, dword [edx + 0x24]
mov ecx, eax
sub ecx, dword [edx + 0x28]
cmp ecx, edi
cmovle ecx, edi
mov edx, dword [esp + 0xc]
mov ebx, dword [edx + 4]
mov byte [ebx + 0x16], cl
mov esi, dword [ebx + 0x24]
sub esi, dword [ebx + 0x28]
cmp esi, ecx
cmovle esi, ecx
mov dword [esp + 8], 8
test byte [ebx + 0x18], 2
jne 0x5a724f
lea ecx, [ebx + 0x24]
mov dword [esp + 0x1c], ecx
lea ecx, [eax - 0x200]
cmp ecx, 0xfe00
ja 0x5a7567
mov edx, eax
shr edx, 1
and edx, 0x55555555
mov ecx, eax
sub ecx, edx
mov edx, 0x33333333
mov edi, ecx
and edi, edx
shr ecx, 2
and ecx, edx
add ecx, edi
mov edx, ecx
shr edx, 4
add edx, ecx
and edx, 0xf0f0f0f
imul ecx, edx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x5a7567
cmp esi, 0x21
mov ecx, 0x400
cmovb ecx, eax
cmp eax, 0x200
cmovne ecx, eax
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x5a7567
add ecx, 0xfffffffc
mov dword [ebx + 0x44], ecx
call fcn.005864e0
mov dword [ebx + 0x44], 0
mov ecx, dword [ebx]
mov edx, dword [esp + 0x1c]
push esi
call fcn.00581d10
add esp, 4
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x24]
movzx ecx, si
sub eax, ecx
mov dword [ebx + 0x28], eax
or byte [ebx + 0x18], 2
jmp 0x5a724f