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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov esi, dword [esp + 0x30]
mov ebx, dword [ecx + 0xc]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0xffffffff
cmp esi, 2
jb 0x46084a
cmp dword [ecx + 0x30], esi
mov edi, ecx
jae 0x460877
push 0x50d803
push 0x113bb
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041f100
add esp, 0x14
mov ebp, 0xb
mov eax, ebp
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
test edx, edx
je 0x46088e
mov dword [esp + 8], edx
mov eax, dword [edx + 0x48]
inc word [eax + 0x1e]
mov eax, dword [eax + 0xc]
inc dword [eax + 0xc]
jmp 0x460905
mov dword [esp], ebx
mov ebx, dword [edi]
mov eax, dword [ebx + 0xd4]
push 0
push esi
push dword [eax + 0x2c]
call dword [0x51d228]
add esp, 0xc
test eax, eax
je 0x4608c8
mov ebp, eax
mov eax, dword [eax + 4]
mov ecx, dword [ebx + 0xd4]
cmp dword [eax], 0
je 0x4608cf
inc dword [ecx + 0xc]
inc word [eax + 0x1e]
mov ebx, dword [esp]
jmp 0x4608e6
mov ebx, dword [esp]
xor edx, edx
jmp 0x460901
mov edx, esi
push ebp
call fcn.0043fa60
add esp, 4
mov ebx, dword [esp]
test eax, eax
mov edx, 0
je 0x460901
mov edx, dword [eax + 8]
cmp dword [edx + 4], esi
je 0x460901
mov ecx, dword [eax + 4]
mov dword [edx + 0x38], ecx
mov dword [edx + 0x48], eax
mov dword [edx + 0x34], edi
mov dword [edx + 4], esi
mov byte [edx + 9], 0
mov dword [esp + 8], edx
mov ecx, dword [ebx + 0x48]
mov dword [esp + 0xc], edx
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x46091d
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jae 0x460941
mov ebp, dword [eax + 0x28]
test ebp, ebp
je 0x46092c
mov dword [esp + 4], ebp
xor ecx, ecx
jmp 0x460967
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x460952
call fcn.00445510
jmp 0x460957
cmp dword [eax + 0x60], 0
je 0x460a20
call fcn.0043b610
jmp 0x460957
call fcn.00445900
xor ecx, ecx
mov ebp, eax
test eax, eax
mov dword [esp + 4], eax
je 0x460a28
mov eax, dword [esp + 8]
test eax, eax
je 0x4609c4
mov byte [eax], 0
mov dword [esp], ecx
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x460985
call fcn.00442220
jmp 0x4609c1
mov edi, dword [ecx + 0x14]
dec dword [edi + 0x78]
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [edi + 0x88], ecx
mov esi, dword [ecx + 0x18]
mov ebx, dword [edi + 0x98]
dec esi
mov eax, esi
mul ebx
sar ebx, 0x1f
imul ebx, esi
mov esi, dword [edi + 0x3c]
add edx, ebx
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
add esp, 0x10
mov ecx, dword [esp]
test ecx, ecx
je 0x46086d
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x4609df
call fcn.00442220
jmp 0x46086d
mov edi, dword [ecx + 0x14]
dec dword [edi + 0x78]
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [edi + 0x88], ecx
mov esi, dword [ecx + 0x18]
mov ebx, dword [edi + 0x98]
dec esi
mov eax, esi
mul ebx
sar ebx, 0x1f
imul ebx, esi
mov esi, dword [edi + 0x3c]
add edx, ebx
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
add esp, 0x10
jmp 0x46086d
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + 0x24]
bswap ecx
mov dword [esp], ecx
inc ecx
bswap ecx
mov dword [eax + 0x24], ecx
test byte [edi + 0x18], 4
jne 0x460a71
cmp byte [edi + 0x11], 0
je 0x460b28
lea eax, [esp + 4]
mov ecx, edi
mov edx, esi
push eax
push 0
push 2
call fcn.00448580
add esp, 0xc
mov ebp, dword [esp + 4]
xor ecx, ecx
test ebp, ebp
jne 0x460967
jmp 0x460b28
mov eax, dword [esp + 0xc]
test eax, eax
je 0x460ab1
mov ecx, dword [eax + 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x460a91
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jae 0x460ad5
mov ebp, dword [eax + 0x28]
test ebp, ebp
jne 0x460924
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x460ae8
call fcn.00445510
jmp 0x460aed
lea eax, [esp + 8]
mov ecx, edi
mov edx, esi
push 0
push eax
call fcn.00444c70
add esp, 8
test eax, eax
mov dword [esp + 4], eax
je 0x460ae2
mov ebp, eax
xor ecx, ecx
jmp 0x460967
cmp dword [eax + 0x60], 0
je 0x460aff
call fcn.0043b610
jmp 0x460aed
mov eax, dword [esp + 8]
jmp 0x460a79
call fcn.00445900
xor ecx, ecx
mov ebp, eax
test eax, eax
mov dword [esp + 4], eax
jne 0x460967
jmp 0x460b07
mov dword [esp + 4], 0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x34]
push dword [eax + 0x24]
push 0
push dword [ecx + 0x38]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
cmp byte [edi + 0x11], 0
jne 0x460a49
cmp dword [esp], 0
je 0x460b61
mov eax, dword [ebx + 0x38]
lea ecx, [esp + 0x18]
mov edx, dword [eax + 0x20]
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [edi]
bswap edx
push 0
push ecx
mov dword [esp + 0x18], edx
push edx
push eax
call dword [eax + 0xcc]
add esp, 0x10
test eax, eax
je 0x460bb0
mov ebp, eax
jmp 0x460924
mov ebp, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x10], 0
test ebp, ebp
mov dword [esp], edx
je 0x460bcc
mov ecx, dword [ebp + 0x48]
call fcn.00424050
test eax, eax
mov dword [esp + 4], eax
jne 0x460c95
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x38]
bswap esi
mov ecx, ebp
bswap edx
mov dword [eax], edx
mov eax, dword [ebp + 0x38]
xor ebp, ebp
mov dword [eax + 4], 0
mov eax, dword [ebx + 0x38]
mov dword [eax + 0x20], esi
jmp 0x460c97
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov edx, dword [ecx + 8]
cmp dword [edx + 4], ebp
jne 0x460bf1
lea eax, [edx + 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x38]
jmp 0x460c21
lea eax, [esp + 8]
mov ecx, edi
mov edx, esi
push 0
push eax
call fcn.00444c70
add esp, 8
test eax, eax
mov dword [esp + 4], eax
jne 0x460c95
mov ebp, dword [esp + 8]
jmp 0x460b76
mov eax, dword [ecx + 4]
mov dword [esp], eax
lea eax, [edx + 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
mov dword [edx + 0x38], eax
mov dword [edx + 0x48], ecx
mov dword [edx + 0x34], edi
xor ecx, ecx
mov dword [edx + 4], ebp
cmp ebp, 1
mov ebp, edx
mov edx, 0x64
cmovne edx, ecx
mov byte [ebp + 9], dl
mov edx, ebp
mov dword [esp + 4], 0
mov ebp, dword [eax + 4]
mov eax, dword [edi + 0x28]
shr eax, 2
bswap ebp
lea ecx, [eax - 2]
cmp ebp, ecx
jbe 0x460c6f
push 0x50d803
push 0x113f1
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
mov esi, edx
call fcn.0041f100
mov ecx, esi
add esp, 0x14
mov dword [esp + 4], 0xb
mov ebp, 0xb
jmp 0x460967
add eax, 0xfffffff8
mov ecx, ebp
cmp ebp, eax
mov ebp, dword [esp + 0xc]
jae 0x460b6f
mov ebx, ecx
mov ecx, dword [edx + 0x48]
mov dword [esp], edx
call fcn.00424050
test eax, eax
mov dword [esp + 4], eax
je 0x460c9f
mov ebp, eax
mov ecx, dword [esp]
jmp 0x460967
mov edx, dword [esp + 0x14]
lea ecx, [ebx + 1]
bswap ecx
mov eax, dword [edx]
mov dword [eax + 4], ecx
mov ecx, esi
mov eax, dword [edx]
bswap ecx
mov dword [eax + ebx*4 + 8], ecx
mov eax, dword [esp + 0xc]
test eax, eax
je 0x460cea
test byte [edi + 0x18], 4
jne 0x460cea
mov eax, dword [eax + 0x48]
mov edx, dword [eax + 0x14]
cmp byte [edx + 0xc], 0
jne 0x460cea
movzx ecx, word [eax + 0x1c]
test cl, 2
je 0x460cea
cmp dword [edx + 0x60], 0
jne 0x460cea
and ecx, 0xffffffeb
or ecx, 0x10
mov word [eax + 0x1c], cx
mov ecx, edi
mov edx, esi
call fcn.00460d00
mov ebp, eax
mov dword [esp + 4], eax
jmp 0x460c97