Function at 0x409730
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov dword [esp + 0x34], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x30], eax
mov word [esp + 0x10], 0x6379
mov byte [esp + 0x12], pe_nt_image_headers32
mov dword [esp + 0x13], 0
mov dword [esp + 0x17], 0
mov dword [esp + 0x1b], 0
mov byte [esp + 0x1f], 0
mov eax, 0x5cac4a6f
mov ecx, 0xa353b590
mov edi, 0x46a76b90
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x5cac4a5f]
mov dword [esp + 4], edx
mov ebx, ecx
and ebx, edx
mov esi, eax
xor esi, edx
sub esi, ebx
mov ebx, 0xc8c8fe5f
sub ebx, esi
mov edx, esi
and edx, 0xfffffffd
and ebx, 2
imul ebx, edx
mov edx, esi
and edx, 2
sub ebx, esi
or esi, 2
imul esi, edx
lea edx, [ecx + 0x5cac4b00]
or edx, ecx
and edx, edi
and edx, dword [esp + 4]
add esi, ebx
or esi, edx
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0x40]
add dl, 0xf7
mov byte [esp + eax - 0x5cac4a5f], dl
inc eax
dec ecx
dec edi
cmp eax, 0x5cac4a7f
jne 0x409790
mov dword [esp + 0x20], 0x1e1c1802
mov word [esp + 0x24], 0x291e
mov dword [esp + 0x26], 0
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov dword [esp + 4], 0x44a5e90a
mov dword [esp + 8], 0xa252f485
lea eax, [esp + 0x20]
nop
nop
nop
mov dword [esp + 0xc], eax
movzx edx, byte [eax]
mov ecx, edx
not ecx
mov eax, ecx
and eax, 2
mov esi, edx
and esi, 0xfffffffd
imul esi, eax
mov edi, edx
and edi, 2
mov eax, edx
or eax, 2
imul eax, edi
add eax, esi
mov esi, eax
sub esi, edx
or esi, edx
mov ebx, eax
not ebx
add ebx, esi
sub eax, esi
and eax, 0x991ba857
and ebx, 0x66e457a8
or ebx, eax
xor ebx, 0x66e457a8
or ebx, dword [esp + 8]
mov eax, ebx
not eax
mov dword [esp + 0x38], eax
mov esi, eax
and esi, 0x7ffffffd
and ebx, 2
imul ebx, esi
mov edi, eax
and edi, 2
mov esi, eax
or esi, 2
imul esi, edi
add esi, ebx
mov ebx, dword [esp + 4]
lea edi, [ebx + 1]
mov dword [esp + 4], ebx
mov eax, dword [esp + 8]
xor edi, eax
xor ebx, 0x7ffffffe
and ebx, eax
add ebx, ebx
sub ebx, edi
mov eax, ecx
lea ecx, [edx + ecx*2]
mov edi, 0xfffffffe
sub edi, ecx
and edi, 0x83d2dd05
lea edx, [edx + eax*2]
inc edx
and eax, 0x7c2d22fa
or eax, edi
lea edi, [ebx + ebx]
not edi
add edi, ebx
and edi, 0x83d2dd05
and edx, ebx
and ebx, 0x7c2d22fa
or ebx, edi
xor ebx, eax
or edx, ebx
mov ecx, esi
not ecx
mov eax, dword [esp + 0x38]
add ecx, eax
sub esi, eax
and esi, 0xe67d403c
and ecx, 0x1982bfc3
or ecx, esi
xor ecx, 0xe67d403c
lea eax, [ecx + ecx]
not eax
add eax, ecx
not edx
mov ecx, eax
and ecx, edx
add edx, eax
sub edx, ecx
sub edx, ecx
or edx, ecx
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x40]
lea eax, [ecx + 0xab503]
mov edx, 0x7c
sub edx, ecx
mov ecx, eax
not ecx
or edx, ecx
and edx, 0x56
and eax, 0xa9
sub eax, edx
add al, 0xfd
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 4]
add edx, 0xfffffffe
dec dword [esp + 8]
inc eax
mov dword [esp + 4], edx
cmp edx, 0x44a5e8ea
jne 0x409830
mov dword [esp + 0x40], 0xc6c4f8f9
mov dword [esp + 0x44], 0xbabaf4f0
mov dword [esp + 0x48], 0xbf42bc89
mov dword [esp + 0x4c], 0xb2b7be43
mov dword [esp + 0x50], 0x8ab74342
mov dword [esp + 0x54], 0x5489efed
mov dword [esp + 0x58], 0x51af5956
mov dword [esp + 0x5c], 0xa682945c
mov dword [esp + 0x60], 0x54595d53
mov dword [esp + 0x64], 0x649f55a1
mov dword [esp + 0x68], 0x99d2b366
mov dword [esp + 0x6c], 0xaa6b6f63
mov dword [esp + 0x70], 0x9a669c90
mov dword [esp + 0x74], 0x8674d9bf
mov dword [esp + 0x78], 0xcda78871
mov byte [esp + 0x7c], 0xe0
mov dword [esp + 0x7d], 0
mov edx, 0xe3d88c5
mov ecx, 0xf1c2773a
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0xe3d8906]
mov dword [esp + 4], eax
mov esi, edx
and esi, 0x437bd12c
mov edi, ecx
and edi, 0xbc842ed3
or edi, esi
mov esi, edi
xor esi, 0xa513713e
and edi, 0x19975fed
xor edi, 0xfeecaed3
and edi, esi
mov esi, ecx
and esi, 0x19975fed
or esi, edi
xor esi, eax
mov ebx, esi
and ebx, 0x277f3789
mov eax, esi
xor eax, 0xc117979b
mov edi, ebx
xor edi, 0xfee8e876
and edi, eax
xor edi, ebx
xor edi, 0x1171789
add esi, esi
and esi, 0xb10190ec
xor esi, 0x7ffeffdb
add esi, edi
add esi, 0xd880c877
and esi, ecx
mov eax, esi
and eax, 0xfffffffd
mov edi, esi
and edi, 2
or esi, 2
imul esi, edi
mov ebx, edi
xor ebx, 2
imul ebx, eax
mov eax, edx
and eax, 0x50809a1d
mov edi, ecx
and edi, 0xaf7f65e2
or edi, eax
xor edi, 0xaf7f65e2
add edi, esi
add edi, ebx
not edi
add edi, dword [esp + 4]
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x3c]
add al, 0x6a
mov byte [esp + ecx + 0xe3d8906], al
dec edx
inc ecx
cmp edx, 0xe3d8884
jne 0x409a10
mov esi, dword [ebp + 8]
add esi, dword [esp + 0x30]
movzx ecx, byte [esp + 0x40]
mov eax, esi
test cl, cl
je 0x409b0b
lea edx, [esp + 0x41]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409b00
mov byte [eax], 0
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx]
test cl, cl
je 0x409b2b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409b20
mov byte [eax], 0
movzx ecx, byte [esp + 0x20]
test cl, cl
je 0x409b4b
lea edx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409b40
mov byte [eax], 0
mov edx, dword [ebp + 0x10]
movzx ecx, byte [edx]
test cl, cl
je 0x409b6b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409b60
mov byte [eax], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x409b8b
lea edx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409b80
mov byte [eax], 0
sub eax, esi
mov ecx, dword [esp + 0x34]
add dword [ecx + 0x60], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc