Function at 0x409cb0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x18], 0x85f8fad1
mov dword [esp + 0x1c], 0x368af5f3
mov dword [esp + 0x20], 0xfaf284e8
mov dword [esp + 0x24], 0x91e13fc6
mov dword [esp + 0x28], 0xe1e7e490
mov dword [esp + 0x2c], 0x99e4eceb
mov dword [esp + 0x30], 0xe0219b25
mov dword [esp + 0x34], 0xd0d5d9ee
mov dword [esp + 0x38], 0x3a3c38a0
mov word [esp + 0x3c], 0x273e
mov dword [esp + 0x3e], 0
mov eax, 0x1a5b2c3
mov ebp, 0xe5a4d3c
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x1a5b2ab]
mov edi, ebp
and edi, 0xe580cda
mov esi, eax
and esi, 0x1203125
or esi, edi
xor esi, ebx
xor esi, 0x2edd8eda
add esi, 0x57c38230
mov edi, esi
and edi, 0x76
xor esi, 0xf6
lea ebx, [esi + edi*2]
add bl, 0xb
mov byte [esp + eax - 0x1a5b2ab], bl
inc eax
dec ebp
cmp eax, 0x1a5b2ed
jne 0x409d30
mov dword [esp + 0x10], 0x97e0ecc6
mov word [esp + 0x14], 0
mov esi, 0x26
nop
nop
nop
movzx ebx, byte [esp + esi - 0x16]
mov eax, esi
and eax, ebx
mov edx, eax
and edx, 0x2d
mov ebp, eax
and ebp, 2
mov edi, eax
or edi, 0xfffffffd
inc edi
imul edi, edx
or eax, 2
imul eax, ebp
add edi, ebx
sub edi, eax
lea eax, [esi + edi]
add eax, 0xccef7341
mov edx, eax
and edx, 1
xor eax, 1
lea eax, [eax + edx*2]
mov byte [esp + esi - 0x16], al
inc esi
cmp esi, 0x2c
jne 0x409d90
mov dword [esp + 0x44], 0x5b6563
mov dword [esp + 0x48], 0xb35070e
mov dword [esp + 0x4c], 0x12524800
mov dword [esp + 0x50], 0x181b1b1d
mov dword [esp + 0x54], 0x10151b17
mov dword [esp + 0x58], 0x2362491e
mov dword [esp + 0x5c], 0xa6191515
mov dword [esp + 0x60], 0xdeeed8dc
mov dword [esp + 0x64], 0xd2e09fb1
mov dword [esp + 0x68], 0x97bdd4ef
mov dword [esp + 0x6c], 0xceeaecd2
mov dword [esp + 0x70], 0xcb8aa68a
mov dword [esp + 0x74], 0xffc9f3f7
mov dword [esp + 0x78], 0xaac5fcc3
mov dword [esp + 0x7c], 0x6786
mov byte [esp + 0x80], 0
mov esi, 0x6433fbe5
mov edi, 0x1a
mov ecx, dword [esp + 0x98]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi - 0x6433fba1]
mov eax, ebx
not eax
or eax, edi
or ebx, esi
and ebx, eax
mov eax, 1
sub eax, ebx
not eax
or eax, ebx
and eax, 1
lea edx, [ebx + ebx]
and edx, 2
sub ebx, edx
lea eax, [ebx + eax*2]
add al, 0x87
mov byte [esp + esi - 0x6433fba1], al
inc esi
dec edi
cmp esi, 0x6433fc22
jne 0x409e70
add ecx, dword [esp]
mov word [esp + 4], 0x3c3d
mov byte [esp + 6], 0x56
mov word [esp + 7], 0
xor esi, esi
mov edx, 0xffffffff
mov ebp, dword [esp + 0xc]
nop
movzx eax, byte [esp + esi + 4]
mov edi, edx
or edi, 0x4e8e8dee
mov ebx, esi
or ebx, 0x4e8e8dee
add ebx, edi
add ebx, esi
inc ebx
xor ebx, eax
add ebx, 0x77373a59
mov eax, ebx
xor eax, 0xd4
and ebx, 0x2b
add ebx, ebx
sub ebx, eax
add bl, 0xd5
mov byte [esp + esi + 4], bl
lea eax, [esi + 1]
dec edx
mov esi, eax
cmp eax, 5
jne 0x409ed0
movzx ebx, byte [esp + 4]
mov edx, ecx
test bl, bl
je 0x409f3b
lea esi, [esp + 5]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409f30
mov byte [edx], 0
movzx ebx, byte [ebp + 0x60]
test bl, bl
mov eax, dword [esp + 0x9c]
je 0x409f5b
lea esi, [ebp + 0x61]
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409f50
mov byte [edx], 0
movzx ebx, byte [esp + 0x44]
test bl, bl
je 0x409f7b
lea esi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409f70
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
mov dword [esp], ecx
je 0x409f9b
inc eax
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x409f90
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x409fbb
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409fb0
mov byte [edx], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x409fdb
lea esi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409fd0
mov byte [edx], 0
mov esi, dword [esp + 0xa4]
mov ecx, esi
shr ecx, 2
mov ebp, dword [esp + 0xa0]
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, esi
mov ebx, esi
and ebx, 0xfffffffc
lea esi, [edx + ebx]
add ebx, ebp
mov ecx, eax
mov ebp, eax
shr ecx, 1
and ecx, 1
mov eax, ebx
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, ebp
test al, 1
je 0x40a02e
mov eax, dword [esp + 0xa4]
and eax, 2
movzx ecx, byte [ebx + eax]
mov byte [esi + eax], cl
mov dword [esp + 0x44], 0x67796577
mov byte [esp + 0x48], 0x68
mov dword [esp + 0x49], 0
mov word [esp + 0x4d], 0
xor ecx, ecx
mov ebp, dword [esp + 0xc]
mov eax, ecx
xor eax, 0xad
lea esi, [ecx + ecx]
mov ebx, esi
and ebx, 4
sub ebx, eax
add bl, 0x94
xor bl, byte [esp + ecx + 0x44]
add bl, 0x7d
mov byte [esp + ecx + 0x44], bl
and esi, 2
xor ecx, 1
add ecx, esi
cmp ecx, 0xb
jb 0x40a050
mov dword [esp + 0x18], 0xdad9e5f7
mov byte [esp + 0x1c], 0xe8
mov dword [esp + 0x1d], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x18]
mov eax, ecx
not eax
or eax, 0x67cc2827
mov edi, ecx
and edi, 8
mov ebx, ecx
xor ebx, 0x67cc2827
add ebx, eax
sub ebx, edi
lea eax, [ebx + ecx*2]
lea edi, [ebx + ecx*2]
inc edi
and edi, esi
lea ebx, [esi + eax]
inc ebx
add edi, edi
sub ebx, edi
add ebx, 0xf903373c
mov eax, ebx
xor eax, 0x22
and ebx, 0x5d
add ebx, ebx
sub ebx, eax
add bl, 0x23
mov byte [esp + ecx + 0x18], bl
mov eax, ecx
and eax, 0xb
xor ecx, 0xa165ca8b
lea ecx, [ecx + eax*2]
add ecx, 0x5e9a3576
cmp ecx, 9
jb 0x40a0a0
add edx, dword [esp + 0xa4]
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x40a12b
lea esi, [esp + 0x19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a120
mov byte [edx], 0
movzx ecx, byte [ebp + 0x60]
test cl, cl
je 0x40a14b
lea esi, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a140
mov byte [edx], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x40a16b
lea esi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a160
mov byte [edx], 0
sub edx, dword [esp]
add dword [ebp + 0x80], edx
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10