Function at 0x49ae80
Capabilities:
Link many functions at runtime
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x310
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x552c38]
mov byte [ebp - 0x104], al
push 0xfe
push 0
lea ecx, [ebp - 0x103]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x552c39]
mov byte [ebp - 0x304], dl
push 0xfe
push 0
lea eax, [ebp - 0x303]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x552c3a]
mov byte [ebp - 0x204], cl
push 0xfe
push 0
lea edx, [ebp - 0x203]
push edx
call fcn.004b6780
add esp, 0xc
mov dword [ebp - 0x30c], 0
mov dword [ebp - 0x310], 0
push 0x4f2dac
push 0x5c
push 0x4f2dbc
push 0x5c
push 0x4fc4b8
push str._s_c_s_c_s
lea eax, [ebp - 0x104]
push eax
call fcn.004b6e08
add esp, 0x1c
lea ecx, [ebp - 0x104]
push ecx
call fcn.004196c0
add esp, 4
cmp eax, 1
jne 0x49af59
lea edx, [ebp - 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x552c30], eax
cmp dword [0x552c30], 0
jne 0x49affe
push 0x4f2dd0
mov eax, dword [ebp + 8]
push eax
push 0x4f2ddc
lea ecx, [ebp - 0x304]
push ecx
call fcn.004b6e08
add esp, 0x10
lea edx, [ebp - 0x304]
push edx
push 0xff
lea eax, [ebp - 0x204]
push eax
push 0x552c3b
push str.records_ini_path_win
push 0x4f2dfc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x310], eax
push str.usb_info.dll
push 0x5c
push str.techw
lea ecx, [ebp - 0x204]
push ecx
push str._s_s_c_s
lea edx, [ebp - 0x104]
push edx
call fcn.004b6e08
add esp, 0x18
lea eax, [ebp - 0x104]
push eax
call fcn.004196c0
add esp, 4
cmp eax, 1
jne 0x49affe
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x552c30], eax
cmp dword [0x552c30], 0
je 0x49b157
push str.USB007_RetrieveDriveInfoDB
mov edx, dword [0x552c30]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x55c0d4], eax
push str.USB007_DC_SetWriteProtectDrive
mov eax, dword [0x552c30]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x55c0d0], eax
push str.USB007_DC_UnSetWriteProtectDrive
mov ecx, dword [0x552c30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x55c0cc], eax
push str.USB007_DC_SetTempWriteProtectDrive
mov edx, dword [0x552c30]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x55c0c8], eax
push str.USB007_DC_UnSetTempWriteProtectDrive
mov eax, dword [0x552c30]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x55c0c4], eax
cmp dword [0x55c0d4], 0
je 0x49b0cb
cmp dword [0x55c0d0], 0
jne 0x49b0cb
cmp dword [0x55c0cc], 0
jne 0x49b0cb
cmp dword [0x55c0c8], 0
jne 0x49b0cb
cmp dword [0x55c0c4], 0
jne 0x49b0cb
mov ecx, dword [0x552c30]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x30c], eax
mov dword [0x552c30], 0
jmp 0x49b157
push 0x55a220
call dword [0x55c0d4]
add esp, 4
xor edx, edx
mov word [ebp - 0x308], dx
jmp 0x49b0f6
mov ax, word [ebp - 0x308]
add ax, 1
mov word [ebp - 0x308], ax
movzx ecx, word [ebp - 0x308]
cmp ecx, dword [0x55a220]
jae 0x49b147
movzx edx, word [ebp - 0x308]
imul edx, edx, 0x620
mov eax, 1
imul eax, eax, 0
movsx ecx, byte [edx + eax + 0x55a644]
mov edx, 1
imul edx, edx, 0
movsx eax, byte [ebp + edx - 0x104]
cmp ecx, eax
jne 0x49b145
movzx ecx, word [ebp - 0x308]
mov dword [0x552c34], ecx
jmp 0x49b147
jmp 0x49b0e4
mov edx, dword [0x552c34]
push edx
call dword [0x55c0c4]
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret