Function at 0x42aaec
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x27c
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebx*4 + 0x43dd30]
test esi, esi
je 0x42ac92
cmp ebx, 1
je 0x42ab28
cmp ebx, 2
jne 0x42ac12
test byte [0x46d984], 0x40
je 0x42ac12
mov eax, dword [ebp + 0x10]
push 0
mov dword [ebp - 0x248], esi
mov dword [ebp - 0x244], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x23c], 0x7fffffff
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x248]
push 0x10
push eax
push 0x10
push eax
push 0x22001c
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42abac
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov ecx, dword [0x464488]
push eax
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x25c], eax
call fcn.004037a9
mov edx, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x260]
push eax
push edx
push str.ERROR:_The_TAP_Windows_driver_rejected_a_call_to_set_TAP_WIN_IOCTL_CONFIG_DHCP_MASQ_mode__d__s
push ecx
call fcn.0040423a
add esp, 0x20
lea eax, [ebx*8 + 0x47a920]
lea edx, [ebp - 0x250]
push 0
push edx
push 6
push eax
push 6
push eax
push 0x220004
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42ac92
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov ecx, dword [0x464488]
push eax
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x25c], eax
call fcn.004037a9
mov edx, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x260]
push eax
push edx
push str.ERROR:_The_TAP_Windows_driver_rejected_a_call_to_get_TAP_WIN_IOCTL_GET_MAC___d__s
push ecx
call fcn.0040423a
jmp 0x42ac8f
mov eax, dword [ebp + 0x10]
push 0
mov dword [ebp - 0x248], esi
and eax, esi
mov dword [ebp - 0x244], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x248]
push 0xc
push eax
push 0xc
push eax
push 0x220028
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42ac92
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov ecx, dword [0x464488]
push eax
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x25c], eax
call fcn.004037a9
mov edx, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x260]
mov dword [esp], eax
push edx
push 0
push str.Setting_device_to_TAP_WIN_IOCTL_CONFIG_TUN_failed__d__d__s_r_n
push ecx
call fcn.0040423a
add esp, 0x20
lea eax, [ebp - 0x250]
push 0
push eax
lea eax, [ebp - 0x24c]
push 4
mov dword [ebp - 0x24c], 1
push eax
push 4
push eax
push 0x220018
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edi, eax
test eax, eax
je 0x42ace8
push eax
push eax
push str.Setting_device_to_CONNECTED_r_n
push dword [0x464488]
call fcn.0040423a
mov eax, dword [ebx*4 + 0x43dce0]
add esp, 0x10
test eax, eax
jne 0x42ad1b
jmp 0x42aeaa
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov esi, dword [0x464488]
or edi, 0xffffffff
push eax
mov ebx, eax
call fcn.004037a9
mov dword [esp], eax
push ebx
push 0
push str.Setting_device_to_CONNECTED_failed__d__d__s_r_n
push esi
call fcn.0040423a
add esp, 0x20
jmp 0x42af5a
cmp byte [eax], 0
je 0x42aeaa
mov byte [ebp - 0x238], 0
cmp ebx, 2
jne 0x42ad55
mov eax, dword [0x47a938]
test eax, eax
je 0x42ad55
add eax, 0x10
push ecx
push ecx
push eax
lea eax, [ebp - 0x237]
push eax
mov byte [ebp - 0x238], 0x20
call fcn.004038cd
add esp, 0x10
mov eax, dword [ebx*4 + 0x43dce0]
cmp byte [eax], 0x22
jne 0x42ad68
mov edx, 0x46d4ec
jmp 0x42ad7e
push edx
push edx
push 0x20
push eax
call fcn.004033de
add esp, 0x10
test eax, eax
je 0x42ad61
mov edx, 0x449e02
cmp dword [ebp + 0x18], 0
jne 0x42ad8b
mov dword [ebp + 0x18], 0x46d4ec
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x238]
shr eax, 0x18
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp + 0x14]
shr eax, 0x10
movzx eax, al
mov dword [ebp - 0x260], eax
mov eax, dword [ebp + 0x14]
movzx eax, ah
mov dword [ebp - 0x264], eax
movzx eax, byte [ebp + 0x14]
mov dword [ebp - 0x268], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x18
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x10
movzx eax, al
mov dword [ebp - 0x270], eax
mov eax, dword [ebp + 0x10]
movzx eax, ah
mov dword [ebp - 0x274], eax
movzx eax, byte [ebp + 0x10]
mov dword [ebp - 0x278], eax
mov eax, esi
shr eax, 0x18
mov dword [ebp - 0x27c], eax
mov eax, esi
shr eax, 0x10
movzx eax, al
mov dword [ebp - 0x280], eax
mov eax, esi
movzx eax, ah
mov dword [ebp - 0x284], eax
mov eax, esi
movzx esi, al
mov eax, dword [0x46d984]
and eax, 0x1000
cmp eax, 1
sbb eax, eax
sub esp, 0xc
and eax, 0xfffffff8
push ecx
add eax, 0x4b
push dword [ebp + 0x18]
push dword [ebp - 0x25c]
push dword [ebp - 0x260]
push dword [ebp - 0x264]
push dword [ebp - 0x268]
push dword [ebp - 0x26c]
push dword [ebp - 0x270]
push dword [ebp - 0x274]
push dword [ebp - 0x278]
push dword [ebp - 0x27c]
push dword [ebp - 0x280]
push dword [ebp - 0x284]
push esi
lea esi, [ebp - 0x218]
push dword [ebx*4 + 0x47aa8c]
push edx
push dword [ebx*4 + 0x43dce0]
push edx
push eax
push str._S___c__s_s_s___s___u._u._u._u__u._u._u._u__u._u._u._u___s__s
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x54
push esi
call fcn.0042a386
add esp, 0x10
mov esi, dword [ebx*4 + 0x47ab00]
test esi, esi
jne 0x42af49
sub esp, 0xc
push 0x8024
call fcn.0042d4e4
add esp, 0x10
mov esi, eax
test eax, eax
je 0x42af5a
mov dword [eax + 0x1c], ebx
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, 0x42bfc2
cmp ebx, 2
mov edx, 0x42a2e3
cmovne edx, ecx
mov dword [esi + 4], eax
push ecx
push eax
push esi
push edx
call fcn.00403331
mov dword [ebx*4 + 0x47ab00], esi
add esp, 0x10
mov eax, dword [ebx*4 + 0x43dd30]
lea ebx, [esi + 8]
mov dword [esi + 0x20], 0
mov dword [esi], eax
push eax
push 0x10
push 0
push ebx
call fcn.0042d588
mov eax, dword [esi + 4]
mov dword [esi + 0x18], eax
lea eax, [esi + 0x26]
mov dword [esp], ebx
push 0
push 0x4000
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
add esp, 0xc
jmp 0x42af5a
sub esp, 0xc
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
add esp, 0xc
jmp 0x42af0a
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret