Function at 0x403460
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], 0xffffffff
mov ebx, dword [ebp + 0xc]
mov eax, dword [esi + 0x18]
test eax, eax
je 0x403781
xor ecx, ecx
nop word [eax + eax]
cmp eax, ecx
je 0x403781
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov eax, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0xc], 0
push edi
push edi
push str.SELECT_CREATE_TEMP__substr_sql__7__FROM_sqlite_master_WHERE_tbl_name___Q_AND_type_IN__table__trigger__ORDER_BY_type_
push ebx
lea eax, [esp + 0x60]
push eax
push dword [esi + 4]
call fcn.00402720
add esp, 0x18
nop word cs:[eax + eax]
nop
test eax, eax
mov dword [esp + 0xc], eax
jne 0x403520
push dword [esp + 0x50]
call fcn.00426830
add esp, 4
cmp eax, 0x64
jne 0x403520
push 0
push dword [esp + 0x54]
call fcn.00428220
add esp, 8
push ebx
push 0
push 0
push eax
push dword [esi + 0xc]
call fcn.0042c9a0
add esp, 0x14
jmp 0x4034e0
push dword [esp + 0x50]
call fcn.00425440
add esp, 4
cmp dword [esp + 0xc], 0
jne 0x403580
test eax, eax
mov dword [esp + 0xc], eax
jne 0x403580
push str.t592690916721053953805701627921227776
push edi
push str.ALTER_TABLE_temp._Q_RENAME_TO__Q
call fcn.0041ef10
add esp, 0xc
test eax, eax
je 0x403574
mov edi, eax
push ebx
push 0
push 0
push eax
push dword [esi + 0xc]
call fcn.0042c9a0
add esp, 0x14
mov dword [esp + 0xc], eax
push edi
call fcn.0041c220
add esp, 4
jmp 0x403580
mov dword [esp + 0xc], 7
nop dword [eax]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
cmp eax, 0x17
je 0x403600
cmp eax, 0x12
jne 0x403670
push str.t592690916721053953805701627921227776
push str.INSERT_INTO__Q_VALUES_
push 0
lea edi, [esp + 0x18]
push edi
call fcn.004028e0
add esp, 0x10
mov ecx, dword [esp + 0x14]
cmp dword [ecx], 0
jle 0x4035e3
xor esi, esi
mov ebx, 0x501917
nop
test esi, esi
mov ecx, 0x502209
cmove ecx, ebx
push ecx
push 0x50239a
push eax
push edi
call fcn.004028e0
add esp, 0x10
mov ecx, dword [esp + 0x14]
inc esi
cmp esi, dword [ecx]
jl 0x4035c0
push 0x50220c
push eax
push edi
call fcn.004028e0
add esp, 0xc
mov edi, eax
jmp 0x4036a0
push str.t592690916721053953805701627921227776
push str.UPDATE__Q_SET
push 0
lea eax, [esp + 0x18]
push eax
call fcn.004028e0
add esp, 0x10
mov ecx, dword [esp + 0x14]
mov edi, eax
cmp dword [ecx], 0
jle 0x4036a0
xor ebx, ebx
xor esi, esi
nop dword [eax + eax]
test ebx, ebx
mov eax, 0x502209
mov ecx, 0x501917
cmove eax, ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
push dword [ecx + ebx]
push eax
push str._s_Q_
push edi
lea eax, [esp + 0x1c]
push eax
call fcn.004028e0
add esp, 0x14
mov ecx, dword [esp + 0x14]
inc esi
add ebx, 0xc
mov edi, eax
cmp esi, dword [ecx]
jl 0x403630
jmp 0x4036a0
xor edi, edi
cmp dword [esp + 0xc], 0
jne 0x40370d
push str.t592690916721053953805701627921227776
push str.DELETE_FROM__Q
call fcn.0041ef10
add esp, 8
mov edi, eax
test eax, eax
je 0x403750
nop dword [eax]
cmp dword [esp + 0xc], 0
je 0x4036b0
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
jmp 0x40370d
mov dword [esp + 0x1c], 0
push 0
lea eax, [esp + 0x20]
push eax
push 0xffffffffffffffff
push edi
mov esi, dword [ebp + 8]
push dword [esi + 0xc]
call fcn.0042cf00
add esp, 0x14
mov dword [esp + 0xc], eax
push dword [esp + 0x1c]
call fcn.00425440
add esp, 4
cmp dword [esp + 0xc], 0
mov ebx, dword [ebp + 0xc]
jne 0x4036f2
test eax, eax
mov dword [esp + 0xc], eax
je 0x40370d
push dword [esi + 0xc]
call fcn.0042cf50
add esp, 4
push eax
push 0x501b14
call fcn.0041ef10
add esp, 8
mov dword [ebx], eax
push edi
call fcn.0041c220
add esp, 4
mov edi, dword [esp + 0xc]
test edi, edi
jne 0x403739
push ebx
push 0
push 0
push str.DROP_TABLE_t592690916721053953805701627921227776
push dword [esi + 0xc]
call fcn.0042c9a0
add esp, 0x14
mov edi, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
test edi, edi
jne 0x403760
mov eax, dword [eax + 8]
cmp eax, dword [esp + 0x10]
jne 0x4034a0
jmp 0x403760
xor edi, edi
mov dword [esp + 0xc], 7
jmp 0x4036a7
test edi, edi
jne 0x403773
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jne 0x403490
test edi, edi
mov dword [esp + 0x28], edi
jne 0x403b3e
jmp 0x403789
mov dword [esp + 0x28], 0
mov ecx, dword [esi + 0x14]
test ecx, ecx
jne 0x4037cc
mov dword [esp + 0x28], 0
jmp 0x403916
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov ecx, esi
push eax
push edi
call fcn.00412060
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edi, eax
test edi, edi
jne 0x40390a
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
je 0x40390a
mov eax, dword [ecx + 0x14]
xor ebx, ebx
mov dword [esp + 0x14], ecx
jmp 0x4037e8
mov dword [eax + 0x18], ebx
mov ebx, eax
mov eax, dword [eax + 0x14]
test eax, eax
je 0x403810
test ebx, ebx
je 0x4037e0
mov ecx, dword [eax + 8]
mov edx, ebx
nop word cs:[eax + eax]
nop
cmp ecx, dword [edx + 8]
je 0x4037e5
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x403800
jmp 0x4037e0
mov ecx, esi
mov esi, dword [esp + 0x14]
mov edx, esi
push 0
push ebx
call fcn.00412060
add esp, 8
mov edi, eax
test eax, eax
jne 0x403890
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x40385e
jmp 0x403890
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
push esi
push ebx
call fcn.00412060
add esp, 8
mov edi, eax
test edi, edi
jne 0x403890
mov esi, dword [esi + 0x14]
test esi, esi
je 0x403890
test ebx, ebx
je 0x403840
mov eax, dword [esi + 8]
mov ecx, ebx
nop word [eax + eax]
cmp eax, dword [ecx + 8]
je 0x403880
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x403870
jmp 0x403840
xor edi, edi
test edi, edi
je 0x403857
nop word cs:[eax + eax]
test edi, edi
jne 0x40399d
mov ecx, dword [esp + 0x14]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x403900
mov ecx, dword [ecx + 0x14]
xor edi, edi
jmp 0x4038b3
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x4037a0
mov edx, dword [ecx + 8]
test edi, edi
je 0x4038dc
mov esi, edi
nop word cs:[eax + eax]
nop
cmp edx, dword [esi + 8]
je 0x4038b0
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x4038d0
mov esi, eax
nop
cmp edx, dword [esi + 8]
je 0x4038b0
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x4038e0
mov dword [ecx + 0x18], edi
mov edi, ecx
jmp 0x4038b0
xor edi, edi
test edi, edi
je 0x4037c1
test edi, edi
mov dword [esp + 0x28], edi
jne 0x403b3e
pcmpeqd xmm0, xmm0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
cmp dword [esi], 0
je 0x4039a8
mov esi, dword [esi + 8]
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0
push 0
push eax
push 0xffffffffffffffff
push str.SELECT_max_i.seqno__FROM___sqlite_master_AS_s____pragma_index_list_s.name__AS_l____pragma_index_info_l.name__AS_i_WHERE_s.type__table
push esi
call fcn.0042cf00
add esp, 0x14
test eax, eax
je 0x4039af
mov edi, eax
mov dword [esp + 0xc], 0
push esi
call fcn.0042cf50
add esp, 4
push eax
push 0x501b14
call fcn.0041ef10
add esp, 8
mov dword [ebx], eax
push dword [esp + 0xc]
call fcn.00425440
add esp, 4
jmp 0x403b37
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
jmp 0x403b3a
xor edi, edi
jmp 0x403b37
push dword [esp + 0xc]
call fcn.00426830
add esp, 4
xor esi, esi
cmp eax, 0x64
jne 0x4039d3
push 0
push dword [esp + 0x10]
call fcn.00428070
add esp, 8
mov esi, eax
inc esi
push dword [esp + 0xc]
call fcn.00425440
add esp, 4
mov edi, eax
test esi, esi
jle 0x403b37
test edi, edi
jne 0x403b37
push 0
push 0
push 0
push str.ANALYZE__PRAGMA_writable_schema1
mov eax, dword [ebp + 8]
push dword [eax + 8]
call fcn.0042c9a0
add esp, 0x14
test eax, eax
je 0x403a1d
mov edi, eax
mov dword [esp + 0x14], 0
jmp 0x403aa5
lea eax, [esi + esi*4]
lea ebx, [eax*8 + 0x30]
push ebx
call fcn.0041c010
add esp, 4
mov edi, 7
test eax, eax
je 0x403a10
push ebx
push 0
push eax
mov edi, eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ebx, dword [ebp + 8]
xor eax, eax
cmp dword [ebx], 0x64
setne al
push 0
push 0
push 0x412520
mov dword [esp + 0x20], edi
push edi
push 1
push 2
push 0x502545
push dword [ebx + eax*8 + 4]
call fcn.00430c00
add esp, 0x20
test eax, eax
jne 0x403aa3
lea eax, [esp + 0x50]
push 0
push 0
push 0x412680
push eax
push 1
push 0
push str.sample
push dword [ebx + 4]
call fcn.00430c00
add esp, 0x20
test eax, eax
je 0x403bc8
mov edi, eax
push dword [esp + 0x2c]
call fcn.00425440
add esp, 4
push dword [esp + 0x38]
call fcn.00425440
add esp, 4
push dword [esp + 0x34]
call fcn.00425440
add esp, 4
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jle 0x403af6
lea esi, [eax + 0x28]
xor ebx, ebx
nop word [eax + eax]
push dword [esi]
call fcn.0041c220
mov eax, dword [esp + 0x18]
add esp, 4
inc ebx
add esi, 0x28
cmp ebx, dword [eax]
jl 0x403ae0
push eax
call fcn.0041c220
add esp, 4
mov esi, dword [ebp + 8]
test edi, edi
jne 0x403b1e
push 0
push 0
push 0
push str.ANALYZE_sqlite_master
push dword [esi + 8]
call fcn.0042c9a0
add esp, 0x14
mov edi, eax
push 0
push 0
push 0
push str.DROP_TABLE_IF_EXISTS_temp.t592690916721053953805701627921227776
push dword [esi + 4]
call fcn.0042c9a0
add esp, 0x14
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], edi
mov esi, dword [esi + 0x2c]
test esi, esi
je 0x403b98
mov edi, dword [ebp + 8]
lea ebx, [esp + 0x28]
mov eax, dword [edi + 0x102c]
mov edi, 0x501917
nop word [eax + eax]
mov ecx, dword [esi + 8]
mov edx, str.____stat1:
test ecx, ecx
cmove edx, edi
push ecx
push edx
push dword [esi + 4]
push str._s__s_s_n
push eax
push ebx
call fcn.004028e0
add esp, 0x18
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x102c], eax
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x403b60
mov edi, dword [esp + 0x28]
mov ebx, dword [ebp + 0xc]
test edi, edi
jne 0x403bbe
push ebx
push dword [ebp + 8]
call fcn.00402380
add esp, 8
mov edi, eax
test eax, eax
mov dword [esp + 0x28], eax
jne 0x403bbe
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [eax + 0x20], 1
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x14]
inc esi
mov dword [eax], esi
lea eax, [esp + 0x2c]
mov esi, dword [ebx + 8]
push 0
push eax
push 0xffffffffffffffff
push str.SELECT_s.rowid__s.name__l.name_FROM___sqlite_master_AS_s____pragma_index_list_s.name__AS_l_WHERE_s.type__table
push esi
call fcn.0042cf00
add esp, 0x14
test eax, eax
je 0x403bf9
mov edi, eax
mov dword [esp + 0x2c], 0
jmp 0x403c4e
mov esi, dword [ebx + 8]
lea eax, [esp + 0x38]
push 0
push eax
push 0xffffffffffffffff
push str.SELECT_name__coll_FROM_pragma_index_xinfo____WHERE_key
push esi
call fcn.0042cf00
add esp, 0x14
test eax, eax
je 0x403c23
mov edi, eax
mov dword [esp + 0x38], 0
jmp 0x403c4e
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
lea eax, [esp + 0x34]
push 0
push eax
push 0xffffffffffffffff
push str.INSERT_INTO_sqlite_stat1_VALUES_________
push esi
call fcn.0042cf00
add esp, 0x14
test eax, eax
je 0x403c6f
mov edi, eax
mov dword [esp + 0x34], 0
push esi
call fcn.0042cf50
add esp, 4
push eax
push 0x501b14
call fcn.0041ef10
add esp, 8
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x403aa5
mov ebx, 0xffffffff
mov esi, 0xfffe7960
push dword [esp + 0x2c]
call fcn.00426830
add esp, 4
cmp eax, 0x64
jne 0x404261
push 0
push dword [esp + 0x30]
call fcn.00428140
add esp, 8
mov dword [esp + 0x40], eax
mov edi, edx
push 1
push dword [esp + 0x30]
call fcn.00428220
add esp, 8
mov dword [esp + 0x3c], eax
push 2
push dword [esp + 0x30]
call fcn.00428220
add esp, 8
xor esi, dword [esp + 0x40]
xor ebx, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], edi
or esi, ebx
mov esi, dword [ebp + 8]
je 0x403d7e
mov eax, dword [esi]
cmp eax, 0x63
jg 0x403d7e
cvtsi2sd xmm0, eax
divsd xmm0, qword [0x501040]
movsd qword [esp + 0x58], xmm0
mov dword [esp + 0x50], eax
lea eax, [esp + 0x60]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
push 0
push 0
push 0
push str.DROP_TABLE_IF_EXISTS_temp.t592690916721053953805701627921227776
push dword [esi + 0xc]
call fcn.0042c9a0
add esp, 0x14
test eax, eax
jne 0x403aa3
push dword [esp + 0x3c]
push str.CREATE_TABLE_temp.t592690916721053953805701627921227776_AS_SELECT__FROM__Q
call fcn.0041ef10
add esp, 8
test eax, eax
je 0x4042d6
mov esi, eax
push 0
push 0
push 0
push eax
mov ebx, dword [ebp + 8]
push dword [ebx + 0xc]
call fcn.0042c9a0
add esp, 0x14
mov edi, eax
push esi
mov esi, ebx
call fcn.0041c220
add esp, 4
test edi, edi
jne 0x403aa5
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x44], eax
push 0
push 0xffffffffffffffff
push dword [esp + 0x38]
push 1
mov dword [esp + 0x20], ecx
push ecx
call fcn.00428dc0
add esp, 0x14
xor edi, edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
push dword [esp + 0x10]
call fcn.00426830
add esp, 4
cmp eax, 0x64
jne 0x403e74
test edi, edi
mov esi, 0x502209
mov eax, 0x501917
mov dword [esp + 0x4c], edi
cmove esi, eax
push 0
mov ebx, dword [esp + 0x14]
push ebx
call fcn.00428220
add esp, 8
mov edi, eax
push 1
push ebx
call fcn.00428220
add esp, 8
push eax
push edi
mov ebx, dword [esp + 0x20]
push ebx
push edi
push esi
push str._sx._Q_IS_rem__d__x._Q__COLLATE__s
push dword [esp + 0x64]
lea eax, [esp + 0x38]
push eax
call fcn.004028e0
add esp, 0x20
inc ebx
mov edi, eax
mov dword [esp + 0x18], ebx
push ebx
push esi
mov esi, dword [ebp + 8]
push str._s_d
push dword [esp + 0x30]
lea eax, [esp + 0x2c]
push eax
call fcn.004028e0
add esp, 0x14
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x403dc3
mov dword [esp + 0x20], eax
push dword [esp + 0x10]
call fcn.00425680
add esp, 4
xor ebx, ebx
mov dword [esp + 0x10], 0
jmp 0x403ec7
push dword [esp + 0x10]
call fcn.00425680
add esp, 4
cmp dword [esi], 0x64
jne 0x403ea7
mov bl, 1
mov dword [esp + 0x20], 0
push dword [esp + 0x24]
push dword [esp + 0x40]
push edi
push str.SELECT__s_FROM__Q_x_ORDER_BY__s
call fcn.0041ef10
add esp, 0x10
jmp 0x403ec3
mov bl, 1
mov dword [esp + 0x20], 0
push dword [esp + 0x24]
push edi
push str.SELECT__s_FROM_temp.t592690916721053953805701627921227776_x_ORDER_BY__s
call fcn.0041ef10
add esp, 0xc
mov dword [esp + 0x10], eax
push edi
call fcn.0041c220
add esp, 4
push dword [esp + 0x24]
call fcn.0041c220
add esp, 4
test bl, bl
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 0x10]
je 0x403f39
xor eax, eax
cmp dword [esi], 0x64
setne al
mov esi, dword [esi + eax*8 + 4]
push 0
lea eax, [esp + 0x10]
push eax
push 0xffffffffffffffff
push edi
push esi
call fcn.0042cf00
add esp, 0x14
mov ecx, eax
test eax, eax
je 0x403f31
mov dword [esp + 0xc], 0
push esi
mov esi, ecx
call fcn.0042cf50
add esp, 4
push eax
push 0x501b14
call fcn.0041ef10
mov ecx, esi
add esp, 8
mov dword [ebx], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ecx
push edi
call fcn.0041c220
add esp, 4
xor eax, eax
cmp dword [esp + 0x20], 0
jne 0x404229
mov ebx, dword [esp + 0x18]
lea esi, [ebx*4 + 4]
push esi
call fcn.0041c010
add esp, 4
test eax, eax
je 0x4040b1
push esi
push 0
mov dword [esp + 0x18], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
push dword [esp + 0xc]
call fcn.00426830
add esp, 4
cmp eax, 0x64
mov dword [esp + 0x20], 0
jne 0x404225
lea ecx, [ebx + 1]
xor eax, eax
cmp ecx, 7
jbe 0x403fd1
mov edx, dword [esp + 0x10]
movdqa xmm0, xmmword [0x501050]
mov eax, ecx
and eax, 0xfffffff8
mov esi, eax
add edx, 0x10
movdqu xmmword [edx - 0x10], xmm0
movdqu xmmword [edx], xmm0
add edx, 0x20
add esi, 0xfffffff8
jne 0x403fb8
mov ebx, dword [esp + 0x18]
cmp ecx, eax
je 0x403fe9
mov edx, dword [esp + 0x10]
mov ecx, ebx
sub ecx, eax
inc ecx
lea eax, [edx + eax*4]
mov dword [eax], 1
add eax, 4
dec ecx
jne 0x403fdd
push dword [esp + 0xc]
call fcn.00426830
add esp, 4
cmp eax, 0x64
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
jne 0x4040c8
mov edi, eax
lea ecx, [eax + 0x14]
mov dword [esp + 0x24], ecx
add edi, 4
jmp 0x40402d
push dword [esp + 0xc]
call fcn.00426830
add esp, 4
cmp eax, 0x64
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
jne 0x4040c8
inc esi
test ebx, ebx
mov dword [eax], esi
je 0x40404e
xor esi, esi
push esi
push dword [esp + 0x10]
call fcn.00428070
add esp, 8
test eax, eax
je 0x404050
inc esi
cmp ebx, esi
jne 0x404036
jmp 0x404012
xor esi, esi
mov eax, ebx
sub eax, esi
jbe 0x404012
cmp eax, 8
jb 0x40409d
mov ecx, dword [esp + 0x24]
mov ebx, eax
pcmpeqd xmm2, xmm2
and ebx, 0xfffffff8
lea edx, [ecx + esi*4]
add esi, ebx
mov ecx, ebx
movdqu xmm0, xmmword [edx - 0x10]
movdqu xmm1, xmmword [edx]
psubd xmm0, xmm2
psubd xmm1, xmm2
movdqu xmmword [edx - 0x10], xmm0
movdqu xmmword [edx], xmm1
add edx, 0x20
add ecx, 0xfffffff8
jne 0x40406f
cmp eax, ebx
mov ebx, dword [esp + 0x18]
je 0x404012
mov eax, ebx
lea ecx, [edi + esi*4]
sub eax, esi
inc dword [ecx]
add ecx, 4
dec eax
jne 0x4040a4
jmp 0x404012
mov dword [esp + 0x1c], 7
mov dword [esp + 0x20], 7
xor eax, eax
jmp 0x404229
push esi
push 0x50270b
call fcn.0041ef10
add esp, 8
test eax, eax
je 0x404184
cmp dword [esp + 0x18], 0
mov ebx, eax
je 0x40412e
mov edi, 1
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi*4]
mov eax, ecx
shr eax, 0x1f
add eax, ecx
sar eax, 1
add eax, esi
cdq
idiv ecx
push eax
push 0x50270e
push ebx
lea eax, [esp + 0x28]
push eax
call fcn.004028e0
add esp, 0x10
mov ebx, eax
mov eax, dword [esp + 0x1c]
cmp edi, dword [esp + 0x18]
jae 0x404126
inc edi
test eax, eax
je 0x4040ec
test eax, eax
mov dword [esp + 0x20], eax
jne 0x404196
push 0
push 0xffffffffffffffff
push dword [esp + 0x44]
push 1
mov esi, dword [esp + 0x54]
push esi
call fcn.00428dc0
add esp, 0x14
push 0
push 0xffffffffffffffff
push dword [esp + 0x38]
push 2
push esi
call fcn.00428dc0
add esp, 0x14
push 0
push 0xffffffffffffffff
push ebx
push 3
push esi
call fcn.00428dc0
add esp, 0x14
push esi
call fcn.00426830
add esp, 4
push esi
call fcn.00425680
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
jmp 0x404196
mov dword [esp + 0x1c], 7
xor ebx, ebx
mov dword [esp + 0x20], 7
push dword [esp + 0x30]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
jle 0x4041df
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
xor ecx, ecx
movzx esi, byte [eax]
lea ecx, [ecx + ecx*8]
inc eax
add ecx, esi
dec edx
jne 0x4041b4
mov eax, ecx
mov edx, 0x401005
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 9
mov edx, eax
shl edx, 0xa
sub eax, edx
add eax, ecx
jmp 0x4041e1
xor eax, eax
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + eax*4 + 0x30]
jmp 0x4041ed
mov esi, dword [esi + 0xc]
test esi, esi
je 0x40421c
mov edi, dword [esi]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, dword [esp + 0x18]
jne 0x4041ea
push dword [esp + 0x18]
push dword [esp + 0x34]
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4041ea
mov dword [esi + 8], ebx
jmp 0x404225
push ebx
call fcn.0041c220
add esp, 4
mov eax, dword [esp + 0x10]
push eax
call fcn.0041c220
add esp, 4
push dword [esp + 0xc]
call fcn.00425440
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x403aa3
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
test edi, edi
je 0x403c79
jmp 0x403aa5
mov eax, dword [ebp + 8]
cmp dword [eax], 0x64
jge 0x40429a
push 0
push 0
push 0
push str.DROP_TABLE_IF_EXISTS_temp.t592690916721053953805701627921227776
mov eax, dword [ebp + 8]
push dword [eax + 0xc]
call fcn.0042c9a0
add esp, 0x14
mov edi, eax
push dword [esp + 0x2c]
call fcn.00425440
add esp, 4
test edi, edi
jne 0x403ab1
jmp 0x4042a6
push dword [esp + 0x2c]
call fcn.00425440
add esp, 4
mov edi, eax
push dword [esp + 0x38]
call fcn.00425440
add esp, 4
test edi, edi
jne 0x403abd
mov esi, eax
push dword [esp + 0x34]
call fcn.00425440
add esp, 4
mov edi, eax
test esi, esi
cmovne edi, esi
jmp 0x403ac9
mov edi, 7
jmp 0x403aa5