Function at 0x409020
Capabilities:
Encode data using xor
Get mac address on windows

Disassembly:
sub esp, 0x38
mov eax, dword [0x431060]
xor eax, esp
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
push ebx
push ebp
push esi
push edi
push 0x288
mov dword [esp + 0x2c], eax
call fcn.00415dc8
add esp, 4
lea ecx, [esp + 0x20]
mov ebx, eax
push ecx
push ebx
mov dword [esp + 0x28], 0x288
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
je 0x40907d
push ebx
cmp eax, 0x6f
jne 0x40908d
call fcn.0041682d
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.00415dc8
add esp, 4
mov ebx, eax
lea eax, [esp + 0x20]
push eax
push ebx
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
je 0x4090aa
push ebx
call fcn.0041682d
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.00415dd3
add esp, 0x38
ret
xor eax, eax
xor ebp, ebp
mov esi, ebx
mov edi, 3
mov dword [esp + 0x24], ebp
mov byte [esp + 0x2c], 0
mov dword [esp + 0x2d], eax
mov byte [esp + 0x31], al
test ebx, ebx
je 0x409155
mov edi, edi
lea ecx, [esi + 8]
call fcn.00408150
test ebp, ebp
je 0x4090e9
cmp dword [esi + 0x1a0], 6
jne 0x40914b
cmp edi, eax
jle 0x40914b
movzx ecx, byte [esi + 0x194]
movzx edx, byte [esi + 0x195]
xor cl, 0x61
sub dl, 0x54
mov byte [esp + 0x2c], cl
movzx ecx, byte [esi + 0x196]
mov byte [esp + 0x2d], dl
movzx edx, byte [esi + 0x197]
xor cl, 0x29
sub dl, 0x7b
mov byte [esp + 0x2e], cl
movzx ecx, byte [esi + 0x198]
mov byte [esp + 0x2f], dl
movzx edx, byte [esi + 0x199]
xor cl, 0x1a
sub dl, 0x3d
mov dword [esp + 0x24], 1
mov ebp, dword [esp + 0x24]
mov byte [esp + 0x30], cl
mov byte [esp + 0x31], dl
mov edi, eax
mov esi, dword [esi]
test esi, esi
jne 0x4090d0
push ebx
call fcn.0041682d
add esp, 4
test ebp, ebp
je 0x40948a
xor eax, eax
lea edi, [esp + 0x34]
lea ebx, [eax + 6]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x34], 0
mov dword [esp + 0x35], eax
mov dword [esp + 0x39], eax
mov dword [esp + 0x3d], eax
mov word [esp + 0x41], ax
mov byte [esp + 0x43], al
call fcn.0040a3d0
xor edi, edi
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], edi
call fcn.00408300
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ebp, ebx
and ebp, 1
jne 0x4091b4
add eax, ebx
jmp 0x4091b6
sub eax, ebx
mov dword [esp + 0x1c], eax
mov ecx, ebx
shl ecx, 0x10
mov edx, ebx
and edx, 0xff00
add ecx, edx
mov eax, ebx
shr eax, 8
shl ecx, 8
and eax, 0xff00
add ecx, eax
mov edx, ebx
shr edx, 0x18
mov dword [esp + 0x14], edi
movzx esi, bl
lea edi, [ecx + edx]
mov al, byte [esp + 0x14]
mov edx, dword [esp + 0x1c]
add al, 2
movzx ecx, al
rol edx, cl
add edx, ebx
mov eax, edx
mov ecx, edx
and ecx, 0xff00
shl eax, 0x10
add eax, ecx
mov ecx, edx
shr ecx, 8
shl eax, 8
and ecx, 0xff00
add eax, ecx
shr edx, 0x18
add eax, edx
xor eax, 0x7ac9127b
add eax, ebx
mov ecx, esi
ror eax, cl
mov edx, eax
shl edx, 0x10
mov ecx, eax
and ecx, 0xff00
add edx, ecx
mov ecx, eax
shl edx, 8
shr ecx, 8
and ecx, 0xff00
add edx, ecx
shr eax, 0x18
add edx, eax
mov eax, dword [esp + 0x14]
xor edx, edi
inc eax
xor edx, 0x39ba2d71
cmp eax, 0x18
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
jle 0x4091e7
test ebp, ebp
jne 0x409275
mov edx, dword [esp + 0x38]
add edx, ebx
mov dword [esp + 0x18], edx
jmp 0x40927f
mov eax, dword [esp + 0x38]
sub eax, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov al, byte [esp + 0x14]
mov edx, dword [esp + 0x18]
add al, 2
movzx ecx, al
rol edx, cl
add edx, ebx
mov eax, edx
mov ecx, edx
and ecx, 0xff00
shl eax, 0x10
add eax, ecx
mov ecx, edx
shr ecx, 8
shl eax, 8
and ecx, 0xff00
add eax, ecx
shr edx, 0x18
add eax, edx
xor eax, 0x7ac9127b
add eax, ebx
mov ecx, esi
ror eax, cl
mov edx, eax
shl edx, 0x10
mov ecx, eax
and ecx, 0xff00
add edx, ecx
mov ecx, eax
shl edx, 8
shr ecx, 8
and ecx, 0xff00
add edx, ecx
shr eax, 0x18
add edx, eax
mov eax, dword [esp + 0x14]
xor edx, edi
inc eax
xor edx, 0x39ba2d71
cmp eax, 0x18
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
jle 0x409287
test ebp, ebp
jne 0x409315
mov edx, dword [esp + 0x3c]
add edx, ebx
mov dword [esp + 0x14], edx
jmp 0x40931f
mov eax, dword [esp + 0x3c]
sub eax, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], 0
mov al, byte [esp + 0x2c]
mov edx, dword [esp + 0x14]
add al, 2
movzx ecx, al
rol edx, cl
add edx, ebx
mov eax, edx
mov ecx, edx
and ecx, 0xff00
shl eax, 0x10
add eax, ecx
mov ecx, edx
shr ecx, 8
shl eax, 8
and ecx, 0xff00
add eax, ecx
shr edx, 0x18
add eax, edx
xor eax, 0x7ac9127b
add eax, ebx
mov ecx, esi
ror eax, cl
mov edx, eax
shl edx, 0x10
mov ecx, eax
and ecx, 0xff00
add edx, ecx
mov ecx, eax
shl edx, 8
shr ecx, 8
and ecx, 0xff00
add edx, ecx
shr eax, 0x18
add edx, eax
mov eax, dword [esp + 0x2c]
xor edx, edi
inc eax
xor edx, 0x39ba2d71
cmp eax, 0x18
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], eax
jle 0x409327
test ebp, ebp
jne 0x4093b2
mov edx, dword [esp + 0x40]
lea ebp, [edx + ebx]
jmp 0x4093b8
mov ebp, dword [esp + 0x40]
sub ebp, ebx
mov dword [esp + 0x2c], 0
mov al, byte [esp + 0x2c]
add al, 2
movzx ecx, al
mov edx, ebp
rol edx, cl
add edx, ebx
mov eax, edx
mov ecx, edx
and ecx, 0xff00
shl eax, 0x10
add eax, ecx
mov ecx, edx
shr ecx, 8
shl eax, 8
and ecx, 0xff00
add eax, ecx
shr edx, 0x18
add eax, edx
xor eax, 0x7ac9127b
add eax, ebx
mov ecx, esi
ror eax, cl
mov edx, eax
shl edx, 0x10
mov ecx, eax
and ecx, 0xff00
add edx, ecx
mov ecx, eax
shl edx, 8
shr ecx, 8
and ecx, 0xff00
add edx, ecx
shr eax, 0x18
add edx, eax
mov eax, dword [esp + 0x2c]
xor edx, edi
inc eax
xor edx, 0x39ba2d71
cmp eax, 0x18
mov ebp, edx
mov dword [esp + 0x2c], eax
jle 0x4093c0
mov edi, dword [esp + 0x28]
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409453
push 0xffffffffffffffff
push 0x10
mov ecx, edi
call fcn.00401d40
jmp 0x409461
mov eax, 0x10
push 0
sub eax, ecx
call fcn.00406a00
cmp dword [edi + 0x18], 0x10
jb 0x40946c
mov eax, dword [edi + 4]
jmp 0x40946f
lea eax, [edi + 4]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [eax], edx
mov edx, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
xor ecx, esp
call fcn.00415dd3
add esp, 0x38
ret