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

Disassembly:
sub esp, 0x1c
push ebx
push ebp
mov ebp, dword [esp + 0x28]
push esi
push edi
cmp byte [ebp], 0
jne 0x51d2af
mov dl, byte [ebp + 1]
test dl, 2
je 0x51d2af
mov ecx, dword [ebp + 0x20]
mov esi, dword [esp + 0x34]
mov eax, dword [ebp + 0x24]
mov ebx, dword [esp + 0x38]
cmp ecx, esi
jne 0x51d23b
cmp eax, ebx
jne 0x51d23d
mov eax, dword [esp + 0x40]
pop edi
pop esi
pop ebp
mov dword [eax], 0
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp eax, ebx
jg 0x51d2af
jl 0x51d245
cmp ecx, esi
jae 0x51d2af
test dl, 8
je 0x51d25e
mov eax, dword [esp + 0x40]
pop edi
pop esi
pop ebp
mov dword [eax], 0xffffffff
xor eax, eax
pop ebx
add esp, 0x1c
ret
mov edi, dword [esp + 0x40]
add ecx, 1
adc eax, 0
cmp ecx, esi
jne 0x51d2b3
cmp eax, ebx
jne 0x51d2b3
push 0
push ebp
mov dword [edi], 0
call fcn.0051c1e0
add esp, 8
test eax, eax
jne 0x51d2a2
push ebp
call fcn.004fed00
add esp, 4
cmp dword [ebp + 0x20], esi
jne 0x51d2b3
cmp dword [ebp + 0x24], ebx
jne 0x51d2b3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret
cmp eax, 0x65
je 0x51d2b3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov edi, dword [esp + 0x40]
push ebp
call fcn.00506890
add esp, 4
test eax, eax
je 0x51d2d9
cmp eax, 0x10
jne 0x51d4df
mov dword [edi], 0xffffffff
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov eax, 1
lea ebx, [ebp + 0x74]
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
lea esp, [esp]
mov edx, dword [ebx]
mov ecx, eax
mov ebp, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x14], edx
movzx ebx, word [edx + 0x18]
movzx eax, word [edx + 0x1a]
dec ebx
mov esi, ebx
mov dword [esp + 0x18], eax
sar esi, cl
mov ecx, dword [edx + 0x40]
mov dword [esp + 0x1c], ecx
mov cl, byte [edx + 2]
mov byte [esp + 0x13], cl
mov ecx, dword [edx + 0x40]
mov ax, word [ecx + esi*2]
mov ch, al
mov cl, ah
movzx eax, cx
and eax, dword [esp + 0x18]
add eax, dword [edx + 0x44]
cmp byte [esp + 0x13], 0
je 0x51d350
cmp byte [eax], 0x80
jb 0x51d34f
mov ecx, dword [edx + 0x3c]
inc eax
cmp eax, ecx
jae 0x51d46d
cmp byte [eax], 0x80
jae 0x51d341
inc eax
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00534600
mov ecx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x24]
cmp ecx, dword [esp + 0x38]
jg 0x51d382
jl 0x51d376
mov edx, dword [esp + 0x34]
cmp eax, edx
jae 0x51d386
lea edi, [esi + 1]
cmp edi, ebx
jle 0x51d399
or eax, 0xffffffff
jmp 0x51d3b0
mov edx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x38]
jl 0x51d3d4
jg 0x51d392
cmp eax, edx
jbe 0x51d3d4
lea ebx, [esi - 1]
cmp edi, ebx
jg 0x51d3ab
mov edx, dword [esp + 0x14]
lea esi, [ebx + edi]
mov ecx, dword [esp + 0x1c]
sar esi, 1
jmp 0x51d320
mov eax, 1
mov edx, dword [esp + 0x14]
cmp byte [edx + 8], 0
je 0x51d3e8
mov ecx, dword [esp + 0x40]
mov word [ebp + 0x46], si
pop edi
pop esi
mov dword [ecx], eax
xor eax, eax
xor ecx, ecx
mov word [ebp + 0x32], cx
pop ebp
pop ebx
add esp, 0x1c
ret
mov edx, dword [esp + 0x14]
mov word [ebp + 0x46], si
cmp byte [edx + 8], 0
jne 0x51d4c9
mov edi, esi
movzx eax, word [edx + 0x18]
cmp edi, eax
jl 0x51d3fd
movzx ecx, byte [edx + 9]
mov eax, dword [edx + 0x38]
mov edx, dword [ecx + eax + 8]
jmp 0x51d417
mov eax, dword [edx + 0x40]
mov ax, word [eax + edi*2]
mov ch, al
mov cl, ah
movzx eax, word [edx + 0x1a]
movzx ecx, cx
and ecx, eax
mov eax, dword [edx + 0x38]
mov edx, dword [ecx + eax]
mov al, byte [ebp + 0x44]
mov esi, dword [ebp + 0x14]
mov word [ebp + 0x46], di
bswap edx
cmp al, 0x13
jge 0x51d498
and byte [ebp + 1], 0xf9
lea ebx, [ebp + 0x74]
movsx eax, al
xor ecx, ecx
mov word [ebp + 0x32], cx
mov word [ebp + eax*2 + 0x48], di
movsx ecx, byte [ebp + 0x44]
mov eax, dword [ebx]
mov dword [ebp + ecx*4 + 0x78], eax
xor eax, eax
inc byte [ebp + 0x44]
mov word [ebp + 0x46], ax
movzx eax, byte [ebp + 2]
push eax
push ebp
push ebx
push edx
push esi
call fcn.004feb80
add esp, 0x14
test eax, eax
jne 0x51d4bb
mov eax, dword [esp + 0x20]
jmp 0x51d2f0
push 0x5aad5c
push 0x1185b
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4490
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
push 0x5aad5c
push 0x116d3
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d4490
add esp, 0x14
mov eax, 0xb
pop edi
xor ecx, ecx
pop esi
mov word [ebp + 0x32], cx
pop ebp
pop ebx
add esp, 0x1c
ret
or byte [ebp + 1], 2
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0x20], eax
xor eax, eax
mov word [ebp + 0x32], ax
mov dword [ecx], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret