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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x64], 0x1d181a21
mov dword [esp + 0x68], 0x5e1a1d03
mov dword [esp + 0x6c], 0x1a020c38
mov dword [esp + 0x70], 0x111574e
mov dword [esp + 0x74], 0x111f1c00
mov dword [esp + 0x78], 0x90c140b
mov dword [esp + 0x7c], 0xf0b1fb4d
mov dword [esp + 0x80], 0xe0ede9e6
mov dword [esp + 0x84], 0x9a8498f0
mov dword [esp + 0x88], 0x8f86
mov eax, 0x7b08b1e7
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7b08b183]
xor edx, eax
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0x7c
mov byte [esp + eax - 0x7b08b183], dl
inc eax
cmp eax, 0x7b08b20f
jne 0x40dc90
mov dword [esp + 4], 0x73484452
mov byte [esp + 8], 0
mov esi, 0xd2105793
mov edi, 0xdefa86c
nop
nop
nop
movzx eax, byte [esp + edi - 0xdefa868]
lea edx, [eax + eax]
not edx
add edx, eax
mov ebp, edx
xor ebp, 0x498bc385
or edx, 0xb6743c7a
and edx, ebp
and eax, 0xffffff85
or eax, edx
mov edx, esi
and edx, 0x9210147a
mov ebp, edi
and ebp, 0x98b8005
or ebp, edx
xor ebp, eax
mov eax, ebp
and eax, 0x63
xor ebp, 0xe3
lea eax, [eax*2]
add eax, ebp
inc al
mov byte [esp + edi - 0xdefa868], al
dec esi
inc edi
cmp edi, 0xdefa871
jne 0x40dcd0
mov dword [esp + 0x10], 0xfef0c4c5
mov dword [esp + 0x14], 0xf2f2c0c4
mov dword [esp + 0x18], 0xf78af0c5
mov dword [esp + 0x1c], 0xeaefe693
mov dword [esp + 0x20], 0xd2ef9392
mov dword [esp + 0x24], 0x98cd0739
mov dword [esp + 0x28], 0x9de7959e
mov dword [esp + 0x2c], 0xdefae0a8
mov dword [esp + 0x30], 0xa0a5a1a3
mov dword [esp + 0x34], 0xa8d7a1d5
mov dword [esp + 0x38], 0xd51ae3ae
mov dword [esp + 0x3c], 0xf2b3b7b3
mov dword [esp + 0x40], 0xc2bec0cc
mov dword [esp + 0x44], 0xceb80df7
mov dword [esp + 0x48], 0x9efc4bd
mov dword [esp + 0x4c], 0x3a423c3a
mov dword [esp + 0x50], 0x3df20af2
mov dword [esp + 0x54], 0x49334935
mov dword [esp + 0x58], 0x1e374c39
mov word [esp + 0x5c], 0xc5e6
mov byte [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov esi, 0x3a8da2c4
mov ecx, dword [esp + 0xa0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi - 0x3a8da2b4]
mov edx, eax
not edx
or edx, esi
add dl, dl
add dl, al
neg dl
movzx eax, dl
add eax, esi
add al, 0x2a
mov byte [esp + esi - 0x3a8da2b4], al
inc esi
cmp esi, 0x3a8da317
jne 0x40ddf0
add ecx, dword [esp]
movzx eax, byte [esp + 0x10]
mov edx, ecx
test al, al
je 0x40de3b
lea esi, [esp + 0x11]
mov edx, ecx
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40de30
mov byte [edx], 0
movzx eax, byte [ebx]
test al, al
je 0x40de5b
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40de50
mov dword [esp], ecx
mov byte [edx], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40de7b
lea ecx, [esp + 5]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40de70
mov byte [edx], 0
movzx eax, byte [esp + 0x64]
test al, al
je 0x40de9b
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 0x40de90
mov byte [edx], 0
mov ebx, dword [esp + 0xac]
mov ecx, ebx
shr ecx, 2
mov ebp, dword [esp + 0xa8]
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebp, eax
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test bl, 1
je 0x40deeb
mov ecx, dword [esp + 0xac]
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x5e5f3b3d
mov dword [esp + 0x14], 0x526e8086
mov dword [esp + 0x18], 0x824f9c9c
mov dword [esp + 0x1c], 0x9c81998c
mov dword [esp + 0x20], 0x81809489
mov dword [esp + 0x24], 0x2d2b4491
mov word [esp + 0x28], 0x1315
mov byte [esp + 0x2a], 0xa
mov dword [esp + 0x2b], 0
mov byte [esp + 0x2f], 0
mov ecx, 0x88
mov esi, 0x77
nop
nop
movzx edi, byte [esp + ecx - 0x78]
mov ebp, ecx
and ebp, edi
lea eax, [edi + edi]
not eax
add eax, edi
and eax, esi
or eax, ebp
mov bl, 0x57
sub bl, al
mov byte [esp + ecx - 0x78], bl
inc ecx
dec esi
cmp ecx, 0xa8
jne 0x40df40
add edx, dword [esp + 0xac]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40df8b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40df80
mov byte [edx], 0
sub edx, dword [esp]
mov eax, dword [esp + 0xc]
add dword [eax + 0x60], edx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10