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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, dword [ecx + 0xc]
xor ebx, ebx
push edi
mov edi, dword [ecx + 0x2c]
mov dword [esp + 0x24], edx
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x24]
bswap eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], eax
cmp eax, edi
jb 0x456da0
push 0x52a07c
push 0x11182
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043d780
add esp, 0x14
lea eax, [ebx + 0xb]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x45746f
mov eax, dword [ebp + 0xc]
xor dl, dl
cmp byte [ebp + 0x10], 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], ebx
jne 0x456de7
cmp eax, edi
ja 0x456dfa
lea edx, [esp + 0xf]
push 0
push edx
mov edx, eax
call fcn.004514c0
add esp, 8
test eax, eax
jne 0x457614
cmp byte [esp + 0xf], 2
jne 0x456dfa
mov al, 1
mov dword [esp + 0x18], eax
jmp 0x456dfa
cmp byte [ebp + 0x10], 2
mov eax, 1
movzx edx, dl
cmove edx, eax
mov dword [esp + 0x18], edx
mov ecx, dword [esi + 0x48]
call fcn.0044c100
test eax, eax
jne 0x457614
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x38]
lea ecx, [edx - 1]
bswap ecx
mov dword [eax + 0x24], ecx
nop dword [eax]
mov edi, ebx
mov dword [esp + 0x14], edi
test edi, edi
je 0x456e31
mov eax, dword [ebx + 0x38]
mov esi, dword [eax]
jmp 0x456e37
mov eax, dword [esi + 0x38]
mov esi, dword [eax + 0x20]
bswap esi
cmp esi, dword [esp + 0x38]
ja 0x4573e5
mov ecx, dword [esp + 0x3c]
mov eax, ecx
inc ecx
mov dword [esp + 0x3c], ecx
cmp eax, edx
ja 0x4573e5
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push 0
push eax
mov edx, esi
call fcn.00452cc0
mov ebx, eax
add esp, 8
mov dword [esp + 0x44], ebx
test ebx, ebx
jne 0x457408
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x1c], edi
mov edi, dword [edi + 4]
bswap edi
test edi, edi
jne 0x456ed0
test cl, cl
jne 0x456ed0
mov ecx, dword [eax + 0x48]
call fcn.0044c100
mov ebx, eax
test ebx, ebx
jne 0x45735c
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov dword [eax], esi
mov esi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x38]
mov dword [edi], esi
mov eax, dword [esi + 0x38]
xor esi, esi
mov dword [esp + 0x10], esi
mov eax, dword [eax]
mov dword [ecx + 0x20], eax
jmp 0x45726b
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
shr eax, 2
sub eax, 2
cmp edi, eax
ja 0x4573c7
mov edx, dword [ebp + 0xc]
test cl, cl
je 0x457095
cmp edx, esi
je 0x456f05
mov al, byte [ebp + 0x10]
jbe 0x457098
cmp al, 2
jne 0x457098
mov eax, dword [ebp + 8]
mov byte [esp + 0x18], 0
mov dword [eax], esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x48]
mov dword [eax], esi
call fcn.0044c100
mov ebx, eax
test ebx, ebx
jne 0x457360
test edi, edi
jne 0x456f74
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x456f4f
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x10], edi
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [ecx + 0x20], eax
jmp 0x45726b
mov ecx, dword [edi + 0x48]
call fcn.0044c100
mov ebx, eax
test ebx, ebx
jne 0x457364
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x10], ebx
mov eax, dword [eax]
mov dword [ecx], eax
jmp 0x45726b
mov eax, dword [esi + 0x38]
mov esi, dword [eax + 8]
bswap esi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x38]
ja 0x457339
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x30]
push 0
push eax
mov edx, esi
call fcn.00452cc0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x45735c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x48]
call fcn.0044c100
mov ebx, eax
test ebx, ebx
jne 0x4572e4
mov eax, dword [esp + 0x10]
lea edx, [edi - 1]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x30]
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
mov ecx, edx
mov eax, dword [edi + 0x38]
bswap ecx
mov dword [eax + 4], ecx
lea eax, [edx*4]
push eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
add eax, 0xc
push eax
mov eax, dword [edi + 0x38]
add eax, 8
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [edi + 0x48]
add esp, 0xc
test byte [edx + 0x1c], 0x20
je 0x45704f
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 ebx
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
jmp 0x457056
mov ecx, edx
call fcn.00444eb0
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x457073
mov ecx, dword [esp + 0x2c]
bswap esi
mov dword [esp + 0x10], edi
mov eax, dword [ecx + 0x38]
mov dword [eax + 0x20], esi
jmp 0x45726b
mov ecx, dword [edi + 0x48]
call fcn.0044c100
mov ebx, eax
test ebx, ebx
jne 0x4573d6
mov eax, dword [edi + 0x38]
bswap esi
mov dword [esp + 0x10], ebx
mov dword [eax], esi
jmp 0x45726b
mov al, byte [ebp + 0x10]
test edi, edi
je 0x45726b
xor esi, esi
mov dword [esp + 0x28], esi
test edx, edx
je 0x457148
cmp al, 2
jne 0x4570da
xor ecx, ecx
test edi, edi
je 0x457144
mov edx, dword [esp + 0x1c]
add edx, 8
mov eax, dword [edx]
bswap eax
cmp eax, dword [ebp + 0xc]
jbe 0x4570d6
inc ecx
add edx, 4
cmp ecx, edi
jb 0x4570c3
jmp 0x457141
mov esi, ecx
jmp 0x45713d
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
bswap ecx
sub ecx, edx
call fcn.0043f9b0
mov edx, 1
mov dword [esp + 0x34], eax
cmp edi, edx
jbe 0x457141
mov ebx, dword [esp + 0x1c]
nop dword [eax + eax]
mov ecx, dword [ebx + edx*4 + 8]
bswap ecx
sub ecx, dword [ebp + 0xc]
jns 0x45711c
cmp ecx, 0x80000000
jne 0x45711a
mov ecx, 0x7fffffff
jmp 0x45711c
neg ecx
cmp ecx, dword [esp + 0x34]
mov eax, edx
cmovge eax, esi
inc edx
cmp ecx, dword [esp + 0x34]
mov esi, eax
cmovge ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
cmp edx, edi
jb 0x457100
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], esi
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea eax, [eax + esi*4]
add eax, 8
mov dword [esp + 0x44], eax
mov eax, dword [eax]
bswap eax
cmp eax, dword [esp + 0x38]
ja 0x4573b8
test cl, cl
je 0x45717c
cmp eax, edx
je 0x45717c
jae 0x45726b
cmp byte [ebp + 0x10], 2
jne 0x45726b
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x10]
mov dword [ecx], eax
mov ecx, dword [esi + 0x48]
call fcn.0044c100
mov ebx, eax
test ebx, ebx
jne 0x457360
lea ecx, [edi - 1]
cmp dword [esp + 0x28], ecx
jae 0x4571ae
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + edi*4 + 4]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
bswap ecx
mov dword [eax + 4], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 0x3c]
mov esi, dword [eax]
test ecx, ecx
je 0x4571da
cmp esi, dword [ecx]
ja 0x4571d6
mov edx, esi
call fcn.00444520
test eax, eax
je 0x4571da
xor eax, eax
jmp 0x4571df
mov eax, 1
mov edi, dword [esp + 0x24]
mov edx, esi
push eax
push edi
mov ecx, ebx
call fcn.00452cc0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x457266
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x48]
call fcn.0044c100
mov ebx, eax
test ebx, ebx
je 0x457266
mov edx, dword [edi]
test edx, edx
je 0x457260
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x457259
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 + 0x34]
add esp, 0x10
jmp 0x457260
mov ecx, edx
call fcn.00444eb0
mov dword [edi], 0
mov byte [esp + 0x18], 0
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4572c2
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x4572bb
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 0x4572c2
mov ecx, edx
call fcn.00444eb0
xor edi, edi
cmp byte [esp + 0x18], 0
mov dword [esp + 0x14], edi
je 0x4573d6
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
jmp 0x456e20
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x457330
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 0x45735c
mov ecx, edx
call fcn.00444eb0
jmp 0x45735c
push 0x52a07c
push 0x111f9
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043d780
mov ebx, 0xb
add esp, 0x14
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
test esi, esi
je 0x457408
mov edx, dword [esi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x4573dc
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 + 0x24]
add esp, 0x10
jmp 0x457408
push 0x52a07c
push 0x1123a
jmp 0x457343
push 0x52a07c
push 0x111d7
jmp 0x457343
mov esi, dword [esp + 0x10]
jmp 0x457364
mov ecx, edx
call fcn.00444eb0
jmp 0x457408
push 0x52a07c
push 0x111ba
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043d780
add esp, 0x14
mov ebx, 0xb
test edi, edi
je 0x457612
mov edx, dword [edi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x45745f
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
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.00444eb0
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, ecx
xor eax, eax
mov ecx, dword [esi + 0x48]
cmp byte [ebx + 0x13], al
sete al
mov dword [esp + 0x3c], eax
call fcn.0044c100
test eax, eax
jne 0x457614
mov eax, dword [0x5352fc]
xor edx, edx
div dword [ebx + 0x20]
inc dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
inc eax
cmp esi, eax
jne 0x4574a6
inc esi
mov dword [ebx + 0x2c], esi
cmp byte [ebx + 0x11], 0
mov edi, esi
je 0x45756c
mov edx, esi
mov ecx, ebx
call fcn.00451360
cmp eax, esi
jne 0x45756c
push dword [esp + 0x3c]
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
push eax
mov edx, esi
mov ecx, ebx
call fcn.00452cc0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x457612
mov esi, dword [esp + 0x40]
mov ecx, dword [esi + 0x48]
call fcn.0044c100
mov edx, dword [esi + 0x48]
mov ebx, eax
test byte [edx + 0x1c], 0x20
je 0x457540
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 0x457547
mov ecx, edx
call fcn.00444eb0
test ebx, ebx
jne 0x457612
mov ebx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [0x5352fc]
div dword [ebx + 0x20]
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
inc eax
cmp edi, eax
jne 0x45756c
inc edi
mov dword [ebx + 0x2c], edi
mov eax, dword [ebx + 0xc]
mov ecx, ebx
push dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
bswap edi
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + 0x1c], edi
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 0x2c]
mov dword [eax], edx
call fcn.00452cc0
add esp, 8
test eax, eax
jne 0x457614
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x48]
call fcn.0044c100
mov ebx, eax
test ebx, ebx
je 0x457612
mov edx, dword [esi]
test edx, edx
je 0x45760c
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x457605
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 + 0x34]
add esp, 0x10
mov eax, ebx
mov dword [esi], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.00444eb0
mov dword [esi], 0
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret