Function at 0x44c190
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x47a1a0
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a3eb0]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esp + 0x14]
push eax
call fcn.00453830
push 0x4821f4
push eax
call fcn.004040c0
mov bl, al
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or ebp, 0xffffffff
add esp, 0xc
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44c1f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x44c558
push str._Test__LoadLibrary
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor ebx, ebx
cmp dword [esi + 0x20], ebx
je 0x44c226
lea eax, [ebx + 1]
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
call fcn.0044ba90
cmp eax, 0xb
jne 0x44c351
mov ecx, dword [0x4a4238]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0044bff0
push str.FsDeviceLib64.dll
push eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x38], ebx
call fcn.00408800
mov eax, dword [eax]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
add esp, 0x14
push eax
call edi
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44c289
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x24], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44c2ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esi + 0x20], ebx
jne 0x44c2fb
mov ecx, dword [0x4a4238]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0044bff0
push str.FsDeviceLib64.dll
push eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x38], 1
call fcn.00408800
mov eax, dword [eax]
add esp, 0x14
push eax
call edi
lea ecx, [esp + 0x18]
mov dword [esi + 0x20], eax
call fcn.00401df0
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], ebp
call fcn.00401df0
mov eax, dword [esi + 0x20]
cmp eax, ebx
jne 0x44c46e
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a440c
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CFsUsbDeviceLib::LoadLibraryW
lea ecx, [esp + 0x1c]
push str._s__ERROR:_d
push ecx
call fcn.00402e30
add esp, 0x10
lea ecx, [esp + 0x14]
call fcn.00401df0
jmp 0x44c558
mov edx, dword [0x4a4238]
push edx
lea eax, [esp + 0x18]
push eax
call fcn.0044bff0
push str.FsUsbExDeviceLib.dll
push eax
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x38], 3
call fcn.00408800
mov eax, dword [eax]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
add esp, 0x14
push eax
call edi
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44c3aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x24], ebp
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44c3cd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esi + 0x20], ebx
jne 0x44c41c
mov ecx, dword [0x4a4238]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0044bff0
push str.FsUsbExDeviceLib.dll
push eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x38], 4
call fcn.00408800
mov eax, dword [eax]
add esp, 0x14
push eax
call edi
lea ecx, [esp + 0x18]
mov dword [esi + 0x20], eax
call fcn.00401df0
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], ebp
call fcn.00401df0
mov eax, dword [esi + 0x20]
cmp eax, ebx
jne 0x44c46e
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a440c
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CFsUsbDeviceLib::LoadLibraryW
lea ecx, [esp + 0x1c]
push str._s__ERROR:_d
push ecx
call fcn.00402e30
add esp, 0x10
lea ecx, [esp + 0x14]
call fcn.00401df0
jmp 0x44c558
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.FSUSB_Initize
push eax
call edi
mov edx, dword [esi + 0x20]
push str.FSUSB_Finalize
push edx
mov dword [esi], eax
call edi
mov dword [esi + 4], eax
mov eax, dword [esi + 0x20]
push str.FSUSB_LoadDevice
push eax
call edi
mov ecx, dword [esi + 0x20]
push str.FSUSB_UnloadDevice
push ecx
mov dword [esi + 8], eax
call edi
mov edx, dword [esi + 0x20]
push str.FSUSB_Drive
push edx
mov dword [esi + 0xc], eax
call edi
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x20]
push str.FSUSB_Enable
push eax
call edi
mov ecx, dword [esi + 0x20]
push str.FSUSB_Disable
push ecx
mov dword [esi + 0x10], eax
call edi
mov edx, dword [esi + 0x20]
push str.FSUSB_SetAgentPid
push edx
mov dword [esi + 0x14], eax
call edi
mov ecx, dword [esi]
mov dword [esi + 0x1c], eax
cmp ecx, ebx
je 0x44c54b
cmp dword [esi + 4], ebx
je 0x44c54b
cmp dword [esi + 8], ebx
je 0x44c54b
cmp dword [esi + 0xc], ebx
je 0x44c54b
cmp dword [esi + 0x18], ebx
je 0x44c54b
cmp dword [esi + 0x10], ebx
je 0x44c54b
cmp dword [esi + 0x14], ebx
je 0x44c54b
cmp eax, ebx
je 0x44c54b
cmp dword [esi + 0x20], ebx
je 0x44c52c
call ecx
xor ecx, ecx
cmp eax, ebx
sete cl
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, ebp
xor ecx, ecx
cmp eax, ebx
sete cl
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov edx, dword [esi + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0x20], ebx
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret