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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov dword [esp + 4], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x10], 0x5383a51
mov dword [esp + 0x14], 0x760a3533
mov dword [esp + 0x18], 0x3a320428
mov dword [esp + 0x1c], 0x11217f46
mov dword [esp + 0x20], 0x21272410
mov dword [esp + 0x24], 0x19242c2b
mov dword [esp + 0x28], 0x20611b65
mov dword [esp + 0x2c], 0xd0d5d92e
mov dword [esp + 0x30], 0x7a7c78e0
mov word [esp + 0x34], 0x677e
mov dword [esp + 0x36], 0
mov word [esp + 0x3a], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, esi
and edi, 0x21
mov ebx, esi
and ebx, 2
mov ebp, ebx
xor ebp, 2
imul ebp, edi
or edi, 2
imul edi, ebx
mov ebx, esi
xor ebx, 0x63
add ebx, ebp
add ebx, edi
xor bl, byte [esp + esi + 0x10]
add bl, 0x11
mov byte [esp + esi + 0x10], bl
inc esi
cmp esi, 0x2c
jne 0x40dc70
mov dword [esp], 0x3f30345e
xor ebx, ebx
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0xa
xor al, byte [esp + ebx]
add al, 0xce
mov byte [esp + ebx], al
mov eax, ebx
xor eax, 0xfffffffe
mov esi, ebx
or esi, 1
and esi, eax
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
xor eax, 2
mov edi, ebx
and edi, 1
neg edi
and edi, eax
add esi, edi
mov eax, esi
and eax, ebx
xor esi, ebx
xor esi, 1
lea ebx, [esi + eax*2]
cmp ebx, 4
jb 0x40dcb0
mov dword [esp + 0x40], 0xe04b0503
mov dword [esp + 0x44], 0xdbd5e7de
mov dword [esp + 0x48], 0xd23218e0
mov dword [esp + 0x4c], 0xe8ebebed
mov dword [esp + 0x50], 0xf0d5ebd7
mov dword [esp + 0x54], 0xc30239ce
mov dword [esp + 0x58], 0x6c9f5f5
mov dword [esp + 0x5c], 0xcefec8cc
mov dword [esp + 0x60], 0xf2c00f31
mov dword [esp + 0x64], 0x370df4ff
mov dword [esp + 0x68], 0xfefafcf2
mov dword [esp + 0x6c], 0xfb3a063a
mov dword [esp + 0x70], 0xeff9f3f7
mov dword [esp + 0x74], 0x1ae5ece3
mov dword [esp + 0x78], 0x4726
xor ebx, ebx
mov ecx, dword [esp + 0x90]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0xbd
xor al, byte [esp + ebx + 0x40]
add al, 0x4f
mov byte [esp + ebx + 0x40], al
inc ebx
cmp ebx, 0x3c
jne 0x40dd80
add ecx, edx
mov word [esp + 8], 0xb0b3
mov byte [esp + 0xa], 0x66
mov word [esp + 0xb], 0
xor edx, edx
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 8]
lea esi, [edx + 0x19]
mov ebx, esi
or ebx, eax
and esi, eax
sub ebx, esi
add bl, 0x83
mov byte [esp + edx + 8], bl
mov eax, edx
and eax, 1
xor edx, 1
lea edx, [edx + eax*2]
cmp edx, 5
jb 0x40ddb0
movzx ebx, byte [esp + 8]
mov edx, ecx
test bl, bl
je 0x40ddfb
lea esi, [esp + 9]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40ddf0
mov byte [edx], 0
mov eax, dword [esp + 4]
movzx ebx, byte [eax + 0x60]
test bl, bl
je 0x40de2d
lea esi, [eax + 0x61]
mov eax, dword [esp + 0x94]
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 0x40de20
jmp 0x40de34
mov eax, dword [esp + 0x94]
mov byte [edx], 0
movzx ebx, byte [esp + 0x40]
test bl, bl
je 0x40de5b
lea esi, [esp + 0x41]
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 0x40de50
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
mov dword [esp + 0x3c], ecx
je 0x40de7b
inc eax
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x40de70
mov byte [edx], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40de9b
lea esi, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40de90
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40debb
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 0x40deb0
mov byte [edx], 0
mov esi, dword [esp + 0x9c]
mov ecx, esi
shr ecx, 2
mov ebp, dword [esp + 0x98]
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
xor eax, 3
mov ebx, esi
or ebx, 0xfffffffc
and ebx, eax
lea esi, [edx + ebx]
add ebx, ebp
mov eax, ecx
and eax, 3
mov ecx, eax
shr ecx, 1
mov ebp, ebx
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov ecx, dword [esp + 0x9c]
xor ecx, 2
and ecx, eax
je 0x40df3b
mov edi, dword [esp + 0x9c]
and edi, 2
movzx eax, byte [ebx + edi]
mov byte [esi + edi], al
cmp ecx, 1
je 0x40df3b
movzx eax, byte [ebx + edi + 1]
mov byte [esi + edi + 1], al
cmp ecx, 2
je 0x40df3b
movzx eax, byte [ebx + edi + 2]
mov byte [esi + edi + 2], al
mov dword [esp + 0x40], 0x91939795
mov byte [esp + 0x44], 0x8c
mov dword [esp + 0x45], 0
mov dword [esp + 0x48], 0
mov ecx, 0xf5d1fc62
mov esi, 0x9d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0xa2e03de]
mov edi, esi
xor edi, ecx
and edi, eax
xor edi, ecx
mov eax, edi
and eax, 0x15
xor edi, 0x15
lea eax, [edi + eax*2]
inc al
mov byte [esp + ecx + 0xa2e03de], al
inc ecx
dec esi
cmp ecx, 0xf5d1fc6e
jne 0x40df70
mov dword [esp + 0x10], 0xd2d3f7f5
mov byte [esp + 0x14], 0xfc
mov dword [esp + 0x15], 0
mov ecx, 0x117b632a
mov esi, 0x6849cd5
nop
nop
nop
movzx eax, byte [esp + ecx - 0x117b631a]
mov ebx, esi
and ebx, 0x4041ccf
mov edi, ecx
and edi, 0x102b0110
or edi, ebx
xor edi, 0xfaab8110
or edi, eax
lea ebp, [esi - 0x6849c00]
and ebp, eax
lea ebx, [edi + edi]
not ebx
add ebx, edi
or ebx, ebp
add bl, 0x2e
mov byte [esp + ecx - 0x117b631a], bl
inc ecx
dec esi
cmp ecx, 0x117b6333
jne 0x40dfc0
add edx, dword [esp + 0x9c]
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40e02d
lea esi, [esp + 0x11]
mov eax, dword [esp + 4]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40e020
jmp 0x40e031
mov eax, dword [esp + 4]
mov byte [edx], 0
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40e04b
lea esi, [eax + 0x61]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40e040
mov byte [edx], 0
movzx ecx, byte [esp + 0x40]
test cl, cl
je 0x40e06b
lea esi, [esp + 0x41]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40e060
mov byte [edx], 0
sub edx, dword [esp + 0x3c]
add dword [eax + 0x80], edx
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10