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

Disassembly:
push ebp
mov ebp, eax
mov ecx, 0xaaaaaaab
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [eax + 0x14]
mov ebx, dword [ebp + 0x74]
mov dword [esp + 8], 0
mov edx, dword [eax + 0x24]
add edx, edx
mov eax, edx
mul ecx
shr edx, 1
mov dword [esp + 4], edx
nop
mov esi, dword [ebx + 0x14]
test esi, esi
js 0x7ad996
cmp byte [ebx + 0xc], 0
jne 0x7ad9b0
mov eax, dword [esp + 4]
cmp dword [ebx + 0x14], eax
jle 0x7ad9a5
movsx edi, byte [ebp + 0x44]
test edi, edi
je 0x7adb5a
movzx eax, word [ebp + edi*2 + 0x46]
mov esi, dword [ebp + edi*4 + 0x74]
mov word [esp], ax
mov eax, dword [esi + 0x48]
call fcn.007a6440
test eax, eax
jne 0x7adb32
mov edx, dword [esi + 0x14]
test edx, edx
js 0x7adb23
cmp byte [ebx + 3], 0
je 0x7ad916
cmp byte [ebx + 0xc], 1
je 0x7adc40
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x20]
call fcn.007674c0
movzx edx, word [esp]
sub esp, 8
mov ecx, eax
movzx eax, byte [ebp + 3]
and eax, 1
push eax
xor eax, eax
cmp edi, 1
sete al
push eax
mov eax, esi
mov dword [esp + 0x10], ecx
call fcn.007abd10
add esp, 0x10
mov edi, eax
mov eax, dword [esp + 8]
test eax, eax
je 0x7adc30
call fcn.0076bac0
mov ecx, dword [esp]
mov dword [esp + 8], ecx
mov byte [ebx + 0xc], 0
mov eax, dword [ebx + 0x48]
call fcn.00761530
movzx eax, byte [ebp + 0x44]
sub eax, 1
mov byte [ebp + 0x44], al
movsx eax, al
mov ebx, dword [ebp + eax*4 + 0x78]
mov dword [ebp + 0x74], ebx
test edi, edi
jne 0x7adb5a
mov esi, dword [ebx + 0x14]
test esi, esi
jns 0x7ad8bb
mov eax, ebx
call fcn.00788ff0
test eax, eax
je 0x7ad8bb
xor edi, edi
jmp 0x7adb5a
movsx edi, byte [ebp + 0x44]
test edi, edi
jne 0x7ad8de
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
test eax, eax
je 0x7ad9ec
lea esi, [esi]
lea esi, [esi]
cmp ebp, eax
je 0x7ad9e5
cmp byte [eax], 0
jne 0x7ad9e5
mov esi, dword [ebp + 0x74]
cmp dword [eax + 0x74], esi
je 0x7adb74
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x7ad9d0
mov eax, dword [ebx + 0x48]
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 0
call fcn.007a6440
mov dword [esp + 0x28], eax
test eax, eax
je 0x7ada51
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x7c], 0
test eax, eax
je 0x7adbf4
mov eax, dword [eax + 0x48]
call fcn.00761530
mov edi, dword [esp + 0x28]
test edi, edi
jne 0x7adb5a
mov eax, dword [ebp + 0x7c]
mov dword [ebp + 0x78], ebx
mov ebx, eax
mov byte [ebp + 0x44], 1
mov dword [ebp + 0x46], 0
mov dword [ebp + 0x74], eax
jmp 0x7ad8b0
sub esp, 8
mov eax, edi
push 0
push dword [ebx + 4]
lea ecx, [esp + 0x50]
lea edx, [esp + 0x3c]
call fcn.007a9e20
mov dword [esp + 0x38], eax
add esp, 0x10
test eax, eax
jne 0x7adc00
lea eax, [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov esi, eax
mov eax, ebx
call fcn.007aa9f0
cmp byte [edi + 0x11], 0
jne 0x7adc10
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
test ecx, ecx
jne 0x7ada13
movzx edx, byte [ebx + 0xc]
lea edi, [eax + 0x1c]
lea esi, [ebx + 0x1c]
mov dword [esp], edi
lea ecx, [edx + edx]
cmp ecx, 4
jae 0x7adba0
test ecx, ecx
je 0x7adad4
movzx edx, byte [esi]
mov byte [eax + 0x1c], dl
test cl, 2
jne 0x7adde0
movzx edx, byte [ebx + 0xc]
shl edx, 2
lea ecx, [eax + 0x24]
lea esi, [ebx + 0x24]
cmp edx, 4
jae 0x7adbd0
test edx, edx
je 0x7adaef
movzx edx, byte [esi]
mov byte [ecx], dl
movzx edx, byte [ebx + 0xc]
mov byte [eax + 0xc], dl
mov eax, dword [eax + 0x38]
movzx edx, byte [eax]
mov eax, ebx
and edx, 0xfffffff7
call fcn.00788380
mov eax, dword [esp + 0x40]
movzx edx, byte [ebx + 9]
mov ecx, dword [ebx + 0x38]
bswap eax
mov dword [ecx + edx + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x7c], eax
jmp 0x7ada39
mov eax, esi
call fcn.00788ff0
test eax, eax
je 0x7ad906
mov byte [ebx + 0xc], 0
mov dword [esp], eax
mov eax, dword [ebx + 0x48]
call fcn.00761530
movzx eax, byte [ebp + 0x44]
mov edx, dword [esp]
sub eax, 1
mov edi, edx
mov byte [ebp + 0x44], al
movsx eax, al
mov eax, dword [ebp + eax*4 + 0x78]
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 8]
test eax, eax
je 0x7adb67
call fcn.0076bac0
add esp, 0x8c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
mov edi, 0xb
push 0xbeb7d8
push 0x11aff
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00787f60
add esp, 0x20
jmp 0x7adb5a
mov edx, dword [ebx + 0x1c]
mov dword [eax + 0x1c], edx
mov edx, dword [esi + ecx - 4]
mov edi, dword [esp]
mov dword [edi + ecx - 4], edx
lea edi, [eax + 0x20]
mov edx, dword [esp]
and edi, 0xfffffffc
sub edx, edi
add ecx, edx
sub esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x7adad0
mov edi, dword [ebx + 0x24]
mov dword [eax + 0x24], edi
mov edi, dword [esi + edx - 4]
mov dword [ecx + edx - 4], edi
lea edi, [eax + 0x28]
and edi, 0xfffffffc
sub ecx, edi
sub esi, ecx
add ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x7adaef
mov edi, dword [esp + 0x28]
jmp 0x7adb5a
cmp byte [edi + 0x11], 0
je 0x7ada0f
lea eax, [esp + 0x28]
mov esi, eax
sub esp, 8
mov ecx, 5
mov eax, edi
push esi
push dword [ebx + 4]
mov edx, dword [esp + 0x50]
call fcn.007aa6c0
add esp, 0x10
jmp 0x7ada94
mov eax, dword [esp]
mov dword [esp + 8], eax
jmp 0x7ad963
movzx eax, word [ebx + 0x18]
cmp word [ebx + 0x1c], ax
jne 0x7ad916
cmp dword [esi + 4], 1
je 0x7ad916
movzx ecx, word [esp]
cmp cx, word [esi + 0x18]
jne 0x7ad916
test ax, ax
je 0x7addf6
mov eax, dword [ebx + 0x34]
lea ecx, [esp + 0x28]
sub esp, 8
mov dword [esp + 8], eax
push 0
push 0
lea edx, [esp + 0x30]
call fcn.007a9e20
mov dword [esp + 0x34], eax
mov edi, eax
add esp, 0x10
test eax, eax
jne 0x7ad963
mov eax, dword [ebx + 0x24]
sub esp, 8
mov dword [esp + 0x34], eax
push eax
push ebx
call dword [ebx + 0x4c]
mov edx, 0xd
mov word [esp + 0x2e], ax
mov eax, dword [esp + 0x30]
call fcn.00788380
lea eax, [esp + 0x3c]
mov dword [esp + 0x54], ebx
xor edx, edx
mov dword [esp + 0x58], eax
lea eax, [esp + 0x2e]
mov ecx, 1
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x50], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x78], 2
pop eax
push dword [esp + 0x2c]
lea eax, [esp + 0x50]
call fcn.00789ce0
mov dword [esp + 0x34], eax
mov edi, eax
add esp, 0x10
test eax, eax
jne 0x7ade21
mov ecx, dword [esp + 0x20]
movzx edx, word [esp + 0x1e]
mov eax, 0xfffffffe
sub eax, edx
movzx edx, word [ecx + 0x12]
sub eax, edx
mov edx, dword [esp]
add eax, dword [edx + 0x24]
mov dword [ecx + 0x14], eax
cmp byte [edx + 0x11], 0
jne 0x7ade56
movzx eax, word [ebx + 0x18]
mov edx, dword [ebx + 0x40]
mov dword [esp + 0xc], ebx
sub eax, 1
movzx ecx, byte [edx + eax*2]
movzx eax, byte [edx + eax*2 + 1]
shl ecx, 8
or ecx, eax
movzx eax, word [ebx + 0x1a]
and eax, ecx
add eax, dword [ebx + 0x38]
mov ecx, eax
lea eax, [eax + 9]
mov dword [esp], eax
jmp 0x7add68
mov ecx, eax
lea eax, [ecx + 1]
mov dword [esp + 0x2c], eax
movzx edx, byte [eax - 1]
shr dl, 7
cmp dword [esp], eax
seta bl
test dl, bl
jne 0x7add66
lea eax, [ecx + 0xa]
lea edx, [ecx + 2]
mov dword [esp], eax
lea ecx, [esp + 0x37]
jmp 0x7add94
cmp dword [esp], ebx
jbe 0x7addab
mov dword [esp + 0x2c], edx
movzx eax, byte [edx - 1]
add ecx, 1
mov ebx, edx
add edx, 1
mov byte [ecx - 1], al
test al, al
js 0x7add8f
mov ebx, dword [esp + 0xc]
test edi, edi
je 0x7ade2e
mov eax, dword [esp + 0x28]
movzx edx, byte [esi + 9]
mov ecx, dword [esi + 0x38]
bswap eax
mov dword [ecx + edx + 8], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x7addd4
mov eax, dword [eax + 0x48]
call fcn.00761530
mov edi, dword [esp + 0x24]
jmp 0x7ad963
movzx edx, word [esi + ecx - 2]
mov esi, dword [esp]
mov word [esi + ecx - 2], dx
movzx edx, byte [ebx + 0xc]
jmp 0x7adad4
sub esp, 0xc
mov edi, 0xb
push 0xbeb7d8
push 0x116c9
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00787f60
add esp, 0x20
jmp 0x7ad963
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x7addcc
jmp 0x7ad963
lea eax, [esp + 0x24]
lea edi, [esp + 0x33]
movzx edx, word [esi + 0x18]
push eax
mov eax, ecx
mov ecx, edi
sub eax, edi
push dword [ebx + 4]
push 0
push eax
mov eax, esi
call fcn.007aba20
add esp, 0x10
jmp 0x7addb3
sub esp, 8
mov ecx, 5
lea edi, [esp + 0x2c]
push edi
push dword [esi + 4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
call fcn.007aa6c0
mov eax, dword [esp + 0x30]
add esp, 0x10
movzx ecx, word [esp + 0x1e]
cmp word [eax + 0x10], cx
jb 0x7ade8e
mov edi, dword [esp + 0x24]
jmp 0x7add37
sub esp, 0xc
lea edx, [eax + 0x3c]
push edi
mov ecx, dword [esp + 0x3c]
call fcn.007aa840
mov edi, dword [esp + 0x34]
add esp, 0x10
jmp 0x7add37