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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], edi
cmp ebx, 2
jae 0x4548e2
xor ecx, ecx
jmp 0x454912
mov eax, 0xcccccccd
lea esi, [ebx - 2]
mul dword [edi + 0x24]
mov eax, esi
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
mov eax, dword [0x5352fc]
xor ecx, ecx
sub esi, edx
xor edx, edx
div dword [edi + 0x20]
dec eax
cmp esi, eax
sete cl
add ecx, 2
add ecx, esi
mov esi, dword [ebp + 0xc]
cmp ecx, ebx
je 0x454bef
mov eax, dword [0x5352fc]
xor edx, edx
div dword [edi + 0x20]
inc eax
cmp ebx, eax
je 0x454bef
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x24]
bswap eax
test eax, eax
jne 0x45494b
mov eax, 0x65
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x30]
mov edx, ebx
push eax
lea eax, [esp + 0x1c]
mov ecx, edi
push eax
call fcn.004514c0
add esp, 8
test eax, eax
jne 0x454c4e
mov eax, dword [esp + 0x18]
cmp al, 1
jne 0x45499b
push 0x52a07c
push 0x10911
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043d780
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 2
jne 0x454a2c
test esi, esi
jne 0x454c4c
push 1
lea eax, [esp + 0x38]
mov ecx, edi
push ebx
push eax
lea edx, [esp + 0x24]
call fcn.00456d40
add esp, 0xc
test eax, eax
jne 0x454c4e
mov edx, dword [esp + 0x18]
test edx, edx
je 0x454bf3
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x454a20
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.00511980
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x454bf3
mov ecx, edx
call fcn.00444eb0
jmp 0x454bf3
lea eax, [esp + 0x10]
mov edx, ebx
push 0
push eax
mov ecx, edi
call fcn.00452930
add esp, 8
test eax, eax
jne 0x454c4e
mov ecx, dword [esp + 0x14]
test esi, esi
setne dl
cmovne ecx, eax
dec dl
mov dword [esp + 0x28], ecx
and dl, 2
mov dword [esp + 0x2c], edx
push edx
push ecx
lea eax, [esp + 0x2c]
mov ecx, edi
push eax
lea edx, [esp + 0x2c]
call fcn.00456d40
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], esi
test esi, esi
jne 0x454b84
mov edx, dword [esp + 0x20]
test edx, edx
je 0x454ade
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x454ad7
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.00511980
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov edi, dword [esp + 0x2c]
add esp, 0x10
jmp 0x454ade
mov ecx, edx
call fcn.00444eb0
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
test esi, esi
je 0x454afb
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x14]
ja 0x454a60
mov edx, dword [esp + 0x10]
mov ecx, edi
push esi
push eax
push dword [esp + 0x38]
push dword [esp + 0x24]
call fcn.004546d0
mov edi, eax
add esp, 0x10
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], edi
test eax, eax
je 0x454b77
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x454b70
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.00511980
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [ebp + 0xc]
add esp, 0x10
mov edi, dword [esp + 0x30]
jmp 0x454b77
mov ecx, edx
call fcn.00444eb0
test edi, edi
je 0x454bef
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
test edx, edx
je 0x454be6
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x454bdf
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.00511980
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [esp + 0x44]
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.00444eb0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
jne 0x454c4c
mov edi, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [0x5352fc]
div dword [edi + 0x20]
inc eax
mov dword [esp + 0x1c], eax
dec ebx
cmp ebx, eax
je 0x454c06
cmp ebx, 2
jae 0x454c14
xor eax, eax
jmp 0x454c3d
mov eax, 0xcccccccd
lea esi, [ebx - 2]
mul dword [edi + 0x24]
mov eax, esi
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
sub esi, edx
lea eax, [esi + 2]
sub eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
add eax, 3
add eax, esi
cmp eax, ebx
mov eax, dword [esp + 0x1c]
je 0x454c06
mov byte [edi + 0x13], 1
mov dword [edi + 0x2c], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret