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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov dword [esp + 0x54], ecx
mov edi, dword [ebp + 8]
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [esp + 0x90], eax
mov dword [esp + 0x48], edx
cmp dword [ebp + 0xc], 0
je 0x1002939d
mov dword [esp + 0x48], edx
test edx, edx
je 0x10029120
xor eax, eax
lea ecx, [esp + 0x48]
xor ebx, ebx
cmp dword [edx + 0x18], edi
lea esi, [edx + 0x10]
cmovbe ecx, esi
setbe bl
add eax, ebx
mov edx, dword [edx + 0x10]
mov dword [ecx], edx
test edx, edx
jne 0x100288d4
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x54]
add dword [edi + 0xc0], eax
mov dword [esp + 0x24], edx
cmp dword [edx + 0x18], 1
je 0x10028f3d
movzx eax, byte [edi + 0xb]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x98]
mov dword [esp + 0x28], eax
mov edi, dword [edi + 0xd8]
mov eax, dword [edi + 0x20]
mov esi, dword [eax]
lea eax, [edi + 0x34]
push 0x30
push esi
mov dword [esp + 0x58], eax
push eax
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
mov dword [esp + 0x34], 0
test eax, eax
jne 0x100293a5
mov dword [esp + 4], edi
cmp word [edi + 0x28], 0
je 0x10028cfb
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x44]
test eax, eax
mov esi, dword [esp + 0x28]
mov dword [esp + 0x38], eax
je 0x10028d60
lea ebx, [esi + 0x18]
mov edx, ebx
sar edx, 0x1f
mov ecx, eax
mov dword [esp + 0x40], edx
imul ecx, edx
mov dword [esp + 0x3c], ebx
mul ebx
xor ebx, ebx
add eax, 0x20
mov dword [esp + 8], eax
adc edx, ecx
mov ecx, esi
mov esi, edx
mov dword [esp + 0x58], edi
mov eax, dword [edi + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov ebx, dword [esp + 0x24]
xor ecx, ecx
test ebx, ebx
je 0x10028b00
mov edx, ebx
cmp dword [esp + 0x34], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], edx
jne 0x10029187
cmp dword [ebp + 0xc], 0
je 0x100291d0
cmp dword [edx + 0x10], 0
mov eax, 0
cmove eax, dword [ebp + 8]
mov ebx, dword [edx + 4]
mov edx, dword [edx + 0x18]
mov ecx, edi
lea edi, [esp + 0x70]
push edi
mov dword [esp + 0x30], ebx
push ebx
push eax
call fcn.101480c0
add esp, 0xc
mov dword [esp + 0x44], 0x18
mov ecx, dword [esp + 8]
cmp ecx, 0xffffffe8
mov ebx, esi
mov eax, esi
sbb eax, 0xffffffff
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], ecx
mov edi, esi
jae 0x100291d7
mov esi, dword [esp + 0x18]
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push edi
push dword [esp + 0x14]
push dword [esp + 0x4c]
push dword [esp + 0x2c]
push esi
call ecx
add esp, 0x14
test eax, eax
jne 0x10029723
mov edx, dword [esp + 0x28]
mov eax, edx
sar eax, 0x1f
mov edi, dword [esp + 8]
mov ecx, edi
add ecx, 0x18
mov esi, ebx
adc esi, 0
mov dword [esp + 0x10], ecx
add ecx, edx
adc eax, esi
mov ecx, 0xffffffe7
cmp ecx, edi
mov ecx, 0xffffffff
sbb ecx, ebx
jge 0x10028a98
mov edi, edx
jmp 0x10028aa4
test eax, eax
jns 0x10029287
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push esi
push dword [esp + 0x14]
push edi
push dword [esp + 0x38]
push ebx
call ecx
add esp, 0x14
test eax, eax
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jne 0x10029723
inc dword [esp + 0x38]
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
adc esi, dword [esp + 0x40]
or byte [edx + 0x1c], 0x40
mov ecx, edx
mov edx, dword [edx + 0x10]
test edx, edx
mov edi, dword [esp + 4]
jne 0x100289d0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], 0
cmp dword [ebp + 0xc], 0
je 0x10028b4b
cmp dword [edi + 0x68], 0
mov dword [esp + 0x14], esi
jne 0x100293b2
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x30]
and esi, 3
mov edi, dword [esp + 4]
jne 0x10029129
cmp byte [edi + 0x2f], 0
jne 0x10028e99
mov edx, dword [edi + 0x44]
test ebx, ebx
je 0x10028b96
cmp dword [esp + 0x1c], 0
jne 0x10028b96
test byte [ebx + 0x1c], 0x40
je 0x10029278
inc edx
mov esi, edi
mov ecx, edi
mov dword [esp + 8], edx
mov edi, ebx
push dword [ebx + 0x18]
call fcn.10029730
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10028b92
mov ebx, edi
mov ebx, dword [edi + 0x10]
test ebx, ebx
mov edx, dword [esp + 8]
mov edi, esi
jne 0x10028b59
jmp 0x10028b96
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
sete bl
cmp dword [esp + 0xc], 0
mov dword [esp + 8], edx
jle 0x10028bb2
test ecx, ecx
je 0x1002955e
mov eax, dword [esp + 0x1c]
test bl, bl
je 0x10029723
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0xff00
shr ecx, 0x10
or ecx, eax
mov esi, dword [esp + 4]
mov word [esi + 0x42], cx
mov eax, dword [esp + 8]
mov dword [esi + 0x44], eax
cmp dword [ebp + 0xc], 0
je 0x10028cca
mov edx, dword [esi + 0x3c]
lea eax, [edx + 1]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov byte [esi + 0x40], 1
mov ecx, 0x2de218
mov dword [esi + 0x34], ecx
lea eax, [esi + 0x5c]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x50]
lea eax, [esi + 8]
mov dword [esp + 0xc], eax
lea eax, [ebx + ecx]
mov edi, dword [esp + 0xc]
cmp edi, dword [esp + 0x14]
jae 0x10028c60
add edx, ebx
add eax, edx
add eax, 0x5bc431
add eax, dword [esi + 0xc]
mov ecx, dword [esp + 8]
add ecx, edx
add ecx, 0x5bc431
add ecx, eax
add eax, dword [ebp + 8]
add eax, ecx
add ecx, dword [esi + 0x18]
add ecx, eax
add eax, dword [esi + 0x1c]
add eax, ecx
add ecx, dword [esi + 0x20]
add ecx, eax
add eax, dword [esi + 0x24]
add eax, ecx
mov ebx, esi
mov esi, dword [esp + 4]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], eax
movups xmm0, xmmword [ebx + 0x20]
mov eax, dword [esp + 0x18]
movups xmmword [eax + 0x50], xmm0
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [eax + 0x40], xmm1
movups xmmword [eax + 0x30], xmm0
cmp byte [esi + 0x2b], 2
je 0x10028ca9
mov eax, dword [esp + 4]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x3c]
call dword [section..00cfg]
push esi
mov esi, dword [esp + 8]
call ecx
add esp, 4
movups xmm0, xmmword [ebx + 0x20]
mov edi, dword [esp + 0x18]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
mov eax, dword [esp + 8]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x58]
xor edi, edi
test ecx, ecx
je 0x10028ce3
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x10029177
mov ecx, dword [esp + 0x90]
xor ecx, ebp
call fcn.1014dc80
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esi + 0x60], 0
mov ebx, dword [esp + 4]
jne 0x10028f7d
cmp byte [ebx + 0x2b], 0
jne 0x10028d31
mov eax, dword [esp + 4]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
push 5
push 1
push 3
push esi
mov ebx, dword [esp + 0x14]
call ecx
add esp, 0x10
mov word [ebx + 0x28], 0xffff
xor esi, esi
inc esi
lea edi, [esp + 0x70]
mov ecx, ebx
mov edx, edi
push esi
push 1
call fcn.100143f0
add esp, 8
inc esi
cmp eax, 0xffffffff
je 0x10028d3e
test eax, eax
je 0x10028958
jmp 0x10029723
push 0x377f0682
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x70], eax
push 0x2de218
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ebx, eax
mov dword [esp + 0x74], eax
push esi
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov edi, eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 4]
mov esi, dword [eax + 0x70]
push esi
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esp + 0x7c], eax
test esi, esi
jne 0x10029113
mov esi, dword [esp + 4]
lea eax, [esi + 0x54]
push eax
push 8
call sym.nss3.dll_sqlite3_randomness
add esp, 8
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x54]
add ebx, edx
add edi, edx
mov edx, dword [esi + 0x58]
add edi, ebx
add ebx, eax
lea eax, [esp + 0x70]
mov dword [eax + 0x10], ecx
add ebx, edi
add edi, ecx
mov dword [eax + 0x14], edx
add edi, ebx
add ebx, edx
add ebx, edi
push edi
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
lea ecx, [esp + 0x70]
mov dword [ecx + 0x18], eax
push ebx
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
lea ecx, [esp + 0x70]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x24], eax
mov byte [esi + 0x41], 0
mov dword [esi + 0x4c], edi
mov dword [esi + 0x50], ebx
mov byte [esi + 0x2f], 1
mov edi, esi
mov esi, dword [esi + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
xor eax, eax
push eax
push eax
push 0x20
lea eax, [esp + 0x7c]
push eax
push esi
call ecx
add esp, 0x14
test eax, eax
jne 0x10029723
cmp byte [edi + 0x30], 0
mov esi, dword [esp + 0x30]
je 0x10028e88
shr esi, 2
and esi, 3
je 0x10028e88
mov eax, dword [esp + 4]
mov edi, dword [eax + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push esi
push edi
call ecx
add esp, 8
test eax, eax
jne 0x10029723
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
jmp 0x1002896f
mov ecx, dword [edi + 0x14]
test ecx, ecx
js 0x10028b4b
mov esi, dword [edi + 0x10]
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x40]
imul ebx, eax
mul dword [esp + 0x3c]
add eax, 0x20
adc edx, ebx
mov ebx, eax
cmp esi, eax
mov eax, ecx
sbb eax, edx
cmovge edx, ecx
mov dword [esp + 8], edx
cmovge ebx, esi
mov ecx, dword [0x101de000]
test ecx, ecx
jne 0x100295b1
mov esi, dword [edi + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0x18]
call dword [section..00cfg]
lea eax, [esp + 0x70]
push eax
push esi
call ecx
add esp, 8
test eax, eax
jne 0x100295d8
xor esi, esi
cmp ebx, dword [esp + 0x70]
mov edi, dword [esp + 8]
mov eax, edi
sbb eax, dword [esp + 0x74]
jl 0x100295be
mov ecx, dword [0x101de004]
test ecx, ecx
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x24]
jne 0x100295df
test esi, esi
jne 0x100295f0
mov byte [edi + 0x2f], 0
jmp 0x10028b4b
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
push dword [eax + 0x68]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
inc eax
mov esi, dword [ebx + 4]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esi + 0x18], eax
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x5c], eax
mov esi, dword [ebx + 4]
push 0x2e5360
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esi + 0x60], eax
jmp 0x10028909
lea eax, [esp + 0x70]
push eax
push 4
call sym.nss3.dll_sqlite3_randomness
add esp, 8
cmp byte [ebx + 0x2b], 0
jne 0x10028fbf
mov eax, dword [esp + 4]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
call dword [section..00cfg]
mov eax, 4
push 0xa
push eax
push eax
push esi
mov ebx, dword [esp + 0x14]
call ecx
add esp, 0x10
test eax, eax
jne 0x100295a1
mov esi, dword [esp + 0x70]
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x54]
mov ecx, dword [edi]
mov dword [esp + 8], ecx
inc dword [ebx + 0x70]
mov dword [ebx + 0x44], 0
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
inc eax
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [esp + 0xc], eax
mov dword [ebx + 0x54], eax
mov dword [esp + 0x14], esi
mov dword [ebx + 0x58], esi
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov byte [ebx + 0x40], 1
mov ecx, 0x2de218
mov dword [ebx + 0x34], ecx
lea eax, [ebx + 0x5c]
mov esi, dword [esp + 0x50]
lea edi, [esi + 8]
mov ebx, dword [ebx + 0x38]
lea edx, [ebx + ecx]
cmp edi, eax
jae 0x1002904d
mov ecx, dword [esi + 8]
add ecx, ebx
add ecx, 0x5bc430
add edx, dword [esi + 0xc]
add edx, ecx
add ecx, edx
add edx, dword [esi + 0x14]
add edx, ecx
add ecx, dword [esi + 0x18]
add ecx, edx
add edx, dword [esi + 0x1c]
add edx, ecx
add ecx, dword [esp + 0xc]
add ecx, edx
add edx, dword [esp + 0x14]
add edx, ecx
mov ebx, dword [esp + 4]
mov dword [ebx + 0x5c], ecx
mov dword [ebx + 0x60], edx
movups xmm0, xmmword [esi + 0x20]
mov edi, dword [esp + 0x18]
movups xmmword [edi + 0x50], xmm0
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmmword [edi + 0x40], xmm1
movups xmmword [edi + 0x30], xmm0
cmp byte [ebx + 0x2b], 2
je 0x10029094
mov eax, dword [esp + 4]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov ecx, dword [eax + 0x3c]
call dword [section..00cfg]
push esi
mov ebx, dword [esp + 8]
call ecx
add esp, 4
mov eax, dword [esp + 0x50]
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
mov eax, dword [esp + 8]
mov dword [eax + 0x60], 0
mov dword [eax + 0x80], 0
mov dword [eax + 0x68], 0
mov dword [eax + 0x6c], 0xffffffff
mov dword [eax + 0x70], 0xffffffff
mov dword [eax + 0x74], 0xffffffff
cmp byte [ebx + 0x2b], 0
jne 0x10028d09
mov eax, dword [esp + 4]
mov esi, dword [eax + 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
mov ebx, dword [esp + 0x14]
call ecx
add esp, 0x10
jmp 0x10028d09
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
jmp 0x10028dd5
xor edx, edx
xor eax, eax
jmp 0x100288f1
mov dword [esp + 0xc], 0
cmp byte [edi + 0x31], 0
jne 0x1002962b
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push esi
push ebx
call ecx
add esp, 8
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x24]
jmp 0x10028b41
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x58]
jmp 0x10029177
mov edx, dword [esi + 0x18]
push dword [esi + 4]
call fcn.10159a40
add esp, 4
jmp 0x1002917b
test ecx, ecx
jne 0x10029167
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x1002915e
jmp 0x10028ce3
cmp dword [ebp + 0xc], 0
je 0x10029197
cmp dword [edx + 0x10], 0
je 0x100289e3
mov dword [esp + 0x2c], ecx
lea esi, [esp + 0x70]
mov dword [esi], 0
mov edx, dword [edx + 0x18]
mov ecx, edi
push esi
call fcn.1000ffa0
add esp, 4
mov ecx, dword [esi]
cmp ecx, dword [esp + 0x34]
jae 0x10029315
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jmp 0x100289e3
xor eax, eax
jmp 0x100289fa
mov esi, dword [esp + 8]
mov edi, esi
neg edi
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
lea eax, [esp + 0x70]
push ebx
push esi
mov dword [esp + 0x28], edi
push edi
push eax
push dword [esp + 0x28]
call ecx
add esp, 0x14
test eax, eax
jne 0x10029721
mov eax, dword [esp + 8]
mov ecx, eax
add ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
adc ecx, 0
mov dword [esp + 0x4c], ecx
lea esi, [eax + 0x18]
mov edi, dword [esp + 0x30]
and edi, 3
je 0x1002930e
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push edi
push ebx
call ecx
add esp, 8
test esi, esi
je 0x1002938d
test eax, eax
mov ebx, dword [esp + 0x14]
jne 0x10028a5d
mov eax, dword [esp + 0x20]
add eax, esp
add eax, 0x70
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], esi
mov edi, dword [esp + 0x4c]
jmp 0x10028a3b
mov esi, edi
mov dword [esp + 8], edx
mov edi, ebx
xor eax, eax
jmp 0x10028b79
mov ebx, 0xffffffe8
sub ebx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push esi
push dword [esp + 0x14]
push ebx
push dword [esp + 0x38]
push edi
call ecx
add esp, 0x14
test eax, eax
jne 0x10029721
mov eax, ebx
sar eax, 0x1f
add dword [esp + 0x10], ebx
adc esi, eax
mov edi, dword [esp + 0x28]
sub edi, ebx
mov eax, dword [esp + 0x30]
and eax, 3
mov dword [esp + 0x20], eax
je 0x10029396
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push dword [esp + 0x20]
push dword [esp + 0x1c]
call ecx
add esp, 8
test edi, edi
je 0x10028ac3
test eax, eax
jne 0x10028ac3
add dword [esp + 0x2c], ebx
jmp 0x10028aa4
xor eax, eax
jmp 0x1002924a
lea eax, [ecx - 1]
mov edi, eax
mul dword [esp + 0x3c]
mov ebx, eax
mov esi, edx
imul edi, dword [esp + 0x40]
add ebx, 0x38
adc esi, edi
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x68]
dec eax
cmp eax, ecx
jb 0x1002933f
mov eax, dword [esp + 4]
mov dword [eax + 0x68], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
mov edi, dword [eax + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push esi
push ebx
push dword [esp + 0x30]
push dword [esp + 0x1c]
push edi
call ecx
add esp, 0x14
test eax, eax
jne 0x10029721
mov edx, dword [esp + 0xc]
and byte [edx + 0x1c], 0xbf
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
jmp 0x10028af1
mov ebx, dword [esp + 0x14]
jmp 0x10028a5d
xor eax, eax
jmp 0x100292f5
xor eax, eax
inc eax
jmp 0x100288f1
mov eax, dword [esi + 0x10]
inc eax
mov dword [esp + 0x34], eax
jmp 0x10028949
mov eax, dword [esp + 4]
mov esi, dword [eax + 0x24]
call sym.nss3.dll_sqlite3_initialize
cmp esi, 0xffffffe9
jl 0x10029554
test eax, eax
jne 0x10029554
mov ecx, esi
add ecx, 0x18
mov edx, ecx
sar edx, 0x1f
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], edx
call fcn.10144e50
mov dword [esp + 0x10], eax
test eax, eax
je 0x10029554
mov edi, dword [esp + 4]
mov ecx, dword [edi + 0x68]
lea eax, [ecx - 2]
mov esi, eax
imul esi, dword [esp + 0x34]
mul dword [esp + 0x20]
add eax, 0x30
adc edx, esi
xor esi, esi
cmp ecx, 1
mov ecx, dword [edi + 8]
mov dword [esp + 0xc], ecx
cmovne esi, edx
mov ebx, 0x18
cmovne ebx, eax
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push esi
push ebx
push 8
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x1c]
call ecx
add esp, 0x14
mov ebx, eax
push dword [esi]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [edi + 0x4c], eax
push dword [esi + 4]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x68]
mov dword [esp + 0xc], eax
mov dword [edi + 0x68], 0
mov esi, ebx
test ebx, ebx
jne 0x1002960c
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
ja 0x1002960c
mov eax, dword [esp + 0x10]
add eax, 0x18
mov dword [esp + 0x4c], eax
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
add eax, 0xfffffffe
mov ecx, eax
mul dword [esp + 0x20]
mov ebx, eax
mov edi, edx
imul ecx, dword [esp + 0x34]
add ebx, 0x20
adc edi, ecx
mov eax, dword [esp + 4]
mov esi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
mov dword [esp + 0x1c], edi
push edi
mov dword [esp + 0x48], ebx
push ebx
push dword [esp + 0x28]
push dword [esp + 0x1c]
push esi
call ecx
add esp, 0x14
test eax, eax
jne 0x1002960a
mov ebx, dword [esp + 0x10]
push dword [ebx]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov esi, eax
push dword [ebx + 4]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ebx, dword [esp + 4]
mov ecx, ebx
mov edx, esi
lea edi, [esp + 0x70]
push edi
push dword [esp + 0x50]
push eax
call fcn.101480c0
add esp, 0xc
mov esi, dword [ebx + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
call dword [section..00cfg]
push dword [esp + 0x1c]
push dword [esp + 0x48]
push 0x18
push edi
push esi
call ecx
add esp, 0x14
mov esi, eax
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
ja 0x1002960c
inc dword [esp + 0xc]
test esi, esi
je 0x10029492
jmp 0x1002960c
mov eax, 7
jmp 0x10029723
mov edx, dword [esp + 8]
inc edx
mov ecx, dword [esp + 4]
mov esi, edx
mov eax, dword [esp + 0x2c]
push dword [eax + 0x18]
call fcn.10029730
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
sete bl
cmp dword [esp + 0xc], 2
mov dword [esp + 8], esi
jl 0x10028bb2
dec dword [esp + 0xc]
cmp dword [esp + 0x1c], 0
jne 0x10028bb2
jmp 0x1002955e
cmp eax, 5
je 0x10028d09
mov ecx, eax
jmp 0x10028d53
call dword [section..00cfg]
call ecx
jmp 0x10028edf
mov eax, dword [esp + 4]
mov esi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
push edi
push ebx
push esi
call ecx
add esp, 0xc
mov esi, eax
jmp 0x10028f16
call dword [section..00cfg]
call ecx
mov ebx, dword [esp + 0x24]
jmp 0x10028f2c
push dword [edi + 0x6c]
push str.cannot_limit_WAL_size:__s
push esi
call sym.nss3.dll_sqlite3_log
mov ebx, dword [esp + 0x30]
add esp, 0xc
jmp 0x10028f34
mov esi, eax
push dword [esp + 0x10]
call sym.nss3.dll_sqlite3_free
add esp, 4
mov eax, esi
test esi, esi
mov ebx, dword [esp + 0x24]
jne 0x10029723
jmp 0x10028b20
mov dword [esp + 0x30], esi
mov esi, dword [edi + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x1002965b
call dword [section..00cfg]
push esi
call ecx
add esp, 4
cmp eax, 0x20
setl cl
mov edx, 0x10000
cmp eax, 0xffff
jle 0x10029662
jmp 0x10029664
mov eax, 0x1000
xor ecx, ecx
mov edx, eax
mov eax, edx
sar eax, 0x1f
xor esi, esi
test cl, cl
mov dword [esp + 0x1c], 0
cmovne eax, esi
mov ecx, 0x200
cmove ecx, edx
mov edi, dword [esp + 8]
add edi, ecx
mov ebx, dword [esp + 0x14]
mov esi, ebx
adc esi, eax
add edi, 0xffffffff
adc esi, 0xffffffff
push eax
push ecx
push esi
push edi
call fcn.1014df60
sub edi, eax
sbb esi, edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], esi
cmp dword [esp + 8], edi
mov dword [esp + 0x10], esi
sbb ebx, esi
mov dword [esp + 0xc], 0
jge 0x100296fc
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x58]
mov edx, dword [esp + 0x2c]
push esi
push ebx
push dword [ebp + 8]
call fcn.101599c0
add esp, 0xc
test eax, eax
jne 0x10029721
add ebx, dword [esp + 0x3c]
adc esi, dword [esp + 0x40]
inc dword [esp + 0xc]
cmp ebx, edi
mov eax, esi
sbb eax, dword [esp + 0x10]
jl 0x100296cd
xor edi, dword [esp + 8]
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x14]
or eax, edi
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
jne 0x10028b41
jmp 0x1002913b
mov ecx, eax
mov edi, eax
jmp 0x10028ce3