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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov dword [esp + 0x68], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0xc], eax
mov dword [esp + 0x80], 0xefe6e0db
mov dword [esp + 0x84], 0x28e0ebfd
mov dword [esp + 0x88], 0xf4e8e2c2
mov dword [esp + 0x8c], 0xdbc70520
mov dword [esp + 0x90], 0xcbcdc2da
mov dword [esp + 0x94], 0xd3dac2d5
mov dword [esp + 0x98], 0xda1fd11f
mov dword [esp + 0x9c], 0xdadbdfc8
mov dword [esp + 0xa0], 0x243a26ca
mov word [esp + 0xa4], 0x3d38
mov dword [esp + 0xa6], 0
mov dword [esp + 0xaa], 0
mov byte [esp + 0xae], 0
mov eax, 0x2b93253
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x2b931d3]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0xbb
mov byte [esp + eax - 0x2b931d3], cl
cmp eax, 0x2b93281
je 0x40a396
movzx ecx, byte [esp + eax - 0x2b931d2]
lea edx, [eax + 1]
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0xbb
mov byte [esp + eax - 0x2b931d2], cl
add eax, 2
jmp 0x40a340
mov dword [esp + 0x70], 0x7b626604
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
mov ecx, 0xfb1ccecf
mov dword [esp], ecx
movzx eax, byte [esp + ecx + 0x4e331a1]
mov ecx, dword [esp]
and ecx, eax
add ecx, ecx
sub eax, ecx
add eax, dword [esp]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x10]
mov edi, esi
and edi, 0x22365856
mov edx, edi
not edx
mov eax, edx
and eax, 0xa3a7f3c1
mov ecx, esi
mov dword [esp + 8], esi
and ecx, 0x100816
or ecx, eax
xor ecx, 0xa3a7f3c3
or edx, 0xfffffffd
lea ebx, [edx + edi]
inc ebx
mov dword [esp + 4], ebx
not edx
or ecx, edx
mov eax, esi
and eax, 2
or eax, edx
imul eax, ecx
mov edx, esi
or edx, 0xfffffffd
mov ecx, edx
not ecx
mov esi, ebx
or esi, ecx
mov ebx, dword [esp + 4]
and ebx, ecx
imul ebx, esi
mov esi, dword [esp + 4]
and edx, esi
not esi
and esi, ecx
imul edx, esi
add edx, ebx
mov ebx, 0x7d
sub ebx, edx
sub ebx, eax
add eax, edx
add eax, 0x82
mov edx, dword [esp + 8]
not edx
or edx, 0x22365856
lea ecx, [edx + edx]
not ecx
add ecx, edx
xor edi, 0x22365856
or edi, ecx
mov ecx, dword [esp]
and eax, edi
not edi
and edi, ebx
sub eax, edi
add al, 0x7e
mov byte [esp + ecx + 0x4e331a1], al
inc ecx
cmp ecx, 0xfb1cced8
jne 0x40a3b0
mov dword [esp + 0x10], 0xdcda9699
mov dword [esp + 0x14], 0xd8d88a82
mov dword [esp + 0x18], 0xa7b0aa89
mov dword [esp + 0x1c], 0xa0afa0b3
mov dword [esp + 0x20], 0xf8afbbb4
mov dword [esp + 0x24], 0xbe89c7c5
mov dword [esp + 0x28], 0xbdb7a5a0
mov dword [esp + 0x2c], 0xbc90faa6
mov dword [esp + 0x30], 0xaea9a9a3
mov dword [esp + 0x34], 0xaeb7a9b1
mov dword [esp + 0x38], 0x85c0dbb0
mov dword [esp + 0x3c], 0xc88b9793
mov dword [esp + 0x40], 0x889c8a82
mov dword [esp + 0x44], 0x8c82cdd7
mov dword [esp + 0x48], 0xd1cf9681
mov dword [esp + 0x4c], 0x90989e94
mov dword [esp + 0x50], 0x9dd8c4d4
mov dword [esp + 0x54], 0x919b9191
mov dword [esp + 0x58], 0x3c676e9d
mov word [esp + 0x5c], 0x520
mov dword [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov eax, 0x3a4e1eb7
mov esi, 0xc5b1e148
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, dword [esp]
movzx eax, byte [esp + eax - 0x3a4e1ea7]
mov edx, eax
not edx
and eax, 0xfffffff2
mov ecx, eax
xor ecx, 0xf2
xor eax, 0x45cb30f2
or eax, ecx
mov ecx, esi
and ecx, 0x458130f2
mov edi, ecx
not edi
lea ebx, [ecx + edi*2]
not eax
or edx, 0xfffffff2
and edx, eax
mov eax, dword [esp]
and eax, 0x3a040f0d
lea ecx, [ecx + edi*2]
inc ecx
mov edi, eax
xor edi, 0x6a387840
mov esi, ebx
xor ebx, 0x40387041
and ebx, edi
xor esi, 0x85c381be
mov edi, eax
xor edi, 0x95c787bf
and edi, esi
or edi, ebx
mov esi, ecx
and esi, eax
xor eax, ecx
sub eax, ecx
not edx
add eax, esi
or eax, edi
mov ecx, edx
and ecx, eax
add eax, edx
add ecx, ecx
sub eax, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
mov esi, eax
xor esi, 0xfe
mov ecx, eax
and ecx, 2
mov edx, ecx
xor edx, 2
and eax, 0xfc
imul edx, eax
add edx, esi
mov esi, dword [esp + 4]
or eax, 2
imul eax, ecx
add eax, edx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx - 0x3a4e1ea7], al
mov eax, dword [esp]
inc eax
dec esi
cmp eax, 0x3a4e1f0d
jne 0x40a540
mov edx, dword [ebp + 8]
add edx, dword [esp + 0xc]
movzx eax, byte [esp + 0x10]
mov esi, edx
test al, al
je 0x40a63b
lea ecx, [esp + 0x11]
mov esi, edx
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a630
mov byte [esi], 0
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x40a65b
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a650
mov byte [esi], 0
movzx eax, byte [esp + 0x70]
test al, al
je 0x40a67b
lea ecx, [esp + 0x71]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a670
mov byte [esi], 0
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 8], edx
je 0x40a6ab
lea ecx, [esp + 0x81]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a6a0
mov byte [esi], 0
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
shr ecx, 2
mov edx, dword [ebp + 0x10]
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
not eax
or eax, 0xfffffffc
mov dword [esp + 0xc], esi
add eax, esi
lea esi, [ebx + eax]
inc esi
mov eax, ebx
and eax, 0xfffffffc
add eax, edx
and ebx, 3
mov ecx, ebx
shr ecx, 1
mov edx, eax
mov edi, esi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, dword [ebp + 0x14]
test cl, 1
je 0x40a6fe
and ecx, 2
movzx eax, byte [eax + ebx - 1]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x74771b11
mov dword [esp + 0x14], 0x5054a2a0
mov dword [esp + 0x18], 0xa057a6a2
mov dword [esp + 0x1c], 0xaaa5a9aa
mov dword [esp + 0x20], 0xa1a2aead
mov dword [esp + 0x24], 0x757b1ead
mov word [esp + 0x28], 0x7379
mov byte [esp + 0x2a], 0x68
mov dword [esp + 0x2b], 0
mov byte [esp + 0x2f], 0
mov ecx, 0x8003f3ab
xor edi, edi
mov esi, 0x7ffc0c54
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], esi
mov dword [esp], edi
lea eax, [ecx + 0x7ffc0c55]
mov edx, eax
xor edx, 0x7ffc0c54
or eax, 0xb
and eax, edx
mov ebx, dword [esp]
and ebx, 0x16
lea edx, [esi + ebx]
mov esi, edx
and esi, 0x29
mov edi, 0xfffffffe
sub edi, esi
shr edx, 1
and edx, 1
imul edx, edi
movzx edi, byte [esp + ecx + 0x7ffc0c65]
add eax, eax
lea eax, [eax + edx*2]
mov edx, ecx
sub edx, ebx
shr edx, 1
and edx, 1
imul edx, esi
add edx, edx
sub eax, edx
add eax, ecx
lea ebx, [edi + edi]
not ebx
add ebx, edi
mov esi, edi
not esi
and esi, ebx
and esi, eax
mov edx, esi
and edx, 2
mov edi, esi
or edi, 2
imul edi, edx
sub edi, esi
and esi, 0xfffffffd
xor edx, 2
imul edx, esi
or ebx, eax
add edi, edx
mov eax, edi
and eax, ebx
xor ebx, edi
not ebx
add ebx, edi
sub ebx, eax
mov dword [esp + 0x80], ebx
mov edi, dword [esp]
mov eax, dword [esp + 0x80]
mov edx, eax
not edx
mov esi, edx
and esi, 0x2d
lea esi, [eax + esi*2]
add esi, 0x53
or edx, 0xad
and edx, esi
mov esi, dword [esp + 4]
and eax, 0x52
sub eax, edx
mov byte [esp + ecx + 0x7ffc0c65], al
inc ecx
add edi, 2
dec esi
cmp ecx, 0x8003f3cb
jne 0x40a760
mov esi, dword [esp + 0xc]
add esi, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40a85d
lea ecx, [esp + 0x11]
mov edx, dword [esp + 8]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a850
jmp 0x40a861
mov edx, dword [esp + 8]
mov byte [esi], 0
sub esi, edx
mov eax, dword [esp + 0x68]
add dword [eax + 0x60], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10