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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2ca4
call fcn.1004eb60
mov eax, dword [0x1006900c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x2ca0], ecx
jmp 0x10003652
jmp 0x10003664
lea eax, [ebp - 0x2c98]
mov dword [ebp - 0x2c98], 0x2880
push eax
lea eax, [ebp - 0x2c88]
push eax
call dword [sym.imp.IPHLPAPI.DLL_GetAdaptersInfo]
test eax, eax
je 0x10003699
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10017199
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x2af4], 0
lea esi, [ebp - 0x2c88]
jne 0x100036e8
nop dword [eax + eax]
cmp byte [esi + 0x195], 0
jne 0x100036e8
cmp byte [esi + 0x196], 0
jne 0x100036e8
cmp byte [esi + 0x197], 0
jne 0x100036e8
cmp byte [esi + 0x198], 0
jne 0x100036e8
cmp byte [esi + 0x199], 0
jne 0x100036e8
mov esi, dword [esi]
cmp byte [esi + 0x194], 0
je 0x100036b0
push 0x19
call fcn.100177d8
mov ebx, eax
add esp, 4
xor eax, eax
lea ecx, [ebx + 0x17]
cmp ebx, 0x100615d3
ja 0x10003709
cmp ecx, str._02X_02X_02X_02X_02X_02X
jae 0x10003723
movups xmm0, xmmword [str._02X_02X_02X_02X_02X_02X]
mov eax, 0x10
movaps xmm1, xmmword [0x10061b50]
pxor xmm1, xmm0
movups xmmword [ebx], xmm1
mov edi, str._02X_02X_02X_02X_02X_02X
lea ecx, [eax + ebx]
mov edx, 0x18
sub edi, ebx
sub edx, eax
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
xor al, 0xa1
mov byte [ecx - 1], al
sub edx, 1
jne 0x10003734
mov edi, ebx
mov byte [ebx + 0x18], dl
lea ecx, [edi + 1]
nop dword [eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x10003750
sub edi, ecx
mov dword [ebp - 0x2c94], edi
lea eax, [edi + 1]
push eax
call fcn.100177d8
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x2c8c], ecx
test edi, edi
je 0x1000383c
cmp edi, 0x40
jb 0x10003809
lea eax, [ebx - 1]
add eax, edi
cmp ecx, eax
ja 0x10003798
lea eax, [ecx - 1]
add eax, edi
cmp eax, ebx
jae 0x10003809
movaps xmm1, xmmword [0x10061b50]
mov eax, edi
and eax, 0xffffffc0
mov edi, ebx
sub edi, ecx
mov dword [ebp - 0x2c90], eax
mov dword [ebp - 0x2c9c], edi
mov eax, ecx
mov edi, dword [ebp - 0x2c94]
mov ecx, dword [ebp - 0x2c9c]
movups xmm0, xmmword [ecx + eax]
lea eax, [eax + 0x40]
pxor xmm0, xmm1
movups xmmword [eax - 0x40], xmm0
movups xmm0, xmmword [ebx + edx + 0x10]
pxor xmm0, xmm1
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [ebx + edx + 0x20]
pxor xmm0, xmm1
movups xmmword [eax - 0x20], xmm0
movups xmm0, xmmword [ebx + edx + 0x30]
add edx, 0x40
pxor xmm0, xmm1
movups xmmword [eax - 0x10], xmm0
cmp edx, dword [ebp - 0x2c90]
jb 0x100037c2
mov ecx, dword [ebp - 0x2c8c]
cmp edx, edi
jae 0x1000383c
sub ebx, dword [ebp - 0x2c8c]
add ecx, edx
mov dword [ebp - 0x2c90], edi
sub edi, edx
nop dword [eax]
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
xor al, 0xa1
mov byte [ecx - 1], al
sub edi, 1
jne 0x10003820
mov edi, dword [ebp - 0x2c94]
mov ecx, dword [ebp - 0x2c8c]
mov byte [ecx + edi], 0
movzx eax, byte [esi + 0x199]
push eax
movzx eax, byte [esi + 0x198]
push eax
movzx eax, byte [esi + 0x197]
push eax
movzx eax, byte [esi + 0x196]
push eax
movzx eax, byte [esi + 0x195]
push eax
movzx eax, byte [esi + 0x194]
push eax
push ecx
lea eax, [ebp - 0x408]
push 0x3e8
push eax
call fcn.10001ac0
add esp, 0x24
lea eax, [ebp - 0x408]
push 0x3e8
push eax
push 0x3e8
push dword [ebp - 0x2ca0]
push 0
call fcn.100345fb
mov ecx, dword [ebp - 4]
add esp, 0x14
xor ecx, ebp
mov al, 1
pop edi
pop esi
pop ebx
call fcn.10017199
mov esp, ebp
pop ebp
ret