Function at 0x42a94c
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 + 0x43dbf0]
test esi, esi
je 0x42aaf2
cmp ebx, 1
je 0x42a988
cmp ebx, 2
jne 0x42aa72
test byte [0x46c984], 0x40
je 0x42aa72
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 0x42aa0c
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov ecx, dword [0x463488]
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 + 0x479920]
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 0x42aaf2
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov ecx, dword [0x463488]
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 0x42aaef
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 0x42aaf2
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov ecx, dword [0x463488]
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 0x42ab48
push eax
push eax
push str.Setting_device_to_CONNECTED_r_n
push dword [0x463488]
call fcn.0040423a
mov eax, dword [ebx*4 + 0x43dba0]
add esp, 0x10
test eax, eax
jne 0x42ab7b
jmp 0x42ad0a
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0xc
mov esi, dword [0x463488]
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 0x42adba
cmp byte [eax], 0
je 0x42ad0a
mov byte [ebp - 0x238], 0
cmp ebx, 2
jne 0x42abb5
mov eax, dword [0x479938]
test eax, eax
je 0x42abb5
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 + 0x43dba0]
cmp byte [eax], 0x22
jne 0x42abc8
mov edx, 0x46c4ec
jmp 0x42abde
push edx
push edx
push 0x20
push eax
call fcn.004033de
add esp, 0x10
test eax, eax
je 0x42abc1
mov edx, 0x448dc2
cmp dword [ebp + 0x18], 0
jne 0x42abeb
mov dword [ebp + 0x18], 0x46c4ec
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 [0x46c984]
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 + 0x479a8c]
push edx
push dword [ebx*4 + 0x43dba0]
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.0042a1e6
add esp, 0x10
mov esi, dword [ebx*4 + 0x479b00]
test esi, esi
jne 0x42ada9
sub esp, 0xc
push 0x8024
call fcn.0042d128
add esp, 0x10
mov esi, eax
test eax, eax
je 0x42adba
mov dword [eax + 0x1c], ebx
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, 0x42bc82
cmp ebx, 2
mov edx, 0x42a143
cmovne edx, ecx
mov dword [esi + 4], eax
push ecx
push eax
push esi
push edx
call fcn.00403331
mov dword [ebx*4 + 0x479b00], esi
add esp, 0x10
mov eax, dword [ebx*4 + 0x43dbf0]
lea ebx, [esi + 8]
mov dword [esi + 0x20], 0
mov dword [esi], eax
push eax
push 0x10
push 0
push ebx
call fcn.0042d1cc
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 0x42adba
sub esp, 0xc
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
add esp, 0xc
jmp 0x42ad6a
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret