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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, dword [ecx + 0xc]
xor ebx, ebx
push edi
mov edi, dword [ecx + 0x30]
mov dword [esp + 0x24], edx
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x24]
bswap eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], eax
cmp eax, edi
jb 0x100ae4e0
push 0x102eb8d4
push 0x11ff8
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.BasicBusinessConfigCenter.dll_sqlite3_log
add esp, 0x14
lea eax, [ebx + 0xb]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x100aebaf
mov eax, dword [ebp + 0xc]
xor dl, dl
cmp byte [ebp + 0x10], 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], ebx
jne 0x100ae527
cmp eax, edi
ja 0x100ae53a
lea edx, [esp + 0xf]
push 0
push edx
mov edx, eax
call fcn.100a9130
add esp, 8
test eax, eax
jne 0x100aed54
cmp byte [esp + 0xf], 2
jne 0x100ae53a
mov al, 1
mov dword [esp + 0x18], eax
jmp 0x100ae53a
cmp byte [ebp + 0x10], 2
mov eax, 1
movzx edx, dl
cmove edx, eax
mov dword [esp + 0x18], edx
mov ecx, dword [esi + 0x48]
call fcn.100a4ee0
test eax, eax
jne 0x100aed54
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x38]
lea ecx, [edx - 1]
bswap ecx
mov dword [eax + 0x24], ecx
nop dword [eax]
mov edi, ebx
mov dword [esp + 0x14], edi
test edi, edi
je 0x100ae571
mov eax, dword [ebx + 0x38]
mov esi, dword [eax]
jmp 0x100ae577
mov eax, dword [esi + 0x38]
mov esi, dword [eax + 0x20]
bswap esi
cmp esi, dword [esp + 0x38]
ja 0x100aeb25
mov ecx, dword [esp + 0x3c]
mov eax, ecx
inc ecx
mov dword [esp + 0x3c], ecx
cmp eax, edx
ja 0x100aeb25
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push 0
push eax
mov edx, esi
call fcn.100aa6a0
mov ebx, eax
add esp, 8
mov dword [esp + 0x44], ebx
test ebx, ebx
jne 0x100aeb48
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x1c], edi
mov edi, dword [edi + 4]
bswap edi
test edi, edi
jne 0x100ae610
test cl, cl
jne 0x100ae610
mov ecx, dword [eax + 0x48]
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
jne 0x100aea9c
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov dword [eax], esi
mov esi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x38]
mov dword [edi], esi
mov eax, dword [esi + 0x38]
xor esi, esi
mov dword [esp + 0x10], esi
mov eax, dword [eax]
mov dword [ecx + 0x20], eax
jmp 0x100ae9ab
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x28]
shr eax, 2
sub eax, 2
cmp edi, eax
ja 0x100aeb07
mov edx, dword [ebp + 0xc]
test cl, cl
je 0x100ae7d5
cmp edx, esi
je 0x100ae645
mov al, byte [ebp + 0x10]
jbe 0x100ae7d8
cmp al, 2
jne 0x100ae7d8
mov eax, dword [ebp + 8]
mov byte [esp + 0x18], 0
mov dword [eax], esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x48]
mov dword [eax], esi
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
jne 0x100aeaa0
test edi, edi
jne 0x100ae6b4
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x100ae68f
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x10], edi
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [ecx + 0x20], eax
jmp 0x100ae9ab
mov ecx, dword [edi + 0x48]
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
jne 0x100aeaa4
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x10], ebx
mov eax, dword [eax]
mov dword [ecx], eax
jmp 0x100ae9ab
mov eax, dword [esi + 0x38]
mov esi, dword [eax + 8]
bswap esi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x38]
ja 0x100aea79
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x30]
push 0
push eax
mov edx, esi
call fcn.100aa6a0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x100aea9c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x48]
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
jne 0x100aea24
mov eax, dword [esp + 0x10]
lea edx, [edi - 1]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x30]
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
mov ecx, edx
mov eax, dword [edi + 0x38]
bswap ecx
mov dword [eax + 4], ecx
lea eax, [edx*4]
push eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
add eax, 0xc
push eax
mov eax, dword [edi + 0x38]
add eax, 8
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [edi + 0x48]
add esp, 0xc
test byte [edx + 0x1c], 0x20
je 0x100ae78f
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push ebx
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [esp + 0x44]
add esp, 0x10
jmp 0x100ae796
mov ecx, edx
call fcn.1009ee90
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x100ae7b3
mov ecx, dword [esp + 0x2c]
bswap esi
mov dword [esp + 0x10], edi
mov eax, dword [ecx + 0x38]
mov dword [eax + 0x20], esi
jmp 0x100ae9ab
mov ecx, dword [edi + 0x48]
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
jne 0x100aeb16
mov eax, dword [edi + 0x38]
bswap esi
mov dword [esp + 0x10], ebx
mov dword [eax], esi
jmp 0x100ae9ab
mov al, byte [ebp + 0x10]
test edi, edi
je 0x100ae9ab
xor esi, esi
mov dword [esp + 0x28], esi
test edx, edx
je 0x100ae888
cmp al, 2
jne 0x100ae81a
xor ecx, ecx
test edi, edi
je 0x100ae884
mov edx, dword [esp + 0x1c]
add edx, 8
mov eax, dword [edx]
bswap eax
cmp eax, dword [ebp + 0xc]
jbe 0x100ae816
inc ecx
add edx, 4
cmp ecx, edi
jb 0x100ae803
jmp 0x100ae881
mov esi, ecx
jmp 0x100ae87d
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
bswap ecx
sub ecx, edx
call fcn.1009a5e0
mov edx, 1
mov dword [esp + 0x34], eax
cmp edi, edx
jbe 0x100ae881
mov ebx, dword [esp + 0x1c]
nop dword [eax + eax]
mov ecx, dword [ebx + edx*4 + 8]
bswap ecx
sub ecx, dword [ebp + 0xc]
jns 0x100ae85c
cmp ecx, 0x80000000
jne 0x100ae85a
mov ecx, closesocket
jmp 0x100ae85c
neg ecx
cmp ecx, dword [esp + 0x34]
mov eax, edx
cmovge eax, esi
inc edx
cmp ecx, dword [esp + 0x34]
mov esi, eax
cmovge ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
cmp edx, edi
jb 0x100ae840
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], esi
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea eax, [eax + esi*4]
add eax, 8
mov dword [esp + 0x44], eax
mov eax, dword [eax]
bswap eax
cmp eax, dword [esp + 0x38]
ja 0x100aeaf8
test cl, cl
je 0x100ae8bc
cmp eax, edx
je 0x100ae8bc
jae 0x100ae9ab
cmp byte [ebp + 0x10], 2
jne 0x100ae9ab
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x10]
mov dword [ecx], eax
mov ecx, dword [esi + 0x48]
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
jne 0x100aeaa0
lea ecx, [edi - 1]
cmp dword [esp + 0x28], ecx
jae 0x100ae8ee
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + edi*4 + 4]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
bswap ecx
mov dword [eax + 4], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 0x40]
mov esi, dword [eax]
test ecx, ecx
je 0x100ae91a
cmp esi, dword [ecx]
ja 0x100ae916
mov edx, esi
call fcn.1009e730
test eax, eax
je 0x100ae91a
xor eax, eax
jmp 0x100ae91f
mov eax, 1
mov edi, dword [esp + 0x24]
mov edx, esi
push eax
push edi
mov ecx, ebx
call fcn.100aa6a0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x100ae9a6
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x48]
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
je 0x100ae9a6
mov edx, dword [edi]
test edx, edx
je 0x100ae9a0
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100ae999
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov edi, dword [esp + 0x34]
add esp, 0x10
jmp 0x100ae9a0
mov ecx, edx
call fcn.1009ee90
mov dword [edi], 0
mov byte [esp + 0x18], 0
mov edx, dword [esp + 0x14]
test edx, edx
je 0x100aea02
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100ae9fb
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x100aea02
mov ecx, edx
call fcn.1009ee90
xor edi, edi
cmp byte [esp + 0x18], 0
mov dword [esp + 0x14], edi
je 0x100aeb16
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
jmp 0x100ae560
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100aea70
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x100aea9c
mov ecx, edx
call fcn.1009ee90
jmp 0x100aea9c
push 0x102eb8d4
push 0x1206f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.BasicBusinessConfigCenter.dll_sqlite3_log
mov ebx, 0xb
add esp, 0x14
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
test esi, esi
je 0x100aeb48
mov edx, dword [esi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100aeb1c
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov edi, dword [esp + 0x24]
add esp, 0x10
jmp 0x100aeb48
push 0x102eb8d4
push 0x120b0
jmp 0x100aea83
push 0x102eb8d4
push 0x1204d
jmp 0x100aea83
mov esi, dword [esp + 0x10]
jmp 0x100aeaa4
mov ecx, edx
call fcn.1009ee90
jmp 0x100aeb48
push 0x102eb8d4
push 0x12030
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.BasicBusinessConfigCenter.dll_sqlite3_log
add esp, 0x14
mov ebx, 0xb
test edi, edi
je 0x100aed52
mov edx, dword [edi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100aeb9f
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.1009ee90
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, ecx
xor eax, eax
mov ecx, dword [esi + 0x48]
cmp byte [ebx + 0x13], al
sete al
mov dword [esp + 0x3c], eax
call fcn.100a4ee0
test eax, eax
jne 0x100aed54
mov eax, dword [0x10311a04]
xor edx, edx
div dword [ebx + 0x24]
inc dword [ebx + 0x30]
mov esi, dword [ebx + 0x30]
inc eax
cmp esi, eax
jne 0x100aebe6
inc esi
mov dword [ebx + 0x30], esi
cmp byte [ebx + 0x11], 0
mov edi, esi
je 0x100aecac
mov edx, esi
mov ecx, ebx
call fcn.100a8fb0
cmp eax, esi
jne 0x100aecac
push dword [esp + 0x3c]
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
push eax
mov edx, esi
mov ecx, ebx
call fcn.100aa6a0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x100aed52
mov esi, dword [esp + 0x40]
mov ecx, dword [esi + 0x48]
call fcn.100a4ee0
mov edx, dword [esi + 0x48]
mov ebx, eax
test byte [edx + 0x1c], 0x20
je 0x100aec80
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x100aec87
mov ecx, edx
call fcn.1009ee90
test ebx, ebx
jne 0x100aed52
mov ebx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [0x10311a04]
div dword [ebx + 0x24]
inc dword [ebx + 0x30]
mov edi, dword [ebx + 0x30]
inc eax
cmp edi, eax
jne 0x100aecac
inc edi
mov dword [ebx + 0x30], edi
mov eax, dword [ebx + 0xc]
mov ecx, ebx
push dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
bswap edi
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + 0x1c], edi
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 0x30]
mov dword [eax], edx
call fcn.100aa6a0
add esp, 8
test eax, eax
jne 0x100aed54
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x48]
call fcn.100a4ee0
mov ebx, eax
test ebx, ebx
je 0x100aed52
mov edx, dword [esi]
test edx, edx
je 0x100aed4c
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100aed45
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101b0580
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [esp + 0x34]
add esp, 0x10
mov eax, ebx
mov dword [esi], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.1009ee90
mov dword [esi], 0
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret