Function at 0x41408a
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x24]
lea esi, [eax + 0xc3]
lea ecx, [edx + 0x33b]
xor edi, 0x76b
lea ebx, [esi - 0x50a]
xor edx, 0xe43
lea ebp, [eax - 0x3f73]
cmp edi, ebx
je 0x414326
mov ecx, dword [esp + 0x2c]
lea eax, [edx + 0x578]
xor ecx, 0x6f9
cmp ecx, eax
jle 0x4142ce
mov esi, dword [esp + 0x18]
lea eax, [ebp + 0x39a7]
cmp edi, eax
je 0x414126
cmp dword [esi + 0x98], 0x1083c
jb 0x414104
xor dword [esi + 0x80], 0x83951
jmp 0x414113
mov eax, dword [esi + 0x78]
xor eax, dword [0x529110]
xor dword [esi + 0xc4], eax
mov eax, dword [0x4ae154]
mov eax, dword [eax + 0x48]
sub eax, 0x40ad61b4
xor dword [0x529170], eax
mov eax, dword [esp + 0x1c]
push ebx
add eax, 0xfffffd8d
push eax
lea eax, [edx + 0x51d]
xor edx, 0x7513
push eax
push edx
push esi
call fcn.00413d19
add esp, 0x14
xor edi, edi
mov edx, dword [0x4ae154]
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 0xdc]
xor eax, 0xfb6cf
sub dword [0x5291fc], eax
mov eax, dword [esi + 0xb4]
mov ecx, dword [edi + eax]
add edi, 4
mov eax, dword [esi + 0x7c]
xor eax, dword [esi + 0xe8]
sub eax, 0x13e42d
add dword [edx + 0x120], eax
mov eax, dword [0x4ae154]
mov ebx, dword [eax + 0x80]
mov eax, dword [0x529200]
dec eax
imul ebx, ecx
add eax, dword [esi + 0x90]
mov dword [0x529200], eax
mov ecx, dword [esi + 0xb8]
mov eax, dword [0x529174]
mov edx, ebx
shr edx, 0x10
mov byte [eax + ecx], dl
mov ecx, ebx
mov edx, dword [0x529174]
inc edx
shr ecx, 8
mov dword [0x529174], edx
mov eax, dword [esi + 0xb8]
mov byte [edx + eax], cl
mov edx, 0xb2d12
inc dword [0x529174]
mov ecx, dword [0x4ae154]
mov eax, dword [esi + 0xc4]
add dword [0x5291d8], eax
mov eax, dword [ecx + 0x108]
add eax, dword [0x529110]
xor eax, 0x8e8bf
or dword [ecx + 0x1c], eax
mov eax, dword [esi + 0xe8]
sub eax, edx
or dword [0x529158], eax
mov eax, dword [esi + 0x20]
add eax, dword [0x5291fc]
sub dword [esi + 0xac], eax
mov eax, dword [0x529174]
mov ecx, dword [esi + 0xb8]
mov byte [eax + ecx], bl
inc dword [0x529174]
mov eax, dword [0x4ae154]
mov eax, dword [eax + 0x44]
sub eax, 0x13ffca
xor dword [esi + 0x110], eax
mov eax, dword [0x4ae154]
mov ecx, dword [eax + 0x68]
mov eax, 0xffe85340
xor ecx, dword [esi + 0x7c]
sub eax, ecx
add dword [esi + 0xe8], eax
mov ecx, dword [0x4ae154]
mov eax, dword [esi + 0x90]
sub eax, dword [ecx + 0xe8]
add eax, edx
imul eax, dword [ecx + 0x7c]
mov dword [ecx + 0x7c], eax
cmp edi, 0xef80
jl 0x41414a
mov edx, dword [0x4ae154]
mov eax, dword [edx + 0x1c]
cmp eax, dword [esi + 0x10c]
ja 0x4142b6
mov eax, dword [edx + 0x114]
sub eax, dword [esi + 0x5c]
add eax, 0x1bf2a
imul eax, dword [esi + 0x108]
mov dword [esi + 0x108], eax
jmp 0x41434d
mov eax, dword [0x52910c]
add eax, 0x5f02a38e
add eax, dword [edx + 0x90]
mov dword [edx + 0x80], eax
jmp 0x41434d
mov eax, dword [0x5291d0]
mov edx, dword [esp + 0x18]
add eax, 0xffffc213
mov ecx, dword [0x4ae154]
push eax
lea eax, [edi + 0x3a42]
push eax
mov eax, dword [ecx + 0x10]
xor eax, dword [edx + 0x118]
xor eax, esi
push edx
push eax
mov eax, dword [edx + 8]
sub eax, 0x3ded
or eax, 0x4036
push eax
mov eax, dword [ecx + 0x48]
or eax, dword [edx + 0x48]
or eax, 0x3ea1
push eax
imul eax, dword [edx + 0xe0], 0x35f3
push eax
call fcn.00404976
add esp, 0x1c
jmp 0x41434d
mov edx, 0x3ea1
xor esi, edx
cmp ecx, esi
jge 0x41434d
lea eax, [ecx - 0x35b7]
mov ecx, dword [0x529114]
push eax
xor ecx, edx
push ecx
call dword [sym.imp.KERNEL32.dll_ActivateActCtx]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
pop edi
xor ebp, 0x3ded
pop esi
mov eax, ebp
pop ebp
pop ebx
ret