Function at 0x403d82
Capabilities:
Encode data using xor

Disassembly:
push 0x80
mov eax, 0x420da7
call fcn.00420a4f
mov eax, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x84], eax
xor ebx, ebx
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], ebx
mov dword [ebp - 4], 1
mov ecx, ebx
movaps xmm0, xmmword [0x4028d0]
movups xmmword [ebp - 0x6c], xmm0
mov word [ebp - 0x2c], 0xc
movaps xmm0, xmmword [0x402500]
movups xmmword [ebp - 0x5c], xmm0
movaps xmm0, xmmword [0x4026c0]
movups xmmword [ebp - 0x4c], xmm0
movaps xmm0, xmmword [0x4020e0]
movups xmmword [ebp - 0x3c], xmm0
mov al, byte [ebp - 0x6c]
xor byte [ebp + ecx - 0x6b], al
inc ecx
cmp ecx, 0x40
jb 0x403de5
lea eax, [ebp - 0x6b]
mov byte [ebp - 0x2b], bl
push eax
lea ecx, [ebp - 0x28]
call fcn.0040406a
mov byte [ebp - 4], 2
mov esi, ebx
mov ecx, dword [ebp - 0x80]
mov edi, ecx
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x84], eax
xor eax, eax
mov dword [ebp - 0x7c], ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], 0xf
mov byte [ecx], bl
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], 1
test eax, eax
je 0x403fba
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x7c]
dec eax
mov dword [ebp - 0x84], eax
cmp ecx, 0xf
lea eax, [ebp + 8]
cmova eax, edx
cmp byte [eax + edi], 0x3d
je 0x403f32
cmp ecx, 0xf
lea eax, [ebp + 8]
mov ecx, edi
cmova eax, edx
mov al, byte [eax + ecx]
mov byte [ebp - 0x75], al
movzx eax, al
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalnum]
pop ecx
test eax, eax
jne 0x403e94
mov al, byte [ebp - 0x75]
cmp al, 0x2b
je 0x403e94
cmp al, 0x2f
jne 0x403f32
mov ecx, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov edi, dword [ebp - 0x7c]
cmp ecx, 0xf
mov edx, dword [ebp + 8]
cmova eax, edx
mov al, byte [eax + edi]
mov edi, dword [ebp - 0x80]
mov byte [ebp + esi - 0x70], al
inc esi
inc dword [ebp - 0x7c]
cmp esi, 4
jne 0x403f24
mov esi, ebx
movzx eax, byte [ebp + esi - 0x70]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00403fd9
mov byte [ebp + esi - 0x70], al
inc esi
cmp esi, 4
jl 0x403ebb
mov cl, byte [ebp - 0x6f]
mov esi, ebx
mov al, byte [ebp - 0x70]
mov dl, byte [ebp - 0x6e]
shr cl, 4
and cl, 3
shl al, 2
add cl, al
mov al, byte [ebp - 0x6f]
mov byte [ebp - 0x74], cl
mov cl, dl
shr cl, 2
and cl, 0xf
shl al, 4
add cl, al
shl dl, 6
add dl, byte [ebp - 0x6d]
mov byte [ebp - 0x73], cl
mov byte [ebp - 0x72], dl
movzx eax, byte [ebp + esi - 0x74]
mov ecx, edi
push eax
call fcn.004040a3
inc esi
cmp esi, 3
jl 0x403f09
mov ecx, dword [ebp + 0x1c]
mov esi, ebx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x84]
test eax, eax
jne 0x403e48
test esi, esi
je 0x403fba
mov eax, esi
cmp esi, 4
jge 0x403f54
cmp eax, 4
jae 0x403fd3
mov byte [ebp + eax - 0x70], bl
inc eax
cmp eax, 4
jl 0x403f44
mov edi, ebx
movzx eax, byte [ebp + edi - 0x70]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00403fd9
mov byte [ebp + edi - 0x70], al
inc edi
cmp edi, 4
jl 0x403f56
mov cl, byte [ebp - 0x6f]
mov al, byte [ebp - 0x70]
mov dl, byte [ebp - 0x6e]
shr cl, 4
and cl, 3
shl al, 2
add cl, al
mov al, byte [ebp - 0x6f]
mov byte [ebp - 0x74], cl
mov cl, dl
shr cl, 2
and cl, 0xf
shl al, 4
shl dl, 6
add cl, al
add dl, byte [ebp - 0x6d]
dec esi
mov byte [ebp - 0x73], cl
mov byte [ebp - 0x72], dl
test esi, esi
jle 0x403fba
movzx eax, byte [ebp + ebx - 0x74]
mov ecx, dword [ebp - 0x80]
push eax
call fcn.004040a3
inc ebx
cmp ebx, esi
jl 0x403fa7
lea ecx, [ebp - 0x28]
call fcn.0040400e
lea ecx, [ebp + 8]
call fcn.0040400e
mov eax, dword [ebp - 0x80]
call fcn.00420a0d
ret
call fcn.0041fb95
int3