Function at 0x412b10
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
add byte [ebp + 8], 3
movsx eax, byte [0x4c5664]
cmp eax, 0x30
jne 0x412bd8
mov byte [ebp - 0xf], 0
push 0x4dec34
push 1
lea edx, [ebp + 8]
push edx
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Write_1
test eax, eax
je 0x412b5a
inc byte [ebp - 0xf]
cmp byte [ebp - 0xf], 2
jb 0x412b37
mov byte [ebp - 0x10], 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x412b85
mov al, byte [ebp - 0xe]
cmp al, byte [ebp + 8]
je 0x412b8e
inc byte [ebp - 0x10]
cmp byte [ebp - 0x10], 2
jb 0x412b5e
mov byte [ebp - 0x11], 0
push 0x4dec34
push 1
lea edx, [ebp - 0xe]
push edx
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x412bca
xor ecx, ecx
mov cl, byte [ebp - 0xe]
mov eax, 0xff
sub eax, ecx
xor edx, edx
mov dl, byte [ebp + 8]
cmp eax, edx
je 0x412c69
inc byte [ebp - 0x11]
cmp byte [ebp - 0x11], 2
jb 0x412b92
jmp 0x412c69
push 0
push 0x4dec34
push 1
lea ecx, [ebp + 8]
push ecx
push dword [0x4dea64]
call sub.kernel32.dll_WriteFile_1
mov byte [ebp - 0x12], 0
push 0
push 0x4dec34
push 1
lea eax, [ebp - 0xe]
push eax
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x412c1d
mov dl, byte [ebp - 0xe]
cmp dl, byte [ebp + 8]
je 0x412c26
inc byte [ebp - 0x12]
cmp byte [ebp - 0x12], 2
jb 0x412bf4
mov byte [ebp - 0x13], 0
push 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x412c60
xor eax, eax
mov al, byte [ebp - 0xe]
mov edx, 0xff
sub edx, eax
xor ecx, ecx
mov cl, byte [ebp + 8]
cmp edx, ecx
je 0x412c69
inc byte [ebp - 0x13]
cmp byte [ebp - 0x13], 2
jb 0x412c2a
cmp dword [0x4dec34], 0
jne 0x412c7c
mov eax, 1
jmp 0x413193
inc byte [0x4dea68]
cmp byte [0x4dea68], 0
jne 0x412c91
inc byte [0x4dea68]
movsx edx, byte [0x4c5664]
cmp edx, 0x30
jne 0x412d4d
mov byte [ebp - 0x14], 0
push 0x4dec34
push 1
push 0x4dea68
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Write_1
test eax, eax
je 0x412cc9
inc byte [ebp - 0x14]
cmp byte [ebp - 0x14], 2
jb 0x412ca5
mov byte [ebp - 0x15], 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x412cf7
mov al, byte [ebp - 0xe]
cmp al, byte [0x4dea68]
je 0x412d00
inc byte [ebp - 0x15]
cmp byte [ebp - 0x15], 2
jb 0x412ccd
mov byte [ebp - 0x16], 0
push 0x4dec34
push 1
lea edx, [ebp - 0xe]
push edx
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x412d3f
xor ecx, ecx
mov cl, byte [ebp - 0xe]
mov eax, 0xff
sub eax, ecx
xor edx, edx
mov dl, byte [0x4dea68]
cmp eax, edx
je 0x412de5
inc byte [ebp - 0x16]
cmp byte [ebp - 0x16], 2
jb 0x412d04
jmp 0x412de5
push 0
push 0x4dec34
push 1
push 0x4dea68
push dword [0x4dea64]
call sub.kernel32.dll_WriteFile_1
mov byte [ebp - 0x17], 0
push 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x412d96
mov al, byte [ebp - 0xe]
cmp al, byte [0x4dea68]
je 0x412d9f
inc byte [ebp - 0x17]
cmp byte [ebp - 0x17], 2
jb 0x412d6a
mov byte [ebp - 0x18], 0
push 0
push 0x4dec34
push 1
lea edx, [ebp - 0xe]
push edx
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x412ddc
xor ecx, ecx
mov cl, byte [ebp - 0xe]
mov eax, 0xff
sub eax, ecx
xor edx, edx
mov dl, byte [0x4dea68]
cmp eax, edx
je 0x412de5
inc byte [ebp - 0x18]
cmp byte [ebp - 0x18], 2
jb 0x412da3
cmp dword [0x4dec34], 0
jne 0x412df8
mov eax, 1
jmp 0x413193
movsx edx, byte [0x4c5664]
cmp edx, 0x30
jne 0x412ead
mov byte [ebp - 0x19], 0
push 0x4dec34
push 1
lea ecx, [ebp - 5]
push ecx
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Write_1
test eax, eax
je 0x412e2f
inc byte [ebp - 0x19]
cmp byte [ebp - 0x19], 2
jb 0x412e0c
mov byte [ebp - 0x1a], 0
push 0x4dec34
push 1
lea eax, [ebp - 0xe]
push eax
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x412e5a
mov dl, byte [ebp - 0xe]
cmp dl, byte [ebp - 5]
je 0x412e63
inc byte [ebp - 0x1a]
cmp byte [ebp - 0x1a], 2
jb 0x412e33
mov byte [ebp - 0x1b], 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x412e9f
xor eax, eax
mov al, byte [ebp - 0xe]
mov edx, 0xff
sub edx, eax
xor ecx, ecx
mov cl, byte [ebp - 5]
cmp edx, ecx
je 0x412f3e
inc byte [ebp - 0x1b]
cmp byte [ebp - 0x1b], 2
jb 0x412e67
jmp 0x412f3e
push 0
push 0x4dec34
push 1
lea eax, [ebp - 5]
push eax
push dword [0x4dea64]
call sub.kernel32.dll_WriteFile_1
mov byte [ebp - 0x1c], 0
push 0
push 0x4dec34
push 1
lea edx, [ebp - 0xe]
push edx
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x412ef2
mov cl, byte [ebp - 0xe]
cmp cl, byte [ebp - 5]
je 0x412efb
inc byte [ebp - 0x1c]
cmp byte [ebp - 0x1c], 2
jb 0x412ec9
mov byte [ebp - 0x1d], 0
push 0
push 0x4dec34
push 1
lea eax, [ebp - 0xe]
push eax
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x412f35
xor edx, edx
mov dl, byte [ebp - 0xe]
mov ecx, 0xff
sub ecx, edx
xor eax, eax
mov al, byte [ebp - 5]
cmp ecx, eax
je 0x412f3e
inc byte [ebp - 0x1d]
cmp byte [ebp - 0x1d], 2
jb 0x412eff
cmp dword [0x4dec34], 0
jne 0x412f51
mov eax, 1
jmp 0x413193
mov byte [ebp - 0x1e], 3
mov dl, byte [ebp - 0x1e]
cmp dl, byte [ebp + 8]
jae 0x4130d2
movsx ecx, byte [0x4c5664]
cmp ecx, 0x30
jne 0x413019
mov byte [ebp - 0x1f], 0
push 0x4dec34
push 1
push dword [ebp - 0xc]
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Write_1
test eax, eax
je 0x412f97
inc byte [ebp - 0x1f]
cmp byte [ebp - 0x1f], 2
jb 0x412f75
mov byte [ebp - 0x20], 0
push 0x4dec34
push 1
lea eax, [ebp - 0xe]
push eax
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x412fc4
mov dl, byte [ebp - 0xe]
mov ecx, dword [ebp - 0xc]
cmp dl, byte [ecx]
je 0x412fcd
inc byte [ebp - 0x20]
cmp byte [ebp - 0x20], 2
jb 0x412f9b
mov byte [ebp - 0x21], 0
push 0x4dec34
push 1
lea eax, [ebp - 0xe]
push eax
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x41300b
xor edx, edx
mov dl, byte [ebp - 0xe]
mov ecx, 0xff
sub ecx, edx
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dl, byte [eax]
cmp ecx, edx
je 0x4130ad
inc byte [ebp - 0x21]
cmp byte [ebp - 0x21], 2
jb 0x412fd1
jmp 0x4130ad
push 0
push 0x4dec34
push 1
push dword [ebp - 0xc]
push dword [0x4dea64]
call sub.kernel32.dll_WriteFile_1
mov byte [ebp - 0x22], 0
push 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x41305f
mov al, byte [ebp - 0xe]
mov edx, dword [ebp - 0xc]
cmp al, byte [edx]
je 0x413068
inc byte [ebp - 0x22]
cmp byte [ebp - 0x22], 2
jb 0x413034
mov byte [ebp - 0x23], 0
push 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x4130a4
xor eax, eax
mov al, byte [ebp - 0xe]
mov edx, 0xff
sub edx, eax
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov al, byte [ecx]
cmp edx, eax
je 0x4130ad
inc byte [ebp - 0x23]
cmp byte [ebp - 0x23], 2
jb 0x41306c
cmp dword [0x4dec34], 0
jne 0x4130c0
mov eax, 1
jmp 0x413193
inc dword [ebp - 0xc]
inc byte [ebp - 0x1e]
mov dl, byte [ebp - 0x1e]
cmp dl, byte [ebp + 8]
jb 0x412f61
movsx ecx, byte [0x4c5664]
cmp ecx, 0x30
jne 0x41313f
mov byte [ebp - 0x24], 0
push 0x4dec34
push 1
push 0x4cb2fb
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Write_1
test eax, eax
je 0x413106
inc byte [ebp - 0x24]
cmp byte [ebp - 0x24], 2
jb 0x4130e2
mov byte [ebp - 0x25], 0
push 0x4dec34
push 1
lea eax, [ebp - 0xe]
push eax
push dword [0x4dea64]
call sub.RT_USB.DLL_FT_Read_1
cmp dword [0x4dec34], 0
je 0x413134
mov dl, byte [ebp - 0xe]
cmp dl, byte [0x4cb2fb]
je 0x413191
inc byte [ebp - 0x25]
cmp byte [ebp - 0x25], 2
jb 0x41310a
jmp 0x413191
push 0
push 0x4dec34
push 1
push 0x4cb2fb
push dword [0x4dea64]
call sub.kernel32.dll_WriteFile_1
mov byte [ebp - 0x26], 0
push 0
push 0x4dec34
push 1
lea ecx, [ebp - 0xe]
push ecx
push dword [0x4dea64]
call sub.kernel32.dll_ReadFile_1
cmp dword [0x4dec34], 0
je 0x413188
mov al, byte [ebp - 0xe]
cmp al, byte [0x4cb2fb]
je 0x413191
inc byte [ebp - 0x26]
cmp byte [ebp - 0x26], 2
jb 0x41315c
xor eax, eax
mov esp, ebp
pop ebp
ret 4