Function at 0x10001c30
Capabilities:
Print debug messages

Disassembly:
push ecx
mov ecx, dword [0x1000f40c]
push ebx
push esi
push edi
test ecx, ecx
jne 0x10001cc5
mov eax, dword [0x1000f250]
xor edi, edi
test eax, eax
mov dword [0x1000f40c], ecx
jne 0x10001c82
mov esi, dword [0x1000f25c]
test esi, esi
je 0x10001cbd
cmp byte [esi], 0
je 0x10001cbd
mov edx, dword [0x1000f254]
test edx, edx
jne 0x10001cbd
push 1
push esi
mov ecx, 0x1000f250
call fcn.10002730
mov eax, dword [0x1000f250]
test eax, eax
je 0x10001cb1
push str.UDLL_GetNumberOfDrive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
mov esi, dword [0x1000f25c]
mov eax, dword [0x1000f250]
xor ecx, ecx
test edi, edi
setne cl
inc ecx
mov dword [0x1000f408], edi
mov dword [0x1000f40c], ecx
jmp 0x10001cd0
mov ecx, dword [0x1000f40c]
mov esi, dword [0x1000f25c]
mov dword [0x1000f408], edi
jmp 0x10001cd0
mov esi, dword [0x1000f25c]
mov eax, dword [0x1000f250]
cmp ecx, 2
jne 0x10001d6a
mov ebx, dword [0x1000f510]
test ecx, ecx
jne 0x10001d53
xor edi, edi
mov dword [0x1000f40c], ecx
test eax, eax
jne 0x10001d18
test esi, esi
je 0x10001d4d
cmp byte [esi], 0
je 0x10001d4d
mov edx, dword [0x1000f254]
test edx, edx
jne 0x10001d4d
push 1
push esi
mov ecx, 0x1000f250
call fcn.10002730
mov eax, dword [0x1000f250]
test eax, eax
je 0x10001d41
push str.UDLL_GetNumberOfDrive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
mov esi, dword [0x1000f25c]
mov eax, dword [0x1000f250]
xor ecx, ecx
test edi, edi
setne cl
inc ecx
mov dword [0x1000f40c], ecx
jmp 0x10001d4d
mov ecx, dword [0x1000f40c]
mov esi, dword [0x1000f25c]
mov dword [0x1000f408], edi
cmp ecx, 2
jne 0x10001d6a
push ebx
call dword [0x1000f408]
mov esi, dword [0x1000f25c]
mov eax, dword [0x1000f250]
mov ecx, dword [0x1000f510]
mov dword [esp + 0xc], ecx
mov ecx, dword [0x1000f484]
test ecx, ecx
jne 0x10001e81
push ebp
xor ebp, ebp
test eax, eax
mov dword [0x1000f484], ebp
jne 0x10001e5e
test esi, esi
je 0x10001e7a
cmp byte [esi], 0
je 0x10001e7a
mov eax, dword [0x1000f254]
test eax, eax
jne 0x10001e7a
test esi, esi
jne 0x10001e17
je 0x10001e03
cmp byte [esi], 0
je 0x10001e03
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ebx, [eax + 2]
push ebx
call fcn.10003fd9
mov edi, eax
add esp, 4
test edi, edi
mov dword [0x1000f25c], edi
je 0x10001dfc
mov ecx, ebx
xor eax, eax
mov edx, ecx
push esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [0x1000f25c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x10001e0e
push str.CLateLoadBase::dll_LoadLibrary___Unable_to_allocate_memory_for_a_string_
jmp 0x10001e08
push str.CLateLoadBase::dll_LoadLibrary___We_need_a_valid_pszLibrary_string
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1000f250]
test eax, eax
jne 0x10001e5e
push esi
mov dword [0x1000f254], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [0x1000f250], eax
jne 0x10001e5e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov dword [0x1000f254], eax
jne 0x10001e55
push str.Wow__that_should_NOT_have_happened___Could_you_tell_JED_how_you_did_it_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [0x1000f254], 0x20000000
mov eax, dword [0x1000f250]
test eax, eax
je 0x10001e7a
push str.UDLL_SetCurrentDriveNumber
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebp, eax
xor ecx, ecx
test ebp, ebp
setne cl
inc ecx
mov dword [0x1000f484], ecx
mov dword [0x1000f480], ebp
pop ebp
mov eax, dword [0x1000f484]
pop edi
pop esi
cmp eax, 2
pop ebx
jne 0x10001e9b
mov edx, dword [esp]
push 0
push edx
call dword [0x1000f480]
pop ecx
ret