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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x64], 0x45404eb9
mov dword [esp + 0x68], 0x8a464d57
mov dword [esp + 0x6c], 0x6e467ca0
mov dword [esp + 0x70], 0x7969ab82
mov dword [esp + 0x74], 0x796b6c78
mov dword [esp + 0x78], 0x717c647f
mov dword [esp + 0x7c], 0x68b94fb5
mov dword [esp + 0x80], 0x787d617a
mov dword [esp + 0x84], 0xcec4c068
mov word [esp + 0x88], 0xd3ca
mov dword [esp + 0x8a], 0
mov byte [esp + 0x8e], 0
xor esi, esi
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp + 0x64]
mov eax, esi
and eax, 0x2a
mov edi, ebp
xor edi, 0x947ca1d5
add edi, eax
mov eax, edi
and eax, edx
add eax, eax
add edi, edx
mov edx, edi
not edx
and edx, eax
not eax
and eax, edi
sub eax, edx
and edi, 1
or eax, 1
add eax, edi
add al, 0xd6
mov byte [esp + ebp + 0x64], al
inc ebp
add esi, 2
cmp ebp, 0x2b
jne 0x40d9e0
mov dword [esp + 4], 0xfff0f4de
mov word [esp + 8], 0
mov esi, 0xaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi - 0xa6]
mov edx, esi
and edx, edi
mov ebx, edx
and ebx, 2
mov ebp, edx
or ebp, 0xfffffffd
inc ebp
mov eax, edx
and eax, 0xffffffbd
imul eax, ebp
or edx, 2
imul edx, ebx
lea ebx, [esi + edi]
add ebx, 0x9dcda300
add eax, edi
sub eax, edx
add eax, esi
add eax, 0x88c970ad
mov edx, eax
and edx, 1
and ebx, 1
and eax, 0xfe
or eax, ebx
lea eax, [eax + edx*2]
mov byte [esp + esi - 0xa6], al
inc esi
cmp esi, 0xb0
jne 0x40da40
mov dword [esp + 0x10], 0xa2bc6877
mov dword [esp + 0x14], 0xa6ba9490
mov dword [esp + 0x18], 0xb5a2ac97
mov dword [esp + 0x1c], 0xaea9b2a1
mov dword [esp + 0x20], 0x5e919da2
mov dword [esp + 0x24], 0x9cab717b
mov dword [esp + 0x28], 0x9399979e
mov dword [esp + 0x2c], 0x9aa25494
mov dword [esp + 0x30], 0x8c8b8b91
mov dword [esp + 0x34], 0x8c818b87
mov dword [esp + 0x38], 0x8b52bd8e
mov dword [esp + 0x3c], 0x46858181
mov dword [esp + 0x40], 0xeefeec90
mov dword [esp + 0x44], 0xeafc2fc5
mov dword [esp + 0x48], 0x27c1f8ff
mov dword [esp + 0x4c], 0xfefaf8fa
mov dword [esp + 0x50], 0xe33ad622
mov dword [esp + 0x54], 0xefe5e3e7
mov dword [esp + 0x58], 0xd2e9e0fb
mov word [esp + 0x5c], 0x1736
mov dword [esp + 0x5e], 0
mov esi, 0xf
mov edi, 0xc01286f0
mov ecx, dword [esp + 0xa4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi + 1]
mov eax, esi
xor eax, edi
and eax, edx
xor eax, edi
mov edx, eax
not edx
and edx, 0x34
xor eax, 0x3fa35d4b
lea edx, [eax + edx*2]
and eax, 1
or edx, 1
add edx, eax
mov byte [esp + esi + 1], dl
inc esi
dec edi
cmp esi, 0x61
jne 0x40db60
add ecx, dword [esp]
movzx eax, byte [esp + 0x10]
mov edx, ecx
test al, al
je 0x40dbbb
lea esi, [esp + 0x11]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40dbb0
mov byte [edx], 0
mov esi, dword [esp + 0xa8]
movzx eax, byte [esi]
test al, al
je 0x40dbdb
inc esi
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40dbd0
mov dword [esp], ecx
mov byte [edx], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40dbfb
lea ecx, [esp + 5]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dbf0
mov byte [edx], 0
movzx eax, byte [esp + 0x64]
test al, al
je 0x40dc1b
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 0x40dc10
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 ecx, esi
xor ecx, 3
mov eax, esi
or eax, 0xfffffffc
and eax, ecx
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 0x40dc7a
mov ecx, dword [esp + 0xb0]
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x9a997d7f
mov dword [esp + 0x14], 0x8e8edcd6
mov dword [esp + 0x18], 0xd689d8d8
mov dword [esp + 0x1c], 0xe0efe3d0
mov dword [esp + 0x20], 0xf7f4e0eb
mov dword [esp + 0x24], 0x4345b8e3
mov dword [esp + 0x28], 0x724547
mov ecx, 0x13
mov esi, 0x3d6a97ec
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 3]
mov edi, ecx
and edi, eax
mov ebx, edi
and ebx, 0x3d
mov ebp, edi
and ebp, 2
or edi, 2
imul edi, ebp
xor ebp, 2
imul ebp, ebx
add edi, ebp
lea ebx, [ecx + eax]
add ebx, 0xc2956800
mov ebp, esi
sub ebp, eax
and ebp, edi
not edi
and edi, ebx
sub edi, ebp
mov eax, edi
not eax
or eax, 0x3314f7a0
add eax, edi
inc eax
mov ebx, eax
and ebx, 0xfd
mov ebp, eax
and ebp, 2
or eax, 2
imul eax, ebp
xor ebp, 2
imul ebp, ebx
mov ebx, edi
xor ebx, 0xa0
add ebx, eax
add ebx, ebp
and edi, 1
and ebx, 0xfe
or ebx, edi
xor ebx, 1
lea eax, [ebx + edi*2]
mov byte [esp + ecx - 3], al
inc ecx
dec esi
cmp ecx, 0x2f
jne 0x40dcc0
add edx, dword [esp + 0xb0]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40dd6b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dd60
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