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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, ecx
mov dword [esp + 8], eax
push edi
mov ebx, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], ebx
mov edi, dword [esi + 8]
mov al, byte [esi + 1]
mov dword [esp + 0x24], edi
mov ecx, dword [edi + 4]
mov dword [esp + 0x1c], ecx
test al, 0x20
je 0x45ab1a
mov ecx, dword [ecx + 8]
mov edx, dword [esi + 0x40]
test ecx, ecx
je 0x45aac6
cmp ecx, esi
je 0x45aabf
test edx, edx
je 0x45ab02
cmp dword [ecx + 0x40], edx
je 0x45ab02
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x45aab2
and al, 0xdf
mov byte [esi + 1], al
cmp dword [esp + 0xc], 0
je 0x45ab1a
cmp byte [esi + 0x44], 0
jge 0x45ab1a
push 0x5cacbc
push 0x12d70
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043e300
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x45aac6
push esi
call fcn.00450f40
add esp, 4
test eax, eax
je 0x45aacb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], 3
jb 0x45ab39
mov ecx, esi
call fcn.00455ee0
mov edi, eax
test edi, edi
je 0x45ab35
cmp edi, 0x10
jne 0x45b0a3
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 0x70]
mov edx, dword [ebp + 8]
test eax, eax
jne 0x45ac3e
cmp byte [edi + 0xb], 0
je 0x45ab9a
mov eax, dword [ebx + 0xc]
mov ecx, dword [esi + 0x40]
mov edx, dword [ebx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 4]
mov byte [edi + 0xb], 0
mov eax, dword [eax + 8]
test eax, eax
je 0x45ab97
mov ebx, dword [esp + 0x24]
nop dword [eax]
test byte [eax + 1], 0x10
je 0x45ab8c
mov byte [edi + 0xb], 1
cmp dword [eax + 0x40], ecx
jne 0x45ab8c
cmp dword [eax + 0x20], edx
jne 0x45ab8c
cmp dword [eax + 0x24], ebx
jne 0x45ab8c
mov byte [eax], 1
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x45ab70
mov ebx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
test byte [esi + 1], 2
je 0x45abd2
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 0x20]
jne 0x45abd2
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x24]
jne 0x45abd2
cmp word [esi + 0x32], 0
je 0x45abfe
mov eax, dword [ebx + 0x20]
add eax, dword [ebx + 0x1c]
cmp dword [esi + 0x2c], eax
jne 0x45abfe
mov edx, ebx
mov ecx, esi
call fcn.0045a8c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xc], 0
jne 0x45abfe
lea eax, [esp + 0xc]
shr edx, 3
push eax
push dword [ebx + 0xc]
and edx, 1
mov ecx, esi
push dword [ebx + 8]
call fcn.00456270
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45b0a3
mov ebx, dword [esi + 0x74]
cmp dword [ebx + 0x14], 0
jge 0x45ad06
cmp byte [esi], 1
jbe 0x45acf7
push 0x5cacbc
push 0x12deb
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043e300
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xc], 0
jne 0x45abfe
test dl, 2
jne 0x45acb4
movzx ecx, word [ebx + 0x18]
test cx, cx
je 0x45ac82
mov dword [esp + 0x28], eax
lea edx, [esp + 0x28]
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xc]
mov word [esp + 0x3c], cx
mov ecx, esi
push eax
mov byte [esp + 0x42], 0
mov byte [esp + 0x46], 0
call fcn.00456510
add esp, 4
jmp 0x45aca2
lea eax, [esp + 0xc]
mov ecx, esi
push eax
mov eax, edx
mov edx, dword [ebx]
shr eax, 3
and eax, 1
push eax
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.00451050
add esp, 0x10
test eax, eax
jne 0x45b0a5
cmp dword [esp + 0xc], eax
jne 0x45abfe
mov ecx, esi
call fcn.00455810
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp dword [esi + 0x20], ecx
jne 0x45abfe
cmp dword [esi + 0x24], eax
jne 0x45abfe
mov eax, dword [ebx]
lea edx, [esp + 0x28]
mov dword [esp + 0x44], ecx
mov ecx, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], 0
call fcn.0045a8c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.00452330
test eax, eax
jne 0x45b0a5
test byte [ebp + 8], 0x80
mov edx, dword [esp + 0x1c]
mov edi, dword [edx + 0x54]
mov dword [esp + 0x24], edi
je 0x45ad90
mov eax, dword [edx + 0x58]
mov ecx, eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
cmp eax, 4
jge 0x45ad42
mov ecx, 4
mov dword [esp + 0x14], 4
mov dword [esp + 0x20], ecx
cmp byte [edx + 0x11], 0
je 0x45adbb
movzx eax, word [ebx + 0xe]
cmp ecx, eax
jbe 0x45adbb
lea eax, [esp + 0x28]
push eax
mov eax, dword [ebx + 0x50]
push edi
push ebx
call eax
movzx eax, word [esp + 0x44]
add esp, 0xc
cmp dword [esp + 0x34], eax
je 0x45adbb
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push eax
push dword [ebx + 4]
mov edx, dword [edi + edx - 4]
push 3
bswap edx
call fcn.00451220
mov edi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x45adb3
lea eax, [esp + 0x20]
mov edx, edi
push eax
push dword [esp + 0x1c]
mov ecx, ebx
call fcn.00457af0
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
test edi, edi
jne 0x45b0a3
cmp dword [esp + 0xc], 0
movzx eax, word [esi + 0x46]
mov ecx, eax
mov dword [esp + 0x20], ecx
jne 0x45af9c
movzx eax, word [ebx + 0x18]
cmp ecx, eax
jb 0x45ae02
push 0x5cacbc
push 0x12e0f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043e300
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x45ae23
mov eax, dword [edx + 0x1c]
cmp eax, dword [ecx + 0x18]
jb 0x45ae23
cmp dword [edx + 0x68], 0
je 0x45ae52
call fcn.0044af80
jmp 0x45ae48
mov edi, dword [edx + 0x2c]
test edi, edi
jne 0x45b0a3
mov eax, dword [edx + 0x9c]
cmp eax, dword [edx + 0xa8]
jbe 0x45ae43
call fcn.0044cab0
jmp 0x45ae48
call fcn.0044ca30
mov edi, eax
test edi, edi
jne 0x45b0a3
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x1a]
movzx edi, cx
and edi, eax
add edi, dword [ebx + 0x38]
cmp byte [ebx + 8], 0
jne 0x45ae7b
mov ecx, dword [esp + 0x24]
mov eax, dword [edi]
mov dword [ecx], eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [ebx + 0x50]
push edi
push ebx
call eax
mov cx, word [esp + 0x44]
add esp, 0xc
movzx eax, cx
cmp eax, dword [esp + 0x34]
je 0x45aeb0
lea eax, [esp + 0x28]
mov edx, edi
push eax
mov ecx, ebx
call fcn.00457980
mov cx, word [esp + 0x3c]
add esp, 4
jmp 0x45aeb2
xor eax, eax
and byte [esi + 1], 0xfb
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x3a]
cmp eax, edx
jne 0x45af76
movzx eax, cx
cmp eax, dword [esp + 0x34]
jne 0x45af71
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x11], 0
je 0x45aeee
movzx eax, word [ebx + 0x10]
cmp edx, eax
jge 0x45af71
mov eax, dword [ebx + 0x38]
movzx ecx, byte [ebx + 9]
add eax, 0xa
add eax, ecx
cmp edi, eax
jae 0x45af28
push 0x5cacbc
push 0x12e2a
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043e300
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + edx]
cmp eax, dword [ebx + 0x3c]
jbe 0x45af5a
push 0x5cacbc
push 0x12e2d
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0043e300
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
push dword [esp + 0x28]
push edi
call fcn.00570750
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [esp + 0x3a]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x10]
push ecx
push eax
mov ecx, ebx
call fcn.00457ea0
mov edi, dword [esp + 0x18]
add esp, 8
test edi, edi
jne 0x45b0a3
mov ecx, dword [esp + 0x20]
jmp 0x45afb1
jge 0x45afb1
cmp word [ebx + 0x18], 0
jbe 0x45afb1
inc eax
and byte [esi + 1], 0xfd
mov word [esi + 0x46], ax
movzx ecx, ax
lea eax, [esp + 0x10]
mov edx, ecx
push eax
push 0
push 0
push dword [esp + 0x20]
mov ecx, ebx
push dword [esp + 0x34]
call fcn.00457fc0
xor eax, eax
add esp, 0x14
mov word [esi + 0x32], ax
cmp byte [ebx + 0xc], al
je 0x45b09f
and byte [esi + 1], 0xfd
mov ecx, esi
call fcn.0045a4c0
test byte [ebp + 8], 2
mov edi, eax
mov eax, dword [esi + 0x74]
mov dword [esp + 0x24], edi
mov byte [eax + 0xc], 0
mov byte [esi], 1
je 0x45b0a3
test edi, edi
jne 0x45b0a3
mov al, byte [esi + 0x44]
test al, al
js 0x45b03f
jle 0x45b030
lea ebx, [esi + 0x78]
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0x48]
call fcn.0044c510
movsx eax, byte [esi + 0x44]
lea ebx, [ebx + 4]
inc edi
cmp edi, eax
jl 0x45b016
mov edi, dword [esp + 0x24]
mov ecx, dword [esi + 0x74]
mov ecx, dword [ecx + 0x48]
call fcn.0044c510
mov byte [esi + 0x44], 0xff
cmp dword [esi + 0x70], 0
mov ebx, dword [esp + 0x18]
je 0x45b087
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.0043b050
add esp, 8
mov dword [esi + 0x10], eax
test eax, eax
jne 0x45b079
mov ecx, dword [ebx + 0xc]
lea edi, [eax + 7]
mov eax, dword [ebx + 8]
mov dword [esi + 0x38], eax
mov eax, edi
mov byte [esi], 3
mov dword [esi + 0x3c], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebx + 8]
push dword [ebx]
push eax
call fcn.00570750
add esp, 0xc
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov dword [esi + 0x38], eax
mov eax, edi
mov byte [esi], 3
mov dword [esi + 0x3c], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x10]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret