Function at 0x41b390
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55fe30
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x8af4c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x7a34b3], 0
movq xmm0, qword [str.Ihq535753_a]
mov eax, dword [0x7a34b0]
movq qword [ebp - 0x48], xmm0
mov dword [ebp - 0x40], eax
je 0x41b3eb
xor eax, eax
nop dword [eax + eax]
xor byte [ebp + eax - 0x48], 7
inc eax
cmp eax, 0xc
jl 0x41b3e0
push 0x7a3248
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0
call fcn.00438450
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x60]
call fcn.00438450
mov byte [ebp - 4], 1
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x4c], 0xf
lea ecx, [ebp - 0x28]
push dword [ebp - 0x50]
cmova eax, dword [ebp - 0x60]
push eax
call fcn.00438580
cmp dword [ebp - 0x14], 0xf
lea ebx, [ebp - 0x28]
mov esi, dword [ebp - 0x18]
cmova ebx, dword [ebp - 0x28]
cmp byte [0x8b00f5], 0
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], ebx
jne 0x41b448
call fcn.00418e60
test ebx, ebx
je 0x41b6b7
test esi, esi
je 0x41b6b7
mov edx, esi
mov ecx, ebx
call fcn.00419560
mov ebx, eax
mov dword [ebp - 0x3c], ebx
mov cl, byte [ebx + 5]
mov byte [ebp - 0x38], cl
test cl, cl
jne 0x41b526
mov byte [ebp - 4], 2
cmp dword [0x8b0104], 0
je 0x41b518
mov edx, dword [0x8b014c]
test edx, edx
je 0x41b518
mov al, byte [0x8af528]
xor byte [ebx], al
mov al, byte [0x8af528]
xor byte [ebx + 1], al
mov al, byte [0x8af528]
xor byte [ebx + 2], al
mov al, byte [0x8af528]
xor byte [ebx + 3], al
mov eax, dword [edx]
movzx ecx, byte [ebx + 4]
mov dl, byte [0x8af528]
push dword [ebp - 0x38]
mov ecx, dword [eax + ecx*4]
mov al, dl
mov dword [ebp - 0x2c], ecx
xor al, cl
xor byte [ebp - 0x2b], dl
xor byte [ebp - 0x2a], dl
xor byte [ebp - 0x29], dl
mov edx, dword [ebx + 0xa]
mov ecx, dword [ebx]
mov byte [ebp - 0x2c], al
call dword [ebp - 0x2c]
cmp byte [ebx + 5], 0
mov dl, al
mov byte [0x8b00d8], dl
sete cl
mov byte [ebx + 5], cl
movzx ecx, byte [0x8af528]
xor byte [ebx], cl
movzx ecx, byte [0x8af528]
xor byte [ebx + 1], cl
movzx ecx, byte [0x8af528]
xor byte [ebx + 2], cl
mov al, byte [0x8af528]
xor byte [ebx + 3], al
jmp 0x41b51a
xor dl, dl
mov byte [ebp - 4], 1
test dl, dl
je 0x41b6b7
xor edi, edi
test esi, esi
je 0x41b619
mov ebx, dword [ebp - 0x30]
xor esi, esi
mov al, byte [ebx + edi]
nop dword [eax + eax]
movzx edx, byte [esi + 0x8b0148]
inc esi
mov cl, byte [edx*4 + 0x8b0150]
xor cl, al
mov byte [ebx + edi], cl
mov al, byte [edx*4 + 0x8b0151]
xor al, cl
mov byte [ebx + edi], al
mov cl, byte [edx*4 + 0x8b0152]
xor cl, al
mov byte [ebx + edi], cl
mov al, byte [edx*4 + 0x8b0153]
xor al, cl
mov byte [ebx + edi], al
cmp esi, 4
jb 0x41b540
xor esi, esi
nop
movzx edx, byte [esi + 0x8b01d0]
inc esi
mov cl, byte [edx*4 + 0x8b0190]
xor cl, al
mov eax, ebx
mov byte [eax + edi], cl
mov al, byte [edx*4 + 0x8b0191]
xor al, cl
mov ecx, ebx
mov byte [ecx + edi], al
mov cl, byte [edx*4 + 0x8b0192]
xor cl, al
mov eax, ebx
mov byte [eax + edi], cl
mov al, byte [edx*4 + 0x8b0193]
xor al, cl
mov ecx, ebx
mov byte [ecx + edi], al
cmp esi, 8
jb 0x41b580
xor esi, esi
nop word [eax + eax]
movzx edx, byte [esi + 0x8b00f8]
inc esi
shl edx, 2
mov cl, byte [edx + 0x8b0108]
xor cl, al
mov byte [ebx + edi], cl
mov al, byte [edx + 0x8b0109]
xor al, cl
mov byte [ebx + edi], al
mov cl, byte [edx + 0x8b010a]
xor cl, al
mov byte [ebx + edi], cl
mov al, byte [edx + 0x8b010b]
xor al, cl
mov byte [ebx + edi], al
cmp esi, 0xc
jb 0x41b5d0
inc edi
cmp edi, dword [ebp - 0x34]
jb 0x41b530
mov ebx, dword [ebp - 0x3c]
mov al, byte [ebx + 5]
mov dl, al
test al, al
je 0x41b6b7
mov byte [ebp - 4], 3
cmp dword [0x8b0104], 0
je 0x41b6b7
mov esi, dword [0x8b014c]
test esi, esi
je 0x41b6b7
mov al, byte [0x8af528]
xor byte [ebx], al
mov al, byte [0x8af528]
xor byte [ebx + 1], al
mov al, byte [0x8af528]
xor byte [ebx + 2], al
mov al, byte [0x8af528]
xor byte [ebx + 3], al
movzx ecx, byte [ebx + 4]
mov eax, dword [esi]
push edx
mov edx, dword [ebx + 0xa]
mov eax, dword [eax + ecx*4]
mov cl, byte [0x8af528]
mov dword [ebp - 0x2c], eax
xor al, cl
xor byte [ebp - 0x2b], cl
xor byte [ebp - 0x2a], cl
xor byte [ebp - 0x29], cl
mov ecx, dword [ebx]
mov byte [ebp - 0x2c], al
call dword [ebp - 0x2c]
cmp byte [ebx + 5], 0
mov byte [0x8b00d8], al
sete al
mov byte [ebx + 5], al
mov al, byte [0x8af528]
xor byte [ebx], al
mov al, byte [0x8af528]
xor byte [ebx + 1], al
mov al, byte [0x8af528]
xor byte [ebx + 2], al
mov al, byte [0x8af528]
xor byte [ebx + 3], al
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0xf
jbe 0x41b6e7
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41b6dd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41b736
push ecx
push edx
call fcn.0055eca8
add esp, 8
cmp dword [ebp - 0x14], 0xf
lea ecx, [ebp - 0x28]
cmova ecx, dword [ebp - 0x28]
call fcn.00419380
push dword [ebp - 0x18]
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
push 0
cmova eax, dword [ebp - 0x28]
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp - 0x14]
add esp, 0xc
cmp ecx, 0xf
jbe 0x41b746
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41b73c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41b73c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0055eca8
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055e764
mov esp, ebp
pop ebp
ret