Function at 0x41d1c9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x308
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call fcn.0041fa06
xor esi, esi
inc esi
cmp byte [0x45e747], 0
jne 0x41d211
lea eax, [esp + 0x188]
push eax
push 0x101
call dword [0x462830]
movzx ecx, byte [0x45e747]
test eax, eax
cmove ecx, esi
mov byte [0x45e747], cl
mov ebx, dword [0x442080]
push 0
call ebx
mov dword [0x460968], eax
call fcn.0041e899
cmp dword [0x462900], 0
mov dword [0x460970], eax
mov dword [0x460974], edx
jne 0x41d28c
push 0
mov dword [0x462900], esi
call fcn.00425f46
mov dword [esp], pe_nt_image_headers32
push 0xff
push 0x4641f0
mov dword [0x4641e0], eax
call fcn.0042a890
add esp, 0xc
xor edx, edx
mov al, dl
imul dl
xor al, byte [edx + 0x45f7d8]
mov cl, dl
add al, 0x77
mov byte [edx + 0x45f7d8], al
and cl, 0x3f
movzx eax, al
inc edx
mov byte [eax + 0x4641f0], cl
cmp edx, 0x41
jb 0x41d266
xor ecx, ecx
push 0xf
pop eax
mov dword [esp + 0x48], ecx
mov byte [esp + 0x38], cl
mov dword [esp + 0x60], ecx
mov byte [esp + 0x50], cl
lea edx, [esp + 0x50]
lea ecx, [esp + 0x38]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x64], eax
call fcn.00420e13
mov esi, dword [0x442224]
mov edi, dword [0x44221c]
mov dword [0x46094c], eax
mov eax, dword [0x460970]
cmp eax, dword [0x460968]
jne 0x41d2ec
push eax
call esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [0x460970]
call edi
push 2
push 0
call dword [0x44222c]
xor eax, eax
push eax
push eax
push eax
push 3
push 4
push eax
push eax
push 0xffffffffffffffff
push eax
call dword [0x442238]
push 0x4642f0
call dword [0x442058]
mov eax, dword [0x460968]
cmp dword [0x460970], eax
jne 0x41d33a
push eax
call esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [0x460970]
call edi
push 0x461658
push 0x461668
call ebx
push eax
call dword [0x442030]
mov edi, 0x11c
push edi
mov esi, eax
xor ebx, ebx
lea eax, [esp + 0x6c]
push ebx
push eax
call fcn.0042a890
add esp, 0xc
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x6c], edi
call dword [0x442070]
movzx eax, word [esp + 0x17c]
mov dword [0x460954], eax
call fcn.0041ff15
mov dword [0x460978], eax
test esi, esi
je 0x41d3ba
lea eax, [esp + 0x188]
push eax
call esi
mov eax, dword [esp + 0x18c]
mov dword [0x460960], eax
mov eax, dword [esp + 0x190]
mov dword [0x46096c], eax
mov eax, dword [esp + 0x194]
jmp 0x41d3d0
mov eax, dword [esp + 0x6c]
mov dword [0x460960], eax
mov eax, dword [esp + 0x70]
mov dword [0x46096c], eax
mov eax, dword [esp + 0x74]
mov dword [0x460964], eax
call dword [0x442220]
lea ecx, [esp + 0x28]
push ecx
push eax
call dword [0x442218]
test eax, eax
je 0x41d405
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
mov dword [0x46095c], eax
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x2c]
mov dword [0x460958], eax
call dword [0x4420f8]
mov esi, eax
mov ecx, esi
imul ecx, esi
push ecx
call fcn.004255e6
pop ecx
call fcn.004255c3
imul eax, esi
push eax
call fcn.004255e6
mov dword [esp], 0x270
call fcn.0042503a
pop ecx
test eax, eax
je 0x41d441
mov ecx, eax
call fcn.00408cf2
jmp 0x41d443
mov eax, ebx
mov dword [0x460950], eax
mov eax, dword [eax + 0x1a0]
or eax, dword [0x46094c]
push ebx
push eax
push 0x461670
lea ecx, [esp + 0x1c]
call fcn.004023bd
mov ecx, eax
call fcn.004082e2
mov ecx, dword [0x460950]
push eax
call fcn.00409672
lea ecx, [esp + 0x10]
call fcn.00402440
cmp dword [esp + 0x60], ebx
jne 0x41d48c
cmp dword [esp + 0x48], ebx
je 0x41d4ea
lea eax, [esp + 0x50]
push eax
push 0x461680
lea ecx, [esp + 0x18]
call fcn.004023bd
mov ecx, eax
call fcn.004082e2
mov ecx, dword [0x460950]
push eax
call fcn.004096bf
lea ecx, [esp + 0x10]
call fcn.00402440
lea eax, [esp + 0x38]
push eax
push 0x461690
lea ecx, [esp + 0x18]
call fcn.004023bd
mov ecx, eax
call fcn.004082e2
mov ecx, dword [0x460950]
push eax
call fcn.004096bf
lea ecx, [esp + 0x10]
call fcn.00402440
push ebx
mov edx, ebp
lea ecx, [esp + 0x14]
call fcn.0041e0ca
cmp dword [eax + 0x14], 0x10
pop ecx
jb 0x41d4ff
mov eax, dword [eax]
mov ecx, eax
call fcn.0041ccb4
lea ecx, [esp + 0x10]
mov esi, eax
call fcn.00402440
push esi
call dword [0x442064]
push eax
call dword [0x442074]
lea ecx, [esp + 0x50]
call fcn.00402440
lea ecx, [esp + 0x38]
call fcn.00402440
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret