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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x64], 0xb7bcbe63
mov dword [esp + 0x68], 0x7ab2bb41
mov dword [esp + 0x6c], 0x3ecad02c
mov dword [esp + 0x70], 0xcb3f7d16
mov dword [esp + 0x74], 0xcb3130c4
mov dword [esp + 0x78], 0xc3c830c9
mov dword [esp + 0x7c], 0xd417c117
mov dword [esp + 0x80], 0x2c2bd72e
mov dword [esp + 0x84], 0x7e787cd4
mov word [esp + 0x88], 0x457e
mov dword [esp + 0x8a], 0
mov byte [esp + 0x8e], 0
xor esi, esi
xor edi, edi
nop
nop
nop
nop
nop
nop
mov ebp, esi
and ebp, 0x70
mov eax, edi
xor eax, 0x38
add eax, ebp
xor al, byte [esp + edi + 0x64]
add al, 0xe8
mov byte [esp + edi + 0x64], al
inc edi
add esi, 2
cmp edi, 0x2b
jne 0x40db00
mov dword [esp + 4], 0x1f1014fe
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov esi, 0x7a
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi - 0x76]
mov eax, edx
and eax, esi
add al, al
sub dl, al
movzx eax, dl
add eax, esi
add al, 0x9e
mov byte [esp + esi - 0x76], al
inc esi
cmp esi, 0x81
jne 0x40db40
mov dword [esp + 0x10], 0x1214282f
mov dword [esp + 0x14], 0xe0a3c20
mov dword [esp + 0x18], 0xdf2f43f
mov dword [esp + 0x1c], 0x6f902f1
mov dword [esp + 0x20], 0x3601f5f2
mov dword [esp + 0x24], 0x4dba15b
mov dword [esp + 0x28], 0x3f90f06
mov dword [esp + 0x2c], 0xad2cc0c
mov dword [esp + 0x30], 0x40b0b01
mov dword [esp + 0x34], 0x14111b0f
mov dword [esp + 0x38], 0xeba2c516
mov dword [esp + 0x3c], 0xde1d1111
mov dword [esp + 0x40], 0xe616e4e0
mov dword [esp + 0x44], 0xda2497cd
mov dword [esp + 0x48], 0x9ff1d827
mov dword [esp + 0x4c], 0xd62a28da
mov dword [esp + 0x50], 0xd39afe92
mov dword [esp + 0x54], 0x37cd332f
mov dword [esp + 0x58], 0xe2c930cb
mov word [esp + 0x5c], 0xaf8e
mov dword [esp + 0x5e], 0
mov esi, 0x3b7204eb
mov edi, 0xc48dfb14
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + esi - 0x3b7204db]
mov eax, ebp
and eax, 0xffffffd2
xor eax, 0x442353d2
mov edx, ebp
xor edx, 0x442353d2
or ebp, 0x2d
and ebp, edx
or ebp, eax
mov eax, edi
and eax, 0xc40dbb54
mov edx, esi
and edx, 0x395200ab
or edx, eax
mov eax, edx
xor eax, 0x39d240ab
and edx, 0x3950002d
xor edx, 0x462357d6
add eax, edx
inc eax
mov edx, esi
and edx, 0x3b50042d
or edx, eax
xor edx, ebp
lea eax, [edx - 0x293a1898]
mov ebp, edx
and ebp, 1
mov ebx, eax
and ebx, 0xfe
xor eax, 1
add edx, ebp
add edx, 0xd6c5e768
add edx, eax
sub edx, ebx
mov byte [esp + esi - 0x3b7204db], dl
inc esi
dec edi
cmp esi, 0x3b72053d
jne 0x40dc20
add ecx, dword [esp]
movzx eax, byte [esp + 0x10]
mov edx, ecx
test al, al
je 0x40dccb
lea esi, [esp + 0x11]
mov edx, ecx
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40dcc0
mov byte [edx], 0
mov esi, dword [esp + 0xa8]
movzx eax, byte [esi]
test al, al
je 0x40dceb
inc esi
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40dce0
mov dword [esp], ecx
mov byte [edx], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40dd0b
lea ecx, [esp + 5]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dd00
mov byte [edx], 0
movzx eax, byte [esp + 0x64]
test al, al
je 0x40dd2b
lea ecx, [esp + 0x65]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dd20
mov byte [edx], 0
mov eax, dword [esp + 0xb0]
mov ecx, eax
mov esi, eax
shr ecx, 2
mov ebx, dword [esp + 0xac]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, esi
mov eax, esi
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebx
mov ecx, edi
mov ebp, edi
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, ebp
test cl, 1
je 0x40dd83
mov ecx, dword [esp + 0xb0]
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x6a694557
mov dword [esp + 0x14], 0x9696a4be
mov dword [esp + 0x18], 0xae99a8b8
mov dword [esp + 0x1c], 0xb0a7b3a0
mov dword [esp + 0x20], 0x9f9c90ab
mov dword [esp + 0x24], 0x737d5893
mov word [esp + 0x28], 0x7d7f
mov byte [esp + 0x2a], 0x62
mov word [esp + 0x2b], 0
mov edi, 0x3dfd610f
mov esi, 0xf0
movzx ebp, byte [esp + edi - 0x3dfd60ff]
mov ecx, esi
and ecx, 0xf9
mov eax, edi
and eax, 6
or eax, ecx
xor eax, 6
and eax, esi
not eax
and eax, ebp
mov ebx, esi
and ebx, ebp
mov ecx, edi
xor ecx, ebp
add ecx, ebp
not ecx
add ecx, ebx
or ecx, eax
not ecx
mov eax, ecx
and eax, 0xb4
or ecx, 0xb4
add ecx, eax
inc cl
mov byte [esp + edi - 0x3dfd60ff], cl
inc edi
dec esi
cmp edi, 0x3dfd612c
jne 0x40ddd0
add edx, dword [esp + 0xb0]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40de4b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40de40
mov byte [edx], 0
sub edx, dword [esp]
mov eax, dword [esp + 0xc]
add dword [eax + 0x60], edx
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret 0x10