Function at 0x425350
Capabilities:
Encode data using xor
Get local ipv4 addresses
Get mac address on windows

Disassembly:
push 0xffffffffffffffff
push 0x452eef
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
push ebp
push esi
lea eax, [esp + 0x10]
push edi
xor ebx, ebx
push eax
mov dword [esp + 0x1c], ecx
push ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
call sub.iphlpapi.dll_GetAdaptersInfo
cmp eax, 0x6f
je 0x4253b2
cmp eax, ebx
jne 0x425512
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x425512
push eax
call fcn.00447dd1
add esp, 4
lea ecx, [esp + 0x14]
mov ebp, eax
push ecx
push ebp
call sub.iphlpapi.dll_GetAdaptersInfo
cmp eax, ebx
jne 0x425509
xor edx, edx
lea edi, [ebp + 0x1d8]
mov dl, byte [ebp + 0x19b]
xor eax, eax
mov al, byte [ebp + 0x19a]
push edi
push edx
xor ecx, ecx
mov cl, byte [ebp + 0x199]
push eax
xor edx, edx
xor eax, eax
mov dl, byte [ebp + 0x198]
mov al, byte [ebp + 0x197]
push ecx
push edx
xor ecx, ecx
push eax
mov cl, byte [ebp + 0x196]
xor edx, edx
mov dl, byte [ebp + 0x195]
xor eax, eax
mov al, byte [ebp + 0x194]
push ecx
push edx
lea ecx, [ebp + 0x1b0]
push eax
push ecx
push str.IP_s__MAC_.2x__.2x__.2x__.2x__.2x__.2x__.2x__.2x__GW_s
push 0x20
push 0x471d20
mov esi, ebp
call fcn.00401200
or ecx, 0xffffffff
xor eax, eax
add esp, 0x34
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x4254d8
mov esi, dword [esi]
cmp esi, ebx
je 0x425509
xor edx, edx
lea edi, [esi + 0x1d8]
mov dl, byte [esi + 0x19b]
xor eax, eax
mov al, byte [esi + 0x19a]
push edi
push edx
xor ecx, ecx
mov cl, byte [esi + 0x199]
push eax
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x198]
mov al, byte [esi + 0x197]
push ecx
push edx
xor ecx, ecx
push eax
mov cl, byte [esi + 0x196]
xor edx, edx
mov dl, byte [esi + 0x195]
xor eax, eax
mov al, byte [esi + 0x194]
push ecx
push edx
lea ecx, [esi + 0x1b0]
push eax
push ecx
push str.IP_s__MAC_.2x__.2x__.2x__.2x__.2x__.2x__.2x__.2x__GW_s
push 0x20
push 0x471d20
call fcn.00401200
or ecx, 0xffffffff
xor eax, eax
add esp, 0x34
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x425458
cmp esi, ebx
je 0x425509
mov eax, dword [esi + 0x198]
mov edx, dword [esi + 0x194]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
xor eax, eax
mov cl, byte [esi + eax + 0x1b0]
mov dl, byte [esp + eax + 0x20]
xor dl, cl
mov byte [esp + eax + 0x20], dl
inc eax
cmp eax, 8
jb 0x4254f2
push ebp
call fcn.00447dfa
add esp, 4
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x7c]
add eax, 0x170
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x42552a
mov eax, 0x45561c
push eax
lea ecx, [esp + 0x14]
call fcn.004480fe
mov al, byte [0x471b14]
mov ecx, 9
mov byte [esp + 0x38], al
xor eax, eax
lea edi, [esp + 0x39]
lea edx, [esp + 0x2e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x38]
mov ebp, 1
stosb byte es:[edi], al
push ecx
lea eax, [esp + 0x30]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
push ecx
push str._8x__4x__4x__s
push edx
mov dword [esp + 0x80], ebp
call fcn.00431281
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov dx, word [esp + 0x3e]
xor eax, ecx
mov cx, word [esp + 0x3c]
xor word [esp + 0x46], dx
xor word [esp + 0x44], cx
mov edx, dword [esp + 0x46]
add esp, 0x18
lea ecx, [esp + 0x38]
and edx, 0xffff
mov dword [esp + 0x28], eax
push ecx
mov ecx, dword [esp + 0x30]
and ecx, 0xffff
push edx
push ecx
push eax
lea edx, [esp + 0x20]
push str._8x__4x__4x__s
push edx
call fcn.004437fb
mov esi, dword [esp + 0x88]
add esp, 0x18
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.00447e05
mov dword [esp + 0x1c], ebp
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], bl
call fcn.00448090
mov ecx, dword [esp + 0x60]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x5c
ret 4