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

Disassembly:
sub esp, 0x20
push ebx
mov ebx, dword [esp + 0x28]
xor edx, edx
push ebp
push esi
push edi
movsx eax, word [ebx + 0x4c]
mov esi, dword [ebx + 4]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], esi
mov ebp, dword [ebx + eax*4 + 0x78]
mov dword [esp + 0x28], ebp
cmp word [ebx + 0x2c], dx
jne 0x41e66f
movzx ecx, word [ebx + eax*2 + 0x4e]
mov eax, dword [ebp + 0x40]
movzx edx, byte [eax + ecx*2 + 1]
lea ecx, [eax + ecx*2]
lea eax, [ebx + 0x18]
push eax
movzx eax, byte [ecx]
shl eax, 8
or edx, eax
movzx eax, word [ebp + 0x14]
and edx, eax
add edx, dword [ebp + 0x38]
push edx
push ebp
call fcn.00423ea0
or byte [ebx + 0x48], 2
add esp, 0xc
xor edx, edx
mov eax, dword [ebx + 0x20]
movzx edi, word [ebx + 0x28]
mov ecx, dword [ebp + 0x38]
add ecx, dword [esi + 0x24]
mov dword [esp + 0x18], eax
add eax, edi
cmp eax, ecx
jbe 0x41e6ac
push 0x4f308c
push 0xdfc6
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e040
add esp, 0x10
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
cmp ebp, edi
jae 0x41e70e
lea eax, [esi + ebp]
cmp eax, edi
jbe 0x41e6c3
sub edi, ebp
jmp 0x41e6c5
mov edi, esi
mov eax, dword [esp + 0x28]
push dword [eax + 0x44]
mov eax, dword [esp + 0x48]
and eax, 1
push eax
mov eax, dword [esp + 0x20]
push edi
push dword [esp + 0x4c]
add eax, ebp
push eax
call fcn.0042ab30
mov edx, eax
sub esi, edi
mov eax, dword [esp + 0x54]
add esp, 0x14
add eax, edi
mov dword [esp + 0x10], edx
xor ebp, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], esi
test edx, edx
je 0x41e71c
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x20
ret
mov eax, dword [esp + 0x40]
sub ebp, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], esi
test esi, esi
je 0x41e704
mov eax, dword [esp + 0x20]
movzx esi, word [ebx + 0x28]
movzx edi, word [ebx + 0x28]
mov ecx, dword [eax + 0x24]
mov eax, dword [esp + 0x18]
add ecx, 0xfffffffc
mov dword [esp + 0x14], ecx
movzx edi, byte [edi + eax]
movzx eax, byte [esi + eax + 1]
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x18]
shl edi, 8
movzx eax, byte [esi + eax + 2]
or edi, eax
mov eax, dword [esp + 0x18]
shl edi, 8
movzx eax, byte [esi + eax + 3]
mov esi, dword [esp + 0x34]
or edi, eax
cmp dword [esp + 0x44], 2
mov dword [esp + 0x18], edi
je 0x41e7e5
test byte [ebx + 0x48], 4
jne 0x41e7eb
movzx edx, word [ebx + 0x28]
mov eax, dword [ebx + 0x24]
sub eax, edx
xor edx, edx
dec eax
add eax, ecx
div ecx
mov dword [esp + 0x24], eax
cmp eax, dword [ebx + 0x40]
jle 0x41e7c8
lea ecx, [eax*8]
push 0
push ecx
push dword [ebx + 0x14]
call fcn.00469c80
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x41e7b8
mov edx, 7
mov dword [esp + 0x10], edx
jmp 0x41e7e1
mov eax, dword [esp + 0x24]
add eax, eax
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x24]
shl eax, 2
push eax
push 0
push dword [ebx + 0x14]
call fcn.004c2200
mov edx, dword [esp + 0x1c]
add esp, 0xc
or byte [ebx + 0x48], 4
mov ecx, dword [esp + 0x14]
test byte [ebx + 0x48], 4
je 0x41e80d
xor edx, edx
mov eax, ebp
div ecx
mov ecx, dword [ebx + 0x14]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x41e809
mov edi, ecx
mov ebp, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], edi
jmp 0x41e80f
mov edx, dword [esp + 0x10]
xor eax, eax
test edx, edx
jne 0x41e704
lea ecx, [eax*4]
mov dword [esp + 0x24], ecx
test esi, esi
je 0x41e704
test edi, edi
je 0x41e948
test byte [ebx + 0x48], 4
je 0x41e83e
mov eax, dword [ebx + 0x14]
mov dword [ecx + eax], edi
cmp ebp, dword [esp + 0x14]
jb 0x41e885
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + ecx + 4]
test eax, eax
je 0x41e85e
sub ebp, dword [esp + 0x14]
mov edi, eax
mov dword [esp + 0x18], edi
jmp 0x41e92f
lea eax, [esp + 0x18]
push eax
push 0
push edi
push dword [esp + 0x2c]
call fcn.00435680
mov edi, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [esp + 0x24]
mov edx, eax
sub ebp, dword [esp + 0x14]
jmp 0x41e92f
lea eax, [esi + ebp]
mov esi, dword [esp + 0x14]
sub esi, ebp
cmp eax, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
cmovbe esi, dword [esp + 0x34]
add eax, eax
not eax
mov dword [esp + 0x28], esi
and eax, 2
push eax
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x28]
push edi
push dword [eax]
call fcn.00462b70
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41e91b
mov esi, dword [esp + 0x2c]
push esi
mov ecx, dword [esi + 4]
movzx edi, byte [ecx]
movzx eax, byte [ecx + 1]
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 2]
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 3]
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x48]
and eax, 1
mov dword [esp + 0x1c], edi
push eax
push dword [esp + 0x30]
lea eax, [ecx + 4]
push dword [esp + 0x28]
add eax, ebp
push eax
call fcn.0042ab30
push esi
mov dword [esp + 0x28], eax
call fcn.00464ae0
mov esi, dword [esp + 0x40]
add esp, 0x18
xor ebp, ebp
sub dword [esp + 0x34], esi
add dword [esp + 0x1c], esi
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add ecx, 4
mov dword [esp + 0x24], ecx
test edx, edx
je 0x41e822
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x20
ret
test edx, edx
jne 0x41e704
test esi, esi
je 0x41e704
push 0x4f308c
push 0xe061
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e040
add esp, 0x10
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret