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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x100
mov dword [esp + 0x64], edx
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [esp + 0xf8], eax
mov dword [esp + 0x7c], 0
cmp byte [ecx + 0x2e], 0
jne 0x10151459
mov ebx, dword [ebp + 8]
cmp byte [ecx + 0x2b], 0
mov dword [esp + 0xc], ecx
je 0x101510dc
mov eax, dword [ebp + 0xc]
mov byte [ecx + 0x2d], 1
mov dword [esp + 0x34], 0
test ebx, ebx
jne 0x1015117f
mov edi, eax
lea esi, [esp + 0x7c]
mov edx, esi
call fcn.10013620
mov edx, eax
cmp dword [esi], 0
jne 0x10151463
mov al, 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x28], edi
test edx, edx
jne 0x10151032
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
movzx eax, word [eax + 0x42]
mov edx, eax
shl edx, 0x10
or edx, eax
and edx, 0x1fe00
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x1015045e
cmp edx, dword [ebp + 0x18]
jne 0x10151560
mov dword [esp + 0x48], edx
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 0x60]
cmp eax, dword [esp + 0x2c]
jae 0x10150f6b
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x6c], eax
xor esi, esi
inc esi
xor edx, edx
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx + esi*4 + 0x64]
cmp dword [esp + 0x2c], ebx
ja 0x101504a3
inc esi
cmp esi, 5
jne 0x1015048e
jmp 0x10150530
lea edx, [esi + 3]
mov dword [esp + 0x10], edx
cmp byte [eax + 0x2b], 0
jne 0x101504e8
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
push 0xa
push 1
push dword [esp + 0x18]
push edi
call ecx
add esp, 0x10
cmp dword [esp + 0x28], 0
je 0x101504dc
cmp eax, 5
je 0x10151626
test eax, eax
mov ecx, dword [esp + 0x1c]
jne 0x101515f9
cmp esi, 1
mov eax, 0xffffffff
cmove eax, dword [esp + 0x2c]
mov dword [ecx + esi*4 + 0x64], eax
mov eax, dword [esp + 0xc]
xor edx, edx
cmp byte [eax + 0x2b], 0
jne 0x10150498
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
push 9
push 1
push dword [esp + 0x18]
push edi
call ecx
xor edx, edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
add esp, 0x10
jmp 0x10150498
mov eax, dword [ecx + 0x60]
cmp eax, dword [esp + 0x2c]
jae 0x101514e8
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x44]
call sym.nss3.dll_sqlite3_initialize
test eax, eax
jne 0x101514f5
lea edi, [esi + 0x21]
shr edi, 0xc
lea eax, [edi + edi*4]
shl eax, 2
mov dword [esp + 0x68], esi
lea ebx, [eax + esi*2]
add ebx, 0x1c
mov ecx, ebx
xor edx, edx
call fcn.10143580
test eax, eax
mov edx, 7
je 0x10151032
mov dword [esp + 0x5c], edi
lea esi, [edi + 1]
push ebx
push 0
push eax
mov edi, eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x14], edi
mov dword [edi + 4], esi
call sym.nss3.dll_sqlite3_initialize
test eax, eax
jne 0x101514ff
mov ecx, 0x1000
mov eax, dword [esp + 0x68]
cmp eax, ecx
cmovb ecx, eax
add ecx, ecx
xor esi, esi
xor edx, edx
call fcn.10143580
mov dword [esp + 0x20], eax
test eax, eax
setne bl
mov eax, 7
cmovne eax, esi
je 0x10151136
mov ecx, dword [esp + 0x44]
add ecx, 0x22
shr ecx, 0xc
mov esi, ecx
cmp ecx, dword [esp + 0x5c]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
ja 0x10150b74
lea eax, [edx + 0x16]
mov dword [esp + 0x74], eax
cmp dword [ecx + 0x18], esi
jle 0x10151429
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
mov edx, dword [eax + esi*4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], edx
xor eax, eax
test edx, edx
je 0x10151429
lea ecx, [edx + 0x4000]
mov edi, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x44], esi
test esi, esi
mov esi, dword [esp + 0x14]
jne 0x10151523
add edx, 0x88
mov dword [esp + 0x30], edx
mov dword [esp + 0x84], edx
xor ecx, ecx
test eax, eax
jne 0x10151452
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x44], eax
jne 0x10151536
mov edi, dword [esp + 0x68]
sub edi, ecx
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*4]
lea eax, [eax + ecx*2]
add eax, 8
mov dword [esp + 0x70], eax
lea eax, [ecx + 1]
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], eax
test edi, edi
mov dword [esp + 0x60], edi
jle 0x101513d5
lea eax, [edi - 1]
movd xmm0, eax
lea eax, [edi + 7]
and eax, 0xfffffff8
pshufd xmm0, xmm0, 0
add ecx, ecx
lea ecx, [ecx + edx*4]
add ecx, dword [esp + 0x74]
xor edx, edx
movdqa xmm1, xmmword [0x101af270]
movdqa xmm2, xmmword [0x101af260]
movdqa xmm3, xmm0
movdqa xmm5, xmmword [0x101af280]
pxor xmm3, xmm5
movdqa xmm4, xmm1
pxor xmm4, xmm5
pcmpgtd xmm4, xmm3
movd ebx, xmm4
not ebx
test bl, 1
je 0x101506fe
mov word [ecx + edx*2 - 0xe], dx
pxor xmm4, xmmword [0x101af2a0]
movdqa xmm5, xmm4
psrlq xmm5, 0x10
movd ebx, xmm5
shr ebx, 0x10
test bl, 1
je 0x10150723
lea esi, [edx + 1]
mov word [ecx + edx*2 - 0xc], si
pextrw ebx, xmm4, 4
test bl, 1
je 0x10150735
lea esi, [edx + 2]
mov word [ecx + edx*2 - 0xa], si
pextrw ebx, xmm4, 6
test bl, 1
je 0x10150747
lea esi, [edx + 3]
mov word [ecx + edx*2 - 8], si
movdqa xmm4, xmm2
pxor xmm4, xmmword [0x101af280]
pcmpgtd xmm4, xmm3
pshufd xmm3, xmm4, 0x44
pxor xmm3, xmmword [0x101af2a0]
pextrw ebx, xmm3, 4
test bl, 1
je 0x10150776
lea esi, [edx + 4]
mov word [ecx + edx*2 - 6], si
pxor xmm4, xmmword [0x101af2a0]
pextrw ebx, xmm4, 2
test bl, 1
je 0x10150790
lea esi, [edx + 5]
mov word [ecx + edx*2 - 4], si
pextrw ebx, xmm4, 4
test bl, 1
je 0x101507a2
lea esi, [edx + 6]
mov word [ecx + edx*2 - 2], si
pextrw ebx, xmm4, 7
test bl, 1
je 0x101507b3
lea esi, [edx + 7]
mov word [ecx + edx*2], si
add edx, 8
movdqa xmm3, xmmword [str._b_b_b_b]
paddd xmm1, xmm3
paddd xmm2, xmm3
cmp eax, edx
jne 0x101506d2
xor edx, edx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], edx
pxor xmm0, xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
lea ebx, [eax + edx*2]
mov dword [esp + 0x58], edx
test dl, 1
jne 0x10150851
xor eax, eax
inc eax
xor esi, esi
mov dword [esp + esi*8 + 0x94], ebx
mov dword [esp + esi*8 + 0x90], eax
mov edx, dword [esp + 0x58]
inc edx
mov edi, dword [esp + 0x60]
cmp edx, edi
jne 0x1015081c
jmp 0x101509b0
xor esi, esi
xor edi, edi
inc edi
mov dword [esp + 0x24], ebx
mov edx, dword [esp + esi*8 + 0x90]
mov eax, dword [esp + esi*8 + 0x94]
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], edx
test edx, edx
setg dl
test edi, edi
setg dh
jg 0x10150891
mov eax, 0
mov ebx, 0
cmp dword [esp + 0x38], 0
jle 0x10150996
mov dword [esp + 0x4c], esi
mov dword [esp + 0x10], 0
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x50], edi
xor edi, edi
mov dword [esp + 0x40], eax
test dl, 1
je 0x101508db
test dh, 1
je 0x101508cd
mov eax, dword [esp + 0x18]
movzx edx, word [eax + ebx*2]
mov edx, dword [ecx + edx*4]
mov eax, dword [esp + 0x24]
movzx eax, word [eax + edi*2]
cmp edx, dword [ecx + eax*4]
jae 0x101508db
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x18]
lea edx, [eax + ebx*2]
inc ebx
jmp 0x101508e7
mov eax, dword [esp + 0x24]
lea edx, [eax + edi*2]
inc edi
mov dword [esp + 0x3c], edi
movzx esi, word [edx]
mov edx, dword [ecx + esi*4]
mov edi, ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov word [ecx + eax], si
mov esi, dword [esp + 0x38]
cmp ebx, esi
jge 0x10150919
mov eax, dword [esp + 0x18]
movzx eax, word [eax + ebx*2]
xor ecx, ecx
cmp dword [edi + eax*4], edx
mov eax, dword [esp + 0x10]
sete cl
add ebx, ecx
cmp ebx, esi
setl dl
add eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
inc eax
mov edi, dword [esp + 0x3c]
cmp edi, dword [esp + 0x50]
setl dh
mov ecx, dword [esp + 0x30]
jl 0x101508a7
cmp ebx, esi
jl 0x101508a7
mov ebx, dword [esp + 0x10]
cmp ebx, 4
jne 0x10150977
mov edi, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov ebx, dword [esp + 0x18]
mov dword [ebx], eax
mov esi, dword [esp + 0x4c]
inc esi
mov eax, dword [esp + 0x58]
bt eax, esi
mov eax, edi
jae 0x10150831
jmp 0x10150856
cmp ebx, 8
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
jne 0x10150996
mov edi, eax
mov eax, dword [esp + 0x20]
movq xmm0, qword [eax]
movq qword [edx], xmm0
mov ebx, edx
jmp 0x10150962
mov edi, eax
push ebx
push dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x10150962
inc esi
cmp esi, 0xd
mov edx, ebx
jae 0x10150b36
mov ecx, eax
bt edi, esi
jb 0x101509d2
mov eax, ecx
inc esi
mov ecx, eax
cmp esi, 0xd
jne 0x101509be
jmp 0x10150b36
mov ebx, edx
mov edx, dword [esp + esi*8 + 0x90]
mov eax, dword [esp + esi*8 + 0x94]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
test edx, edx
setg dl
test ecx, ecx
setg dh
jg 0x10150a01
cmp dword [esp + 0x38], 0
jle 0x10150b2c
mov dword [esp + 0x50], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x4c], esi
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x10], 0
xor eax, eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
test dl, 1
je 0x10150a57
test dh, 1
je 0x10150a4d
mov eax, dword [esp + 0x24]
movzx edx, word [eax + ebx*2]
mov edx, dword [ecx + edx*4]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
movzx edi, word [eax + esi*2]
cmp edx, dword [ecx + edi*4]
jae 0x10150a57
mov eax, dword [esp + 0x24]
lea edx, [eax + ebx*2]
inc ebx
jmp 0x10150a67
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
lea edx, [eax + esi*2]
inc esi
mov dword [esp + 0x10], esi
movzx edi, word [edx]
mov edx, dword [ecx + edi*4]
mov eax, ecx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
mov word [ecx + esi], di
mov edi, esi
mov esi, dword [esp + 0x38]
cmp ebx, esi
jge 0x10150a9b
mov ecx, dword [esp + 0x24]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
cmp dword [eax + edi*4], edx
mov edi, dword [esp + 0x3c]
sete cl
add ebx, ecx
cmp ebx, esi
setl dl
add edi, 2
mov eax, dword [esp + 0x40]
inc eax
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x50]
setl dh
mov ecx, dword [esp + 0x30]
jl 0x10150a1f
cmp ebx, esi
jl 0x10150a1f
cmp edi, 4
jne 0x10150ae7
mov ecx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov edx, dword [esp + 0x24]
mov dword [edx], eax
mov eax, ecx
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x4c]
jmp 0x101509c5
mov ebx, eax
cmp edi, 8
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
jne 0x10150b0f
mov eax, dword [esp + 0x20]
movq xmm0, qword [eax]
movq qword [edx], xmm0
mov eax, ebx
mov edi, ecx
jmp 0x101509c5
mov eax, edi
mov edi, ecx
push eax
push dword [esp + 0x24]
push edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x30]
add esp, 0xc
mov eax, ebx
jmp 0x101509c5
xor ebx, ebx
xor eax, eax
mov edx, dword [esp + 0x24]
jmp 0x10150b13
mov edx, dword [esp + 0x44]
mov edi, eax
lea eax, [edx + edx*4]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
mov dword [ecx + eax*4 + 0x18], esi
mov dword [ecx + eax*4 + 0x14], edi
mov esi, dword [esp + 0x70]
mov dword [ecx + eax*4 + 0xc], esi
mov esi, dword [esp + 0x30]
mov dword [ecx + eax*4 + 0x10], esi
cmp edx, dword [esp + 0x5c]
lea esi, [edx + 1]
mov ecx, dword [esp + 0xc]
jne 0x10150602
mov bl, 1
xor eax, eax
cmp dword [esp + 0x20], 0
je 0x101515b1
mov edi, eax
cmp dword [0x101ef020], 0
je 0x10151588
mov esi, dword [0x101f2140]
test esi, esi
je 0x10150bb1
mov ecx, dword [0x101ef070]
cmp ecx, 0x10137ef0
jne 0x1015159a
push esi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov ecx, dword [0x101ef04c]
call dword [section..00cfg]
mov esi, dword [esp + 0x20]
push esi
call ecx
add esp, 4
sub dword [0x101f20ec], eax
dec dword [0x101f2110]
mov ecx, dword [0x101ef044]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov esi, dword [0x101f2140]
test esi, esi
je 0x101515ab
mov ecx, dword [0x101ef078]
cmp ecx, 0x10137ee0
jne 0x101515c0
push esi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
test bl, bl
mov ecx, dword [esp + 0xc]
je 0x10151504
cmp byte [ecx + 0x2b], 0
jne 0x10150c56
mov esi, dword [ecx + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
push 0xa
push 1
push 3
push esi
call ecx
add esp, 0x10
mov edx, eax
cmp dword [esp + 0x28], 0
je 0x10150c4a
cmp edx, 5
je 0x1015165e
test edx, edx
mov ecx, dword [esp + 0xc]
jne 0x1015161d
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x60]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x80], edx
mov ebx, dword [ebp + 0x14]
shr ebx, 2
and ebx, 3
mov edi, ecx
mov dword [esp + 0x50], ebx
je 0x10150c99
mov esi, dword [edi + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push ebx
push esi
call ecx
add esp, 8
test eax, eax
jne 0x10150e99
mov eax, dword [esp + 0x6c]
mul dword [esp + 0x48]
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], eax
mov esi, dword [edi + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x28]
call dword [section..00cfg]
push 0
push 0x27
push esi
call ecx
add esp, 0xc
mov esi, dword [edi + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
call dword [section..00cfg]
lea eax, [esp + 0x80]
push eax
push esi
call ecx
add esp, 8
test eax, eax
jne 0x10150e95
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
cmp esi, ebx
mov eax, ecx
sbb eax, edi
jl 0x1015108b
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 4]
test esi, esi
jle 0x10150e8d
mov ecx, dword [esp + 0x48]
or ecx, 0x18
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], 0
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
xor edx, edx
dec edx
mov dword [esp + 0x24], esi
lea ecx, [esi - 1]
mov dword [esp + 0x3c], ecx
lea esi, [ecx + ecx*4]
mov edi, dword [eax + esi*4 + 8]
mov ecx, dword [eax + esi*4 + 0x14]
cmp edi, ecx
jge 0x10150db9
mov dword [esp + 0x10], edx
lea edx, [eax + esi*4]
add edx, 8
mov dword [esp + 0x38], edx
mov ebx, dword [eax + esi*4 + 0xc]
mov eax, dword [eax + esi*4 + 0x10]
neg ecx
mov dword [esp + 0x20], ecx
inc edi
mov edx, ebx
movzx ebx, word [ebx + edi*2 - 2]
mov ecx, eax
mov eax, dword [eax + ebx*4]
cmp eax, dword [esp + 0x40]
ja 0x10150da3
mov eax, dword [esp + 0x38]
mov dword [eax], edi
mov eax, dword [esp + 0x20]
add eax, edi
inc eax
inc edi
cmp eax, 1
mov ebx, edx
mov eax, ecx
jne 0x10150d75
jmp 0x101513cc
mov edx, dword [esp + 0x10]
cmp eax, edx
jae 0x10150db9
mov ecx, dword [esp + 0x14]
add ebx, dword [ecx + esi*4 + 0x18]
mov dword [esp + 0x18], ebx
mov edx, eax
cmp dword [esp + 0x24], 1
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
jg 0x10150d3e
mov dword [eax], edx
cmp edx, 0xffffffff
je 0x10150e93
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x120]
test eax, eax
jne 0x10151542
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x30]
jbe 0x10150e7e
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x2c]
ja 0x10150e7e
cmp edx, dword [esp + 0x6c]
ja 0x10150e7e
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x18]
dec eax
mul dword [esp + 0x58]
mov esi, edx
mov edi, eax
add edi, 0x38
adc esi, 0
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 8]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
push edi
mov esi, dword [esp + 0x50]
push esi
mov eax, dword [ebp + 0x1c]
push eax
push dword [esp + 0x50]
call ecx
add esp, 0x14
test eax, eax
jne 0x10151559
mov eax, dword [esp + 0x10]
dec eax
mul esi
mov dword [esp + 0x10], eax
mov edi, edx
mov ebx, dword [ebx + 4]
mov eax, dword [ebx]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push edi
push dword [esp + 0x14]
push esi
push dword [ebp + 0x1c]
push ebx
call ecx
add esp, 0x14
test eax, eax
jne 0x10150e95
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 4]
test esi, esi
jg 0x10150d35
mov dword [eax], 0xffffffff
xor eax, eax
mov edi, dword [esp + 0xc]
mov ebx, eax
mov esi, dword [edi + 4]
mov eax, dword [esi]
test eax, eax
je 0x10150eb7
mov ecx, dword [eax + 0x28]
call dword [section..00cfg]
push 0
push 0x25
push esi
call ecx
add esp, 0xc
mov edx, ebx
test ebx, ebx
mov ecx, dword [esp + 0x1c]
jne 0x10150f32
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
mov eax, dword [eax]
mov edx, dword [esp + 0x2c]
cmp edx, dword [eax + 0x10]
jne 0x10150f29
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
mul dword [ecx + 0x48]
mov esi, eax
mov edi, edx
mov ebx, dword [ecx + 4]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
push edi
push esi
push ebx
call ecx
add esp, 0xc
mov edx, eax
mov edi, dword [esp + 0x50]
test edi, edi
je 0x10150f21
test edx, edx
jne 0x10150f21
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push edi
push esi
call ecx
add esp, 8
mov edx, eax
test edx, edx
mov ecx, dword [esp + 0x1c]
jne 0x10150f32
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x60], eax
xor edx, edx
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x2b], 0
jne 0x10150f5e
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
mov edi, edx
call dword [section..00cfg]
push 9
push 1
push 3
push esi
call ecx
mov edx, edi
mov ecx, dword [esp + 0x2c]
add esp, 0x10
cmp edx, 5
mov eax, dword [esp + 0x14]
jne 0x10150f73
xor edx, edx
jmp 0x10150f73
xor edx, edx
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x34], 0
je 0x10150f82
test edx, edx
je 0x101511d2
test eax, eax
je 0x10151013
mov ebx, edx
cmp dword [0x101ef020], 0
je 0x101514be
mov edi, eax
mov esi, dword [0x101f2140]
test esi, esi
je 0x10150fbe
mov ecx, dword [0x101ef070]
cmp ecx, 0x10137ef0
jne 0x101514d7
push esi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov ecx, dword [0x101ef04c]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
sub dword [0x101f20ec], eax
dec dword [0x101f2110]
mov ecx, dword [0x101ef044]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov esi, dword [0x101f2140]
test esi, esi
je 0x10151011
mov ecx, dword [0x101ef078]
cmp ecx, 0x10137ee0
jne 0x101514c6
push esi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov edx, ebx
cmp edx, 5
je 0x1015101c
test edx, edx
jne 0x10151032
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jne 0x101513a3
test eax, eax
jne 0x101513b5
cmp byte [esp + 0x54], 0
je 0x101514a2
mov ecx, dword [esp + 0xc]
mov ebx, dword [ebp + 8]
cmp byte [ecx + 0x2c], 0
jne 0x1015113f
cmp byte [ecx + 0x2d], 0
je 0x10151062
cmp byte [ecx + 0x2b], 0
je 0x1015110e
mov byte [ecx + 0x2d], 0
cmp dword [esp + 0x34], ebx
mov esi, 5
cmove esi, edx
test edx, edx
cmovne esi, edx
mov ecx, dword [esp + 0xf8]
xor ecx, ebp
call fcn.10156ff0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
mul dword [edx + 0x44]
add esi, eax
adc ecx, edx
add esi, 0x10000
adc ecx, 0
cmp esi, ebx
sbb ecx, edi
jl 0x101515d1
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 4]
mov eax, dword [esi]
test eax, eax
je 0x10150d13
mov ecx, dword [eax + 0x28]
call dword [section..00cfg]
lea eax, [esp + 0x90]
push eax
push 5
push esi
call ecx
add esp, 0xc
jmp 0x10150d13
mov esi, dword [ecx + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
xor eax, eax
inc eax
push 0xa
push eax
push eax
push esi
call ecx
add esp, 0x10
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x101503f4
mov edx, eax
mov dword [esp + 0x34], ebx
jmp 0x10151044
mov esi, dword [ecx + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
mov edi, edx
call dword [section..00cfg]
xor eax, eax
inc eax
push 9
push eax
push eax
push esi
call ecx
mov edx, edi
mov ecx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x1015105e
mov ecx, dword [esp + 0xc]
jmp 0x10150b74
mov dword [esp + 0x10], edx
cmp byte [ecx + 0x2b], 0
mov edi, ecx
jne 0x10151165
mov esi, dword [edi + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
push 9
push 1
push 0
push esi
call ecx
add esp, 0x10
xor eax, eax
mov byte [edi + 0x2c], al
mov dword [edi + 0x68], 0
mov byte [edi + 0x2f], al
mov ecx, edi
mov edx, dword [esp + 0x10]
jmp 0x1015104e
xor edi, edi
cmp byte [ecx + 0x2b], 0
jne 0x101511c3
mov esi, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
push 0xa
push 1
push 0
push esi
call ecx
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x101511b7
cmp edx, 5
je 0x101516bb
test edx, edx
mov ecx, dword [esp + 0xc]
jne 0x10151689
mov byte [ecx + 0x2c], 1
mov edi, eax
mov dword [esp + 0x34], ebx
jmp 0x1015040d
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x60]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x44]
jb 0x101516ad
xor edx, edx
cmp dword [esp + 0x34], 2
mov eax, dword [esp + 0x14]
jl 0x10150f82
lea eax, [esp + 0x90]
push eax
push 4
call sym.nss3.dll_sqlite3_randomness
add esp, 8
mov ebx, 4
mov esi, dword [esp + 0xc]
cmp byte [esi + 0x2b], 0
jne 0x1015124d
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
push 0xa
push ebx
push ebx
push edi
call ecx
add esp, 0x10
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x10151241
cmp eax, 5
je 0x101516ef
test eax, eax
mov esi, dword [esp + 0xc]
jne 0x101516e8
cmp dword [esp + 0x34], 3
jne 0x101513c8
mov edi, dword [esp + 0x90]
mov dword [esp + 0x18], edi
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + 0x38]
mov eax, dword [edx]
mov dword [esp + 0x10], eax
inc dword [esi + 0x70]
mov dword [esi + 0x44], 0
mov ecx, dword [esi + 0x54]
bswap ecx
inc ecx
bswap ecx
mov dword [esi + 0x54], ecx
mov dword [esi + 0x58], edi
mov edi, dword [edx]
mov byte [esi + 0x40], 1
mov eax, 0x2de218
mov dword [esi + 0x34], eax
mov edx, dword [esi + 0x40]
add edx, ebx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x3c]
add ebx, eax
add ebx, 0x5bc430
mov eax, dword [esp + 0xc]
add edx, ebx
mov esi, 0x2de218
add edx, esi
add ebx, edx
add edx, dword [eax + 0x48]
add edx, ebx
add ebx, dword [eax + 0x4c]
add ebx, edx
add edx, dword [eax + 0x50]
add edx, ebx
add ebx, ecx
add ebx, edx
add edx, dword [esp + 0x18]
add edx, ebx
mov dword [eax + 0x5c], ebx
mov dword [eax + 0x60], edx
lea ebx, [eax + 0x34]
movups xmm0, xmmword [eax + 0x44]
movups xmmword [edi + 0x40], xmm0
movups xmm0, xmmword [eax + 0x34]
movups xmmword [edi + 0x30], xmm0
movups xmm0, xmmword [eax + 0x54]
movups xmmword [edi + 0x50], xmm0
cmp byte [eax + 0x2b], 2
je 0x10151310
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x3c]
call dword [section..00cfg]
push esi
call ecx
mov eax, dword [esp + 0x10]
add esp, 4
movups xmm0, xmmword [ebx + 0x20]
movups xmmword [edi + 0x20], xmm0
movdqu xmm0, xmmword [ebx]
movdqu xmm1, xmmword [ebx + 0x10]
movdqu xmmword [edi + 0x10], xmm1
movdqu xmmword [edi], xmm0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x60], 0
xor edi, edi
mov dword [ecx + 0x80], edi
mov dword [ecx + 0x68], 0
mov dword [ecx + 0x6c], 0xffffffff
mov dword [ecx + 0x70], 0xffffffff
mov dword [ecx + 0x74], 0xffffffff
mov esi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
push edi
push edi
push esi
call ecx
add esp, 0xc
mov esi, dword [esp + 0xc]
mov edi, eax
cmp byte [esi + 0x2b], 0
jne 0x10151398
mov esi, dword [esi + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
mov eax, 4
push 9
push eax
push eax
push esi
call ecx
add esp, 0x10
mov eax, dword [esp + 0x14]
mov edx, edi
jmp 0x10150f82
mov esi, edx
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0x44]
mov dword [ecx], edx
mov edx, esi
jmp 0x1015102a
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x20]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x60]
mov dword [eax], ecx
jmp 0x10151032
xor eax, eax
jmp 0x10151373
mov edx, dword [esp + 0x10]
jmp 0x10150db9
xor edx, edx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], edx
pxor xmm0, xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
xor esi, esi
inc esi
xor eax, eax
jmp 0x101509bc
mov edx, esi
lea eax, [esp + 0x84]
push eax
call fcn.10014190
add esp, 4
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x1015062a
xor ecx, ecx
inc ecx
test eax, eax
cmove eax, ecx
xor ebx, ebx
jmp 0x10150b7f
mov esi, 8
jmp 0x10151073
mov ebx, edx
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov dword [esp + 0x54], 0
cmp dword [eax], 3
jl 0x10151497
mov ecx, dword [eax + 0x48]
call dword [section..00cfg]
xor eax, eax
push eax
push eax
mov dword [esp + 0x5c], 0
push eax
push esi
call ecx
add esp, 0x10
mov dword [esp + 0x28], edi
mov edx, ebx
jmp 0x1015042d
pxor xmm0, xmm0
mov ecx, dword [esp + 0xc]
movdqu xmmword [ecx + 0x54], xmm0
movdqu xmmword [ecx + 0x44], xmm0
movdqu xmmword [ecx + 0x34], xmm0
jmp 0x10151041
mov ecx, dword [0x101ef044]
mov esi, eax
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x10151011
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x10150fbe
mov dword [esp + 0x14], 0
jmp 0x10150f5e
mov edx, 7
jmp 0x10151032
mov edi, 7
push dword [esp + 0x14]
call sym.nss3.dll_sqlite3_free
add esp, 4
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x1c]
mov edx, edi
jmp 0x10150f5e
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x44]
shl ecx, 0xc
add ecx, 0xffffffde
jmp 0x1015065c
sub edi, dword [esp + 0x30]
sar edi, 2
jmp 0x10150678
xor eax, eax
mov ecx, dword [esp + 0x64]
cmp byte [ecx + 0x57], 0
sete al
add eax, eax
add eax, 7
jmp 0x10150e95
mov edi, ebx
jmp 0x10150e99
push 0x101cff9b
push 0x10646
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov edx, 0xb
jmp 0x10151032
mov ecx, dword [0x101ef044]
call dword [section..00cfg]
push dword [esp + 0x20]
jmp 0x101515c7
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x10150bb1
mov ecx, dword [esp + 0xc]
mov eax, edi
mov edi, eax
test bl, bl
jne 0x10150c18
jmp 0x10151504
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x10150c0c
push 0x101cff9b
push 0xff39
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov eax, 0xb
jmp 0x10150e95
mov dword [esp + 0x28], 0
mov edx, eax
cmp eax, 5
jne 0x10151013
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
jmp 0x10150498
mov ecx, dword [esp + 0x1c]
jmp 0x10150f5e
mov ecx, dword [esp + 0x28]
call dword [section..00cfg]
push dword [ebp + 0x10]
call ecx
add esp, 4
test eax, eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
jne 0x101504aa
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 0
mov edx, 5
jmp 0x10150498
mov ecx, dword [esp + 0x28]
call dword [section..00cfg]
push dword [ebp + 0x10]
call ecx
add esp, 4
test eax, eax
mov ecx, dword [esp + 0xc]
jne 0x10150c18
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jmp 0x10150f67
xor edi, edi
mov dword [esp + 0x34], 0
cmp edx, 5
je 0x1015040d
mov esi, edx
mov al, 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ebx
jmp 0x1015042d
mov edx, 5
mov eax, dword [esp + 0x14]
jmp 0x10150f82
mov ecx, eax
call dword [section..00cfg]
push dword [ebp + 0x10]
call dword [ebp + 0xc]
add esp, 4
mov dword [esp + 0x34], 0
test eax, eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xc]
jne 0x10151181
jmp 0x1015040d
mov edi, eax
jmp 0x10151398
mov edi, ecx
call dword [section..00cfg]
push dword [ebp + 0x10]
call ecx
add esp, 4
test eax, eax
jne 0x10151212
mov edi, 5
jmp 0x10151398