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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x4c
mov ebp, dword [eax + 8]
mov eax, dword [ebp + 4]
mov dword [esp + 8], eax
mov eax, edx
and eax, 2
cmp byte [ebx], 3
mov byte [esp + 0x12], al
je 0x7afe70
mov esi, dword [ebx + 0x74]
movzx edi, word [ebx + 0x46]
movzx eax, byte [ebx + 0x44]
mov edx, dword [esi + 0x40]
mov word [esp + 0x1c], di
mov byte [esp + 0x13], al
movzx eax, byte [edx + edi*2]
movzx edx, byte [edx + edi*2 + 1]
shl eax, 8
or eax, edx
movzx edx, word [esi + 0x1a]
and eax, edx
add eax, dword [esi + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x14]
test eax, eax
js 0x7afe50
cmp byte [esp + 0x12], 0
movzx eax, byte [esi + 8]
je 0x7afc35
test al, al
je 0x7afc18
sub esp, 8
push dword [esp + 0x14]
push esi
call fcn.00761940
add esp, 0x10
mov edx, 0xaaaaaaab
movzx ecx, ax
mov eax, dword [esp + 8]
add ecx, dword [esi + 0x14]
add ecx, 1
mov eax, dword [eax + 0x24]
mov dword [esp + 0x14], eax
add eax, eax
mul edx
shr edx, 1
cmp ecx, edx
jl 0x7aff00
cmp byte [ebx + 0x45], 0
mov eax, ebx
jne 0x7afed0
call fcn.007ae490
mov dword [esp + 0x24], eax
test eax, eax
jne 0x7afc6a
movzx eax, byte [esi + 8]
test al, al
je 0x7afe00
mov dword [esp + 0x14], 0
test byte [ebx + 1], 0x20
jne 0x7afe20
mov ecx, dword [ebx + 0x70]
test ecx, ecx
je 0x7afe90
mov eax, dword [esi + 0x48]
call fcn.007a6440
mov dword [esp + 0x24], eax
test eax, eax
je 0x7afc72
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x28]
mov eax, esi
call fcn.007ab830
mov dword [esp + 0x24], eax
test eax, eax
jne 0x7afc6a
movzx ecx, word [esp + 0x3a]
sub esp, 0xc
mov edx, edi
lea eax, [esp + 0x30]
push eax
mov eax, esi
call fcn.00789590
mov eax, dword [esp + 0x34]
add esp, 0x10
test eax, eax
jne 0x7afc6a
cmp byte [esi + 8], 0
jne 0x7afda7
mov ebp, dword [ebx + 0x74]
mov edx, dword [ebp + 0x14]
test edx, edx
js 0x7affb3
movsx eax, byte [ebx + 0x44]
movsx edx, byte [esp + 0x13]
sub eax, 1
cmp eax, edx
jle 0x7aff20
mov eax, dword [ebx + edx*4 + 0x7c]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
movzx edx, word [ebp + 0x18]
mov ecx, dword [ebp + 0x40]
sub edx, 1
movzx eax, byte [ecx + edx*2]
movzx ecx, byte [ecx + edx*2 + 1]
shl eax, 8
or eax, ecx
movzx ecx, word [ebp + 0x1a]
and eax, ecx
add eax, dword [ebp + 0x38]
mov ecx, eax
mov eax, dword [ebp + 0x38]
add eax, 4
cmp ecx, eax
jb 0x7affe0
sub esp, 8
push ecx
mov dword [esp + 0x18], ecx
push ebp
call dword [ebp + 0x4c]
mov word [esp + 0x2e], ax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x48]
call fcn.007a6440
mov dword [esp + 0x34], eax
add esp, 0x10
test eax, eax
mov ecx, dword [esp + 0xc]
jne 0x7afc6a
lea edx, [esp + 0x24]
movzx eax, word [esp + 0x1e]
sub ecx, 4
push edx
mov edx, edi
push dword [esp + 0x1c]
push dword [esp + 0x10]
mov dword [esp + 0x14], eax
add eax, 4
push eax
mov eax, esi
call fcn.007aba20
movzx edx, word [ebp + 0x18]
mov eax, dword [esp + 0x34]
add esp, 0x10
sub edx, 1
test eax, eax
jne 0x7afc6a
sub esp, 0xc
mov eax, ebp
lea edi, [esp + 0x30]
push edi
mov ecx, dword [esp + 0x18]
call fcn.00789590
mov eax, dword [esp + 0x34]
add esp, 0x10
test eax, eax
jne 0x7afc6a
mov eax, ebx
call fcn.007ad880
mov dword [esp + 0x24], eax
test eax, eax
jne 0x7afc6a
movzx eax, byte [esp + 0x13]
cmp al, byte [ebx + 0x44]
jl 0x7aff30
mov eax, dword [esp + 0x14]
test eax, eax
je 0x7aff91
mov byte [ebx], 2
movzx eax, word [esi + 0x18]
cmp word [esp + 0x1c], ax
jb 0x7affd0
sub eax, 1
mov dword [ebx + 4], 0xffffffff
mov word [ebx + 0x46], ax
mov eax, dword [esp + 0x24]
jmp 0x7afc6a
sub esp, 8
push 0
push ebx
call fcn.007af970
mov dword [esp + 0x34], eax
add esp, 0x10
test eax, eax
je 0x7afc3d
jmp 0x7afc6a
mov eax, dword [esp + 8]
mov edx, dword [ebx + 0x40]
mov ecx, ebx
mov eax, dword [eax + 8]
call fcn.007ae600
mov dword [esp + 0x24], eax
test eax, eax
jne 0x7afc6a
mov ecx, dword [ebx + 0x70]
test ecx, ecx
jne 0x7afc5a
jmp 0x7afe90
mov eax, esi
call fcn.00788ff0
mov edx, eax
mov eax, 0xb
test edx, edx
je 0x7afbd2
jmp 0x7afc6a
mov eax, ebx
call fcn.007af7b0
mov dword [esp + 0x24], eax
test eax, eax
je 0x7afb95
jmp 0x7afc6a
cmp byte [ebp + 0xb], 0
je 0x7afc5a
sub esp, 4
mov ecx, dword [ebx + 0x40]
mov eax, dword [ebp + 4]
lea edx, [ebp + 0xb]
push 0
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.0076cb80
mov eax, dword [esi + 0x48]
add esp, 0x10
call fcn.007a6440
mov dword [esp + 0x24], eax
test eax, eax
jne 0x7afc6a
jmp 0x7afc72
call fcn.00761b80
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x24], 0
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], edx
movzx eax, byte [esi + 8]
test al, al
jne 0x7afc3d
jmp 0x7afe00
cmp word [esi + 0x18], 1
mov dword [esp + 0x14], 1
jne 0x7afc45
jmp 0x7afc18
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
jmp 0x7afce1
mov eax, dword [ebx + 0x74]
mov edi, ebx
mov eax, dword [eax + 0x48]
call fcn.00761530
movzx eax, byte [ebx + 0x44]
sub eax, 1
mov byte [ebx + 0x44], al
movzx ebx, byte [esp + 0x13]
jmp 0x7aff69
lea ecx, [eax - 1]
sub eax, 1
mov byte [edi + 0x44], cl
test edx, edx
je 0x7aff6c
mov eax, dword [edx + 0x48]
call fcn.00761530
movzx eax, byte [edi + 0x44]
movsx eax, al
mov edx, dword [edi + eax*4 + 0x78]
cmp bl, al
jl 0x7aff50
mov dword [edi + 0x74], edx
mov eax, edi
mov ebx, edi
call fcn.007ad880
mov dword [esp + 0x24], eax
test eax, eax
je 0x7afdc8
jmp 0x7afc6a
mov eax, ebx
call fcn.00788c30
cmp byte [esp + 0x12], 0
mov dword [esp + 0x24], eax
jne 0x7b000b
cmp eax, 0x10
mov edx, 0
cmove eax, edx
jmp 0x7afc6a
mov eax, ebp
call fcn.00788ff0
mov dword [esp + 0x24], eax
test eax, eax
je 0x7afcc2
jmp 0x7afc6a
mov dword [ebx + 4], 1
mov eax, dword [esp + 0x24]
jmp 0x7afc6a
sub esp, 0xc
push 0xbeb7d8
push 0x11d8e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00787f60
add esp, 0x20
mov eax, 0xb
jmp 0x7afc6a
mov eax, ebx
call fcn.0076cbe0
mov byte [ebx], 3
mov eax, dword [esp + 0x24]
jmp 0x7affa3