Function at 0x464e20
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x20c
mov eax, dword [0x5b0c20]
xor eax, esp
mov dword [esp + 0x208], eax
push ebx
mov ebx, ecx
push ebp
xor ebp, ebp
push 0x104
lea eax, [esp + 0xc]
push eax
push ebp
mov dword [ebx], ebp
mov dword [ebx + 0x48], ebp
mov dword [ebx + 4], ebp
mov dword [ebx + 8], ebp
mov dword [ebx + 0xc], ebp
mov dword [ebx + 0x14], ebp
mov dword [ebx + 0x1c], ebp
mov dword [ebx + 0x20], ebp
mov dword [ebx + 0x28], ebp
mov dword [ebx + 0x2c], ebp
mov dword [ebx + 0x30], ebp
mov dword [ebx + 0x34], ebp
mov dword [ebx + 0x38], ebp
mov dword [ebx + 0x3c], ebp
mov dword [ebx + 0x40], ebp
mov dword [ebx + 0x44], ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x465027
lea eax, [esp + 8]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x464e90
sub eax, edx
sar eax, 1
dec eax
cmp eax, ebp
jle 0x464eb8
cmp word [esp + eax*2 + 8], 0x5c
je 0x464eb8
xor ecx, ecx
mov word [esp + eax*2 + 8], cx
dec eax
cmp eax, ebp
jg 0x464ea4
push esi
push edi
lea edi, [esp + 0x10]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x464ec1
mov ecx, 6
mov esi, str.bcclient.dll
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x10]
push edx
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebx + 0x48], eax
cmp eax, ebp
je 0x464ff5
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.BCCLIENT_Initialize
push eax
call esi
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x48]
push str.BCCLIENT_Uninitialize
push eax
call esi
mov ecx, dword [ebx + 0x48]
push str.BCCLIENT_IsServerAvailable
push ecx
mov dword [ebx + 8], eax
call esi
mov edx, dword [ebx + 0x48]
push str.BCCLIENT_EncryptDataByDbKey
push edx
mov dword [ebx + 0xc], eax
call esi
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x48]
push str.BCCLIENT_GetAutoEncryptSettings
push eax
call esi
mov ecx, dword [ebx + 0x48]
push str.BCCLIENT_UpdateVolumeInformation
push ecx
mov dword [ebx + 0x14], eax
call esi
mov edx, dword [ebx + 0x48]
push str.BCCLIENT_SaveRescueFile
push edx
mov dword [ebx + 0x18], eax
call esi
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x48]
push str.BCCLIENT_BcveStringToLogFile
push eax
call esi
mov ecx, dword [ebx + 0x48]
push str.BCCLIENT_BcveSetStatus
push ecx
mov dword [ebx + 0x20], eax
call esi
mov edx, dword [ebx + 0x48]
push str.BCCLIENT_RegisterBcwipeClientCallback
push edx
mov dword [ebx + 0x24], eax
call esi
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x48]
push str.BCCLIENT_BcwipeStringToLogFile
push eax
call esi
mov ecx, dword [ebx + 0x48]
push str.BCCLIENT_BcwipeSetStatus
push ecx
mov dword [ebx + 0x2c], eax
call esi
mov edx, dword [ebx + 0x48]
push str.BCCLIENT_BcUpdateContainerInfo
push edx
mov dword [ebx + 0x30], eax
call esi
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x48]
push str.BCCLIENT_BcRemoveContainerInfo
push eax
call esi
mov ecx, dword [ebx + 0x48]
push str.BCCLIENT_BcGetEncryptionKeyByPassword
push ecx
mov dword [ebx + 0x38], eax
call esi
mov edx, dword [ebx + 0x48]
push str.BCCLIENT_BcStringToLogFile
push edx
mov dword [ebx + 0x3c], eax
call esi
mov dword [ebx + 0x40], eax
push str.BCCLIENT_BcSetStatus
mov eax, dword [ebx + 0x48]
push eax
call esi
mov dword [ebx + 0x44], eax
mov eax, dword [ebx + 4]
cmp eax, ebp
je 0x464ff5
call eax
test eax, eax
je 0x465010
mov dword [ebx], 1
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x208]
xor ecx, esp
call fcn.00524d83
add esp, 0x20c
ret
mov eax, dword [ebx + 0xc]
cmp eax, ebp
je 0x464ff5
call eax
test eax, eax
mov eax, ebx
je 0x464ff7
mov dword [ebx], 1
jmp 0x464ff7
mov ecx, dword [esp + 0x210]
pop ebp
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.00524d83
add esp, 0x20c
ret