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

Disassembly:
sub esp, 0x1c
push ebx
mov ebx, dword [esp + 0x24]
push ebp
xor ebp, ebp
push esi
mov eax, dword [ebx + 0x14]
push edi
mov ecx, dword [eax + 0x28]
mov eax, 0xaaaaaaab
add ecx, ecx
mul ecx
shr edx, 1
xor eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
jmp 0x46d030
mov esi, dword [ebx + 0x74]
cmp dword [esi + 0x14], 0
jge 0x46d04e
push esi
call fcn.0046ef90
add esp, 4
test eax, eax
jne 0x46d21f
mov edx, dword [esp + 0x10]
mov cl, byte [esi + 0xc]
test cl, cl
jne 0x46d05e
cmp dword [esi + 0x14], edx
jle 0x46d21f
movsx eax, byte [ebx + 0x44]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46d0cb
test cl, cl
je 0x46d21f
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 8]
test eax, eax
je 0x46d09c
lea esp, [esp]
cmp eax, ebx
je 0x46d095
cmp byte [eax], 0
jne 0x46d095
mov ecx, dword [eax + 0x74]
cmp ecx, dword [ebx + 0x74]
je 0x46d1fc
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x46d080
lea edi, [ebx + 0x7c]
push edi
push esi
call fcn.0046d240
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x46d21f
mov edx, dword [esp + 0x10]
mov byte [ebx + 0x44], 1
mov dword [ebx + 0x46], eax
mov eax, dword [edi]
mov dword [ebx + 0x78], esi
mov dword [ebx + 0x74], eax
jmp 0x46d030
mov edi, dword [ebx + eax*4 + 0x74]
movzx eax, word [ebx + eax*2 + 0x46]
mov dword [esp + 0x30], eax
push dword [edi + 0x48]
call fcn.004c5ea0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x46d18c
cmp dword [edi + 0x14], eax
jge 0x46d105
push edi
call fcn.0046ef90
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x46d18c
cmp byte [esi + 3], 0
je 0x46d140
cmp byte [esi + 0xc], 1
jne 0x46d140
mov ax, word [esi + 0x1c]
cmp ax, word [esi + 0x18]
jne 0x46d140
cmp dword [edi + 4], 1
mov ebp, dword [esp + 0x30]
je 0x46d144
movzx eax, word [edi + 0x18]
cmp eax, ebp
jne 0x46d144
lea eax, [esp + 0x1c]
push eax
push esi
push edi
call fcn.0046e790
add esp, 0xc
mov ebp, eax
jmp 0x46d18c
mov ebp, dword [esp + 0x30]
mov eax, dword [ebx + 0x14]
push dword [eax + 0x24]
call fcn.0049a490
movzx ecx, byte [ebx + 3]
and ecx, 1
mov dword [esp + 0x34], eax
push ecx
xor ecx, ecx
cmp dword [esp + 0x20], 1
sete cl
push ecx
push eax
push ebp
push edi
call fcn.0046d350
mov ebp, eax
add esp, 0x18
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46d184
push eax
call fcn.0049a8c0
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x48]
mov byte [esi + 0xc], 0
test byte [edx + 0x1c], 0x20
je 0x46d1d8
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.004021f0
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x46d1e1
push edx
call fcn.004c6f10
add esp, 4
dec byte [ebx + 0x44]
movsx eax, byte [ebx + 0x44]
mov eax, dword [ebx + eax*4 + 0x78]
mov dword [ebx + 0x74], eax
test ebp, ebp
jne 0x46d21f
mov edx, dword [esp + 0x10]
jmp 0x46d030
push 0x52b284
push 0x11caf
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00466a50
add esp, 0x14
mov ebp, 0xb
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46d230
push eax
call fcn.0049a8c0
add esp, 4
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x1c
ret