Function at 0x13f7f3f
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
bswap ecx
jmp 0x13f7f28
mov bh, byte [esp + 3]
jmp 0x13f7f08
mov ebx, dword [ebp]
neg cl
js 0x142f690
setnp ah
mov ah, byte [esp]
call fcn.0142f6e7
sub dl, byte [ebp - 0x75]
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov dword [ebp - 0x18], edx
jmp 0x13f7f56
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
movzx esi, byte [eax + 1]
movzx edi, byte [eax + 5]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 2]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 3]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 4]
shl esi, 8
xor esi, edi
movzx edi, byte [eax + 6]
shl esi, 8
xor esi, edi
movzx edi, byte [eax + 7]
shl esi, 8
xor esi, edi
xor esi, dword [ecx + 4]
movzx edi, byte [eax + 8]
movzx ebx, byte [eax + 0xd]
mov dword [ebp - 0x14], esi
movzx esi, byte [eax + 9]
shl edi, 8
xor edi, esi
movzx esi, byte [eax + 0xa]
shl edi, 8
xor edi, esi
movzx esi, byte [eax + 0xb]
shl edi, 8
xor edi, esi
movzx esi, byte [eax + 0xc]
xor edi, dword [ecx + 8]
xor edx, dword [ecx]
shl esi, 8
xor esi, ebx
movzx ebx, byte [eax + 0xe]
movzx eax, byte [eax + 0xf]
shl esi, 8
xor esi, ebx
shl esi, 8
xor esi, eax
xor esi, dword [ecx + 0xc]
mov dword [ebp - 0xc], edi
shr edi, 8
mov ebx, esi
shr ebx, 0x10
mov eax, 0xff
and edi, eax
and ebx, eax
mov ebx, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
xor ebx, dword [edi*4 + reloc.kernel32.dll_GetProcAddress]
mov edi, edx
shr edi, 0x18
xor ebx, dword [edi*4 + reloc.kernel32.dll_GetProcAddress]
mov edi, dword [ebp - 0x14]
and edi, eax
xor ebx, dword [edi*4 + reloc.kernel32.dll_GetProcAddress]
mov dword [ebp - 8], esi
xor ebx, dword [ecx + 0x10]
shr esi, 8
mov edi, edx
shr edi, 0x10
and edi, eax
and esi, eax
mov dword [ebp - 4], edi
mov edi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 4]
xor edi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 0x14]
mov dword [ebp + 8], edx
mov dword [ebp - 0x10], ebx
shr esi, 0x18
xor edi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 0xc]
and esi, eax
xor edi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 0x14]
shr esi, 0x10
shr edx, 8
and esi, eax
and edx, eax
mov dword [ebp - 4], edx
mov edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 4]
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 0xc]
shr esi, 0x18
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 8]
and esi, eax
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 0x14]
xor edx, dword [ecx + 0x18]
xor edi, dword [ecx + 0x14]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0xc]
shr edx, 0x10
shr esi, 8
and edx, eax
mov edx, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
and esi, eax
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 8]
shr esi, 0x18
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp + 8]
and esi, eax
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 0x18]
xor edx, dword [ecx + 0x1c]
sar esi, 1
add ecx, 0x20
dec esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], esi
je 0x13f82d0
mov esi, dword [ebp - 4]
shr esi, 8
and esi, eax
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, ebx
shr esi, 0x18
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, edi
and esi, eax
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, ebx
xor edx, dword [ecx]
shr esi, 0x10
mov dword [ebp + 8], edx
mov edx, dword [ebp - 8]
and esi, eax
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, edi
shr esi, 0x18
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, dword [ebp - 4]
shr ebx, 8
and ebx, eax
and esi, eax
xor edx, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, edi
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
xor esi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
xor esi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 8]
and ebx, eax
xor esi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 4]
shr edi, 8
shr ebx, 0x10
and edi, eax
xor esi, dword [ecx + 8]
and ebx, eax
mov dword [ebp - 0x18], edi
mov edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 0x18]
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 8]
shr ebx, 0x18
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 0x10]
xor edx, dword [ecx + 4]
and ebx, eax
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, esi
xor edi, dword [ecx + 0xc]
shr ebx, 8
mov dword [ebp - 8], edi
shr edi, 0x10
and edi, eax
mov edi, dword [edi*4 + reloc.kernel32.dll_GetProcAddress]
and ebx, eax
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp + 8]
shr ebx, 0x18
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, edx
and ebx, eax
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp + 8]
xor edi, dword [ecx + 0x10]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 8]
shr edi, 8
and edi, eax
mov edi, dword [edi*4 + reloc.kernel32.dll_GetProcAddress]
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
and esi, eax
mov ebx, edx
shr ebx, 0x18
xor edi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp + 8]
xor edi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
mov esi, edx
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
shr ebx, 8
and ebx, eax
xor esi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 0xc]
shr ebx, 0x18
xor esi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 8]
xor edi, dword [ecx + 0x14]
and ebx, eax
xor esi, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 0x10]
xor esi, dword [ecx + 0x18]
shr edx, 8
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0xc]
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + reloc.kernel32.dll_GetProcAddress]
and edx, eax
xor esi, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
mov edx, dword [ebp - 8]
shr edx, 0x18
xor esi, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
mov edx, dword [ebp + 8]
and edx, eax
xor esi, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
add ecx, 0x20
xor esi, dword [ecx - 4]
dec dword [ebp - 0x14]
mov dword [ebp - 8], esi
mov edx, esi
jne 0x13f80f3
shr edx, 0x10
and edx, eax
mov esi, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
and edx, 0xff00
and esi, 0xff0000
xor esi, edx
mov edx, ebx
shr edx, 0x18
mov edx, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
and edx, 0xff000000
xor esi, edx
shr ebx, 0x10
mov edx, edi
and edx, eax
movzx edx, byte [edx*4 + 0x14042c8]
xor esi, edx
xor esi, dword [ecx]
and ebx, eax
mov dword [ebp + 8], esi
mov edx, esi
mov esi, dword [ebp + 0xc]
shr edx, 0x18
mov byte [esi], dl
mov edx, dword [ebp + 8]
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, dword [ebp + 8]
shr edx, 8
mov byte [esi + 2], dl
mov dl, byte [ebp + 8]
mov byte [esi + 3], dl
mov edx, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov ebx, dword [ebp - 8]
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
and ebx, 0xff00
and edx, 0xff0000
xor edx, ebx
mov ebx, edi
shr ebx, 0x18
mov ebx, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
and ebx, 0xff000000
xor edx, ebx
mov ebx, dword [ebp - 4]
and ebx, eax
movzx ebx, byte [ebx*4 + 0x14042c8]
xor edx, ebx
xor edx, dword [ecx + 4]
mov ebx, edx
shr ebx, 0x18
mov byte [esi + 4], bl
mov ebx, edx
shr ebx, 0x10
mov byte [esi + 5], bl
mov ebx, edx
shr ebx, 8
mov byte [esi + 6], bl
mov ebx, dword [ebp - 0x10]
mov byte [esi + 7], dl
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
mov edx, edi
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
and ebx, 0xff00
and edx, 0xff0000
xor edx, ebx
mov ebx, dword [ebp - 4]
shr ebx, 0x18
mov ebx, dword [ebx*4 + reloc.kernel32.dll_GetProcAddress]
and ebx, 0xff000000
xor edx, ebx
mov ebx, dword [ebp - 8]
and ebx, eax
movzx ebx, byte [ebx*4 + 0x14042c8]
xor edx, ebx
xor edx, dword [ecx + 8]
shr edi, 8
mov ebx, edx
shr ebx, 0x18
mov byte [esi + 8], bl
mov ebx, edx
mov byte [esi + 0xb], dl
and edi, eax
shr ebx, 0x10
mov byte [esi + 9], bl
mov ebx, edx
mov edx, dword [ebp - 4]
shr edx, 0x10
and edx, eax
shr ebx, 8
mov byte [esi + 0xa], bl
mov edi, dword [edi*4 + reloc.kernel32.dll_GetProcAddress]
mov edx, dword [edx*4 + reloc.kernel32.dll_GetProcAddress]
and edi, 0xff00
and edx, 0xff0000
xor edx, edi
mov edi, dword [ebp - 8]
shr edi, 0x18
mov edi, dword [edi*4 + reloc.kernel32.dll_GetProcAddress]
and edi, 0xff000000
xor edx, edi
mov edi, dword [ebp - 0x10]
and edi, eax
movzx eax, byte [edi*4 + 0x14042c8]
xor edx, eax
xor edx, dword [ecx + 0xc]
mov eax, edx
shr eax, 0x18
mov byte [esi + 0xc], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 0xd], al
mov eax, edx
shr eax, 8
mov byte [esi + 0xe], al
mov byte [esi + 0xf], dl
jmp 0x13f848f
pop edi
pop esi
pop ebx
leave
ret 8
mov eax, edi
jmp 0x1406251
movzx ebx, byte [eax]
setnp cl
jmp 0x1406209
sub bl, dl
sub esp, 0x10
jmp 0x1406228
mov ax, bx
or ecx, 0x8a39553e
jns 0x14061c7
js 0x14061c7
bswap eax
mov al, bl
mov ch, 0x21
jmp 0x1406212
neg eax
mov cx, 0x3120
pushfd
jmp 0x14061dd
mov cx, ax
lea ecx, [ebp*4]
call fcn.0140622e
jl 0x1406212
jg 0x140623f
jmp 0xc1bce46b
jl 0x14061ea
bswap eax
jmp 0x14061ec
and eax, 0xc7342dbd
jae 0x140625b
mov ds, word [ebx + edi*2]
xchg esi, eax
push ebp
lahf
out 0x11, al
nop
adc ecx, dword [edx - 0xfb]
dec dword [edi]
xchg dword [ebx], edi
invalid
add eax, reloc.kernel32.dll_GetProcAddress
ja 0x1406197
dec dword [edi]
mov dh, 0x18
movzx ebx, byte [eax]
setnp cl
neg eax
mov cx, 0x3120
pushfd
jmp 0x14061dd
mov ah, byte [esp]
sub ch, bl
jmp 0x142f72b
setnp ah
jmp 0x142f67a
add ebp, 2
call fcn.0142f69c
mov al, byte [ebx]
cmc
ja 0x142f9ae
bsr ebx, ebp
mov bx, word [esp]
jmp 0x142f79b
je 0x142f76e
mov al, 0x34
mov bl, byte [esp]
jmp 0x1406190
mov al, 0x34
mov bl, byte [esp]
jmp 0x1406190
mov bx, word [esp]
jmp 0x142f939
mov bx, word [esp]
mov bx, word [esp]
mov ebx, ebp
mov word [ebx], ax
stc
jmp 0x142f758
bsr ebx, ebp
jmp 0x142f931