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

Disassembly:
sub esp, 0x2c
push ebx
mov ebx, dword [esp + 0x40]
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov esi, dword [esp + 0x40]
push edi
mov edi, dword [esp + 0x48]
test esi, esi
jne 0x450149
cmp byte [ebp], 0
jne 0x45013b
mov dl, byte [ebp + 1]
test dl, 2
je 0x45013b
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
cmp ecx, edi
jne 0x4500d7
cmp eax, ebx
jne 0x4500d9
mov eax, dword [esp + 0x54]
pop edi
pop esi
pop ebp
mov dword [eax], 0
xor eax, eax
pop ebx
add esp, 0x2c
ret
cmp eax, ebx
jg 0x45013b
jl 0x4500e1
cmp ecx, edi
jae 0x45013b
mov esi, dword [esp + 0x54]
test dl, 8
jne 0x4501bf
add ecx, 1
adc eax, 0
cmp ecx, edi
jne 0x45013f
cmp eax, ebx
jne 0x45013f
push 0
push ebp
mov dword [esi], 0
call fcn.004506e0
add esp, 8
test eax, eax
jne 0x45012e
push ebp
call fcn.004370b0
add esp, 4
cmp dword [ebp + 0x20], edi
jne 0x45013f
cmp dword [ebp + 0x24], ebx
jne 0x45013f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret
cmp eax, 0x65
je 0x45013f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov esi, dword [esp + 0x54]
mov dword [esp + 0x14], 0
jmp 0x4501a9
mov ecx, dword [esi]
cmp word [ecx + 8], 0xd
ja 0x450199
mov eax, dword [esi + 4]
movzx ebx, word [eax + 8]
mov eax, dword [ecx + 0x10]
mov al, byte [eax]
test al, al
je 0x45016c
test al, 2
jne 0x450199
or al, 0xff
mov dl, 1
jmp 0x450171
mov al, 1
or dl, 0xff
mov byte [esi + 0xc], dl
mov byte [esi + 0xd], al
test bl, 4
je 0x450186
mov dword [esp + 0x14], 0x496f90
jmp 0x4501a1
test bl, 0x39
jne 0x450199
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x14], 0x497190
je 0x4501a1
mov dword [esp + 0x14], 0x485eb0
mov byte [esi + 0xb], 0
mov esi, dword [esp + 0x54]
push ebp
call fcn.0043b4f0
add esp, 4
test eax, eax
je 0x4501cf
cmp eax, 0x10
jne 0x4506d1
pop edi
mov dword [esi], 0xffffffff
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov ecx, 1
lea ebx, [ebp + 0x74]
sub ecx, dword [esp + 0x50]
mov dword [esp + 0x30], ecx
nop
mov edi, dword [ebx]
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edi
movzx esi, word [edi + 0x18]
lea eax, [edi + 0x40]
dec esi
mov dword [esp + 0x1c], eax
mov ebx, esi
mov dword [esp + 0x28], esi
sar ebx, cl
lea edx, [edi + 0x1a]
cmp dword [esp + 0x14], 0
mov word [ebp + 0x46], bx
mov dword [esp + 0x20], edx
jne 0x450320
movzx edx, word [edx]
mov cl, byte [edi + 3]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov byte [esp + 0x13], cl
lea ebx, [ebx]
mov ax, word [eax + ebx*2]
mov ch, al
mov cl, ah
movzx eax, cx
movzx ecx, dx
and eax, ecx
add eax, dword [edi + 0x44]
cmp byte [esp + 0x13], 0
je 0x450261
cmp byte [eax], 0x80
jb 0x450260
mov ecx, dword [edi + 0x3c]
inc eax
cmp eax, ecx
jae 0x450538
cmp byte [eax], 0x80
jae 0x450252
inc eax
lea ecx, [esp + 0x34]
push ecx
push eax
call fcn.00462ad0
mov ecx, dword [esp + 0x40]
add esp, 8
mov eax, dword [esp + 0x34]
cmp ecx, dword [esp + 0x4c]
jg 0x4502c9
jl 0x450287
mov edx, dword [esp + 0x48]
cmp eax, edx
jae 0x4502cd
lea edx, [ebx + 1]
mov dword [esp + 0x18], edx
cmp edx, esi
jle 0x4502e4
or edi, 0xffffffff
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
cmp byte [eax + 8], 0
jne 0x450596
mov edi, eax
movzx eax, word [edi + 0x18]
cmp edx, eax
jl 0x4504b5
movzx ecx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov edx, dword [ecx + eax + 8]
jmp 0x4504cd
mov edx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x4c]
jl 0x4502fd
jg 0x4502d9
cmp eax, edx
jbe 0x4502fd
mov edx, dword [esp + 0x18]
lea esi, [ebx - 1]
cmp edx, esi
jg 0x4502f6
mov eax, dword [esp + 0x28]
lea ebx, [esi + edx]
mov edx, dword [esp + 0x2c]
sar ebx, 1
jmp 0x450230
mov edi, 1
jmp 0x450295
mov word [ebp + 0x46], bx
cmp byte [edi + 8], 0
jne 0x450563
mov ecx, dword [esp + 0x1c]
mov edx, ebx
mov esi, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x4502ad
mov eax, dword [eax]
mov ax, word [eax + ebx*2]
mov ch, al
mov cl, ah
movzx eax, word [edx]
movzx ecx, cx
and ecx, eax
movzx eax, byte [edi + 0xb]
add ecx, dword [edi + 0x44]
movzx edx, byte [ecx]
lea esi, [ecx + 1]
cmp edx, eax
ja 0x450357
push dword [esp + 0x44]
push esi
push edx
call dword [esp + 0x20]
add esp, 0xc
mov edi, eax
jmp 0x450475
mov al, byte [esi]
test al, al
js 0x450387
and edx, 0x7f
movzx eax, al
shl edx, 7
add edx, eax
movzx eax, word [edi + 0xe]
cmp edx, eax
ja 0x450387
push dword [esp + 0x44]
lea eax, [ecx + 2]
push eax
push edx
call dword [esp + 0x20]
add esp, 0xc
mov edi, eax
jmp 0x450475
movzx eax, byte [edi + 0xa]
lea esi, [ebp + 0x20]
sub ecx, eax
mov eax, dword [edi + 0x50]
push esi
push ecx
push edi
call eax
mov edi, dword [esi]
add esp, 0xc
cmp edi, 2
jl 0x4506a2
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov eax, edi
div dword [ecx + 0x28]
cmp eax, dword [ecx + 0x30]
ja 0x4506a2
lea eax, [edi + 0x12]
cdq
push edx
push eax
call fcn.00466e30
mov esi, eax
add esp, 8
test esi, esi
je 0x450689
push 0
push esi
push edi
push 0
push ebp
mov word [ebp + 0x46], bx
call fcn.00420a20
mov ebp, eax
add esp, 0x14
xor eax, eax
mov dword [esi + edi], eax
mov dword [esi + edi + 4], eax
mov dword [esi + edi + 8], eax
mov dword [esi + edi + 0xc], eax
mov word [esi + edi + 0x10], ax
mov eax, dword [esp + 0x40]
and byte [eax + 1], 0xfb
test ebp, ebp
jne 0x45060b
push ebp
push dword [esp + 0x48]
push esi
push edi
call fcn.00485ed0
add esp, 0x10
mov edi, eax
cmp dword [0x4e6008], ebp
je 0x450467
mov eax, dword [0x4e86d8]
test eax, eax
je 0x450438
push eax
call dword [0x4e6058]
add esp, 4
push esi
call dword [0x4e6034]
sub dword [0x4e8678], eax
dec dword [0x4e869c]
push esi
call dword [0x4e602c]
mov eax, dword [0x4e86d8]
add esp, 8
test eax, eax
je 0x450471
push eax
call dword [0x4e6060]
jmp 0x45046e
push esi
call dword [0x4e602c]
add esp, 4
mov ebp, dword [esp + 0x40]
test edi, edi
jns 0x450486
mov eax, dword [esp + 0x28]
lea edx, [ebx + 1]
mov dword [esp + 0x18], edx
jmp 0x450497
jle 0x4505b6
mov edx, dword [esp + 0x18]
lea eax, [ebx - 1]
mov dword [esp + 0x28], eax
cmp edx, eax
jg 0x450295
mov edi, dword [esp + 0x24]
lea ebx, [eax + edx]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
sar ebx, 1
jmp 0x450320
mov eax, dword [ecx]
mov ax, word [eax + edx*2]
mov ch, al
mov cl, ah
movzx eax, word [esi]
movzx ecx, cx
and ecx, eax
mov eax, dword [edi + 0x38]
mov edx, dword [ecx + eax]
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 0x14]
movzx ecx, ax
mov al, byte [ebp + 0x44]
mov word [ebp + 0x46], cx
cmp al, 0x13
jge 0x450587
and byte [ebp + 1], 0xf9
lea ebx, [ebp + 0x74]
movsx eax, al
xor edi, edi
mov word [ebp + 0x32], di
bswap edx
mov word [ebp + eax*2 + 0x48], cx
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.00436fc0
mov ebp, eax
add esp, 0x14
test ebp, ebp
jne 0x4506c5
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
jmp 0x4501e0
push 0x4d6684
push 0x11373
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
or byte [ebp + 1], 2
mov dword [ebp + 0x20], eax
xor eax, eax
mov word [ebp + 0x32], ax
mov eax, dword [esp + 0x54]
pop edi
pop esi
mov dword [ebp + 0x24], ecx
pop ebp
mov dword [eax], 0
xor eax, eax
pop ebx
add esp, 0x2c
ret
push 0x4d6684
push 0x111d3
jmp 0x4506ac
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
mov word [ebp + 0x46], bx
xor ebp, ebp
mov dword [eax], edi
xor eax, eax
pop edi
mov word [esi + 0x32], ax
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, dword [esp + 0x54]
xor ebp, ebp
mov esi, dword [esp + 0x40]
mov dword [eax], 0
mov eax, dword [esp + 0x44]
mov word [esi + 0x46], bx
cmp byte [eax + 0xb], 0
je 0x4506c9
push 0x4d6684
push 0x113de
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
add esp, 0x14
mov ebp, 0xb
xor eax, eax
mov word [esi + 0x32], ax
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
cmp dword [0x4e6008], 0
je 0x45066b
mov eax, dword [0x4e86d8]
test eax, eax
je 0x450627
push eax
call dword [0x4e6058]
add esp, 4
push esi
call dword [0x4e6034]
sub dword [0x4e8678], eax
dec dword [0x4e869c]
push esi
call dword [0x4e602c]
mov eax, dword [0x4e86d8]
add esp, 8
test eax, eax
je 0x4506c5
push eax
call dword [0x4e6060]
mov esi, dword [esp + 0x44]
add esp, 4
xor eax, eax
pop edi
mov word [esi + 0x32], ax
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
push esi
call dword [0x4e602c]
mov esi, dword [esp + 0x44]
add esp, 4
xor eax, eax
pop edi
mov word [esi + 0x32], ax
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov esi, dword [esp + 0x40]
xor eax, eax
pop edi
mov ebp, 7
mov word [esi + 0x32], ax
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
push 0x4d6684
push 0x113be
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
mov ebp, 0xb
add esp, 0x14
mov esi, dword [esp + 0x40]
xor eax, eax
mov word [esi + 0x32], ax
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret