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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov edi, ecx
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [esp + 0x30], eax
mov ebx, dword [ebp + 0x14]
test edx, edx
mov dword [esp], ecx
mov dword [esp + 4], edx
je 0x101441ef
mov eax, dword [edx]
mov dword [esp + 0x10], 0x1015fcd0
cmp word [eax + 8], 0xd
mov esi, edx
ja 0x10143ee2
mov ecx, dword [esi + 4]
movzx ecx, word [ecx + 8]
mov edx, dword [eax + 0x10]
mov bl, byte [edx]
test bl, bl
jne 0x10144556
mov dl, 1
mov dh, 0xff
mov esi, dword [esp + 4]
mov byte [esi + 0xc], dh
mov byte [esi + 0xd], dl
mov edx, fcn.101445d0
test cl, 4
je 0x1014423d
mov dword [esp + 0x10], edx
mov byte [esi + 0xb], 0
mov esi, dword [esp + 0x10]
mov ecx, edi
call fcn.1000e2e0
test eax, eax
jne 0x101443d5
lea eax, [edi + 0x74]
mov dword [esp + 0x24], eax
xor ecx, ecx
inc ecx
sub ecx, dword [ebp + 0x10]
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], ecx
mov ebx, dword [edi + 0x74]
movzx edx, word [ebx + 0x18]
dec edx
mov dword [esp + 0x1c], edx
sar edx, cl
mov word [edi + 0x46], dx
test esi, esi
mov dword [esp + 0xc], ebx
je 0x101440df
mov dword [esp + 0x14], 0
mov eax, dword [ebx + 0x40]
mov esi, dword [ebx + 0x44]
movzx edi, word [ebx + 0x1a]
mov dword [esp + 8], edx
movzx eax, word [eax + edx*2]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
add esp, 4
and eax, edi
lea edi, [esi + eax]
inc edi
mov ecx, ebx
movzx ebx, byte [edi - 1]
cmp bl, byte [ecx + 0xb]
ja 0x10143fbc
mov ecx, dword [esp + 0x10]
cmp ecx, fcn.101445d0
jne 0x10143ff8
push dword [esp + 4]
push edi
push ebx
call fcn.101445d0
add esp, 0xc
mov ebx, eax
mov edi, dword [esp]
test ebx, ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 8]
jns 0x10143fb1
lea ecx, [edx + 1]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
jg 0x10144033
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
lea edx, [eax + ecx]
sar edx, 1
mov ebx, dword [esp + 0xc]
jmp 0x10143f34
je 0x10144266
lea eax, [edx - 1]
jmp 0x10143f96
add esi, eax
movzx eax, byte [edi]
test al, al
js 0x10144292
and ebx, 0x7f
shl ebx, 7
add ebx, eax
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 0xe]
cmp ebx, eax
ja 0x10144292
add esi, 2
mov ecx, dword [esp + 0x10]
call dword [section..00cfg]
push dword [esp + 4]
push esi
push ebx
call ecx
jmp 0x10143f7b
cmp ecx, fcn.1000e970
jne 0x10144010
push dword [esp + 4]
push edi
push ebx
call fcn.1000e970
jmp 0x10143f7b
cmp ecx, 0x1015fcd0
jne 0x10144578
mov ecx, ebx
mov edx, edi
push 0
push dword [esp + 8]
call fcn.101446c0
add esp, 8
jmp 0x10143f7e
mov edx, dword [esp + 0xc]
cmp byte [edx + 8], 0
jne 0x101441c5
movzx eax, word [edx + 0x18]
mov esi, dword [edx + 0x38]
cmp ecx, eax
jge 0x1014425a
movzx edi, word [edx + 0x1a]
mov eax, dword [edx + 0x40]
movzx eax, word [eax + ecx*2]
push eax
mov ebx, ecx
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
mov ecx, ebx
add esp, 4
and ax, di
mov edi, dword [esp]
movzx eax, ax
mov eax, dword [esi + eax]
mov word [edi + 0x46], cx
movsx esi, byte [edi + 0x44]
cmp esi, 0x13
jge 0x101444e4
mov ebx, ecx
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ecx, dword [edi + 0x14]
xor edx, edx
mov word [edi + 0x32], dx
and byte [edi + 1], 0xf9
mov word [edi + esi*2 + 0x48], bx
mov edx, dword [edi + 0x74]
movsx esi, byte [edi + 0x44]
mov dword [edi + esi*4 + 0x78], edx
xor edx, edx
mov word [edi + 0x46], dx
inc byte [edi + 0x44]
movzx esi, byte [edi + 2]
mov edx, eax
push esi
push edi
push dword [esp + 0x2c]
call fcn.1000e4a0
add esp, 0xc
test eax, eax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
je 0x10143f0e
jmp 0x10144408
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x40]
mov esi, dword [ebx + 0x44]
movzx edi, word [ebx + 0x1a]
mov dword [esp + 8], edx
movzx eax, word [eax + edx*2]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
add esp, 4
and eax, edi
add eax, esi
cmp byte [ebx + 3], 0
je 0x1014450c
mov edi, dword [esp]
cmp byte [eax], 0
jns 0x10144127
inc eax
cmp eax, dword [ebx + 0x3c]
jb 0x10144117
jmp 0x101444bc
inc eax
mov ecx, eax
lea edx, [esp + 0x28]
call fcn.1000e170
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
cmp eax, ebx
mov edx, ecx
mov esi, dword [ebp + 0xc]
sbb edx, esi
jl 0x1014416a
cmp ebx, eax
mov edx, esi
sbb edx, ecx
jge 0x10144192
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 8]
cmp ecx, eax
mov ebx, dword [esp + 0xc]
jge 0x101444ab
dec eax
mov edx, eax
jmp 0x10144181
mov eax, dword [esp + 8]
lea ecx, [eax + 1]
mov edx, dword [esp + 0x1c]
cmp eax, edx
mov ebx, dword [esp + 0xc]
jge 0x10144484
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
add edx, ecx
sar edx, 1
jmp 0x101440eb
mov esi, dword [esp + 8]
mov word [edi + 0x46], si
mov edx, dword [esp + 0xc]
cmp byte [edx + 8], 0
je 0x10144571
or byte [edi + 1], 2
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov word [edi + 0x32], 0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
xor ebx, ebx
jmp 0x101441da
mov eax, dword [esp + 8]
mov word [edi + 0x46], ax
mov eax, dword [ebp + 0x14]
mov dword [eax], ebx
xor ebx, ebx
mov word [edi + 0x32], 0
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.1014dc80
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
cmp byte [edi], 0
jne 0x10143eea
movzx eax, byte [edi + 1]
test al, 2
je 0x10143eea
mov dword [esp + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
mov esi, ecx
mov edi, dword [ebp + 0xc]
xor esi, edi
mov edi, eax
mov edx, dword [ebp + 8]
xor edi, edx
or edi, esi
je 0x10144479
cmp eax, edx
mov esi, ecx
sbb esi, dword [ebp + 0xc]
jl 0x101443ee
mov edi, dword [esp]
xor esi, esi
jmp 0x10143eea
test cl, 0x39
jne 0x10143ee2
mov edx, fcn.1000e970
cmp dword [eax + 0x14], 0
je 0x10143ede
jmp 0x10143ee2
movzx eax, byte [edx + 9]
add eax, 8
jmp 0x10144071
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
mov word [edi + 0x46], dx
xor ebx, ebx
mov eax, dword [esp + 4]
cmp byte [eax + 0xb], 0
je 0x101441d4
push 0x101c47ed
push 0x115d0
jmp 0x101444ee
mov ebx, dword [esp + 0xc]
movzx eax, byte [ebx + 0xa]
sub esi, eax
mov ecx, dword [ebx + 0x50]
mov edi, dword [esp]
lea eax, [edi + 0x20]
mov dword [esp + 0x18], eax
call dword [section..00cfg]
push dword [esp + 0x18]
push esi
mov esi, edi
push ebx
call ecx
add esp, 0xc
mov edi, dword [edi + 0x20]
cmp edi, 2
jl 0x10144525
mov ecx, dword [esi + 0x14]
mov eax, edi
xor edx, edx
div dword [ecx + 0x28]
cmp eax, dword [ecx + 0x30]
ja 0x10144525
lea ecx, [edi + 0x12]
mov edx, ecx
sar edx, 0x1f
call fcn.10144e50
test eax, eax
je 0x1014454f
mov esi, eax
mov ecx, dword [esp]
mov eax, dword [esp + 8]
mov word [ecx + 0x46], ax
xor edx, edx
push 0
push esi
push edi
call fcn.10011da0
add esp, 0xc
mov ebx, eax
xorps xmm0, xmm0
movups xmmword [esi + edi], xmm0
mov word [esi + edi + 0x10], 0
mov eax, dword [esp]
and byte [eax + 1], 0xfb
test ebx, ebx
jne 0x10144514
mov ecx, edi
mov dword [esp + 0x18], esi
mov edx, esi
push 0
push dword [esp + 8]
call fcn.101446c0
add esp, 8
mov ebx, eax
cmp dword [0x101db020], 0
je 0x10144588
mov esi, dword [0x101ddc98]
test esi, esi
mov edi, dword [esp]
je 0x10144375
mov ecx, dword [0x101db070]
cmp ecx, 0x1012e640
jne 0x101445a2
push esi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov ecx, dword [0x101db04c]
call dword [section..00cfg]
mov esi, dword [esp + 0x18]
push esi
call ecx
add esp, 4
sub dword [0x101ddc44], eax
dec dword [0x101ddc68]
mov ecx, dword [0x101db044]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov esi, dword [0x101ddc98]
test esi, esi
je 0x10143f83
mov ecx, dword [0x101db078]
cmp ecx, 0x1012e630
jne 0x101445b3
push esi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
jmp 0x10143f83
mov ebx, eax
cmp eax, 0x10
jne 0x101441da
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xffffffff
jmp 0x101441c1
test byte [esp + 8], 8
mov edi, dword [esp]
mov esi, 0
je 0x1014440f
mov dword [ebx], 0xffffffff
jmp 0x101441c1
mov ebx, eax
jmp 0x101441d4
add eax, 1
adc ecx, 0
xor eax, dword [ebp + 8]
xor ecx, dword [ebp + 0xc]
or ecx, eax
jne 0x10143eea
mov dword [ebx], 0
mov word [edi + 0x32], 0
and byte [edi + 1], 0xf9
cmp byte [edi], 0
jne 0x10144490
mov eax, dword [edi + 0x74]
movzx ecx, word [edi + 0x46]
lea edx, [ecx + 1]
mov word [edi + 0x46], dx
cmp dx, word [eax + 0x18]
jae 0x1014448c
cmp byte [eax + 8], 0
je 0x101444b3
mov ecx, edi
call fcn.10143ac0
mov eax, dword [edi + 0x24]
xor eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0x20]
xor ecx, dword [ebp + 8]
xor esi, esi
or ecx, eax
mov ebx, 0
je 0x101441da
jmp 0x10143eea
mov dword [ebx], 0
jmp 0x101441c1
xor ebx, ebx
dec ebx
jmp 0x10144033
mov word [edi + 0x46], cx
mov ecx, edi
call fcn.1000f570
mov ebx, eax
test eax, eax
je 0x10144452
cmp ebx, 0x65
je 0x10143eea
jmp 0x101441da
xor ebx, ebx
inc ebx
jmp 0x10144033
mov ecx, edi
call fcn.1000eed0
jmp 0x10144497
push 0x101c47ed
push 0x11565
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov ebx, 0xb
jmp 0x101441da
push 0x101c47ed
push 0x113c3
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov ebx, 0xb
jmp 0x101441d4
mov edi, dword [esp]
jmp 0x10144128
push esi
call sym.nss3.dll_sqlite3_free
add esp, 4
mov edi, dword [esp]
jmp 0x101441d4
push 0x101c47ed
push 0x115b0
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov ebx, 0xb
mov edi, esi
jmp 0x101441d4
mov ebx, 7
jmp 0x1014451d
mov edx, 0x1015fcd0
test bl, 2
mov esi, dword [esp + 4]
jne 0x10143ede
mov dl, 0xff
mov dh, 1
jmp 0x10143ec6
mov ecx, esi
jmp 0x10144041
call dword [section..00cfg]
push dword [esp + 4]
push edi
jmp 0x10143ff3
mov ecx, dword [0x101db044]
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
add esp, 4
jmp 0x10143f80
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x10144375
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x10143f83