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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x1c], 0x6d101639
mov dword [esp + 0x20], 0xca6e151f
mov dword [esp + 0x24], 0x60e7410
mov dword [esp + 0x28], 0x7919db32
mov dword [esp + 0x2c], 0x90b1478
mov dword [esp + 0x30], 0x1040c07
mov dword [esp + 0x34], 0x78b907bd
mov dword [esp + 0x38], 0x7875716a
mov dword [esp + 0x3c], 0x969c9008
mov dword [esp + 0x40], 0x839a
mov eax, 0x2a
mov edx, 0x2379bdd6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0xe]
mov esi, ecx
xor esi, edx
lea ebx, [edx - 0x2379bd80]
or ebx, esi
add bl, al
add bl, bl
sub cl, bl
movzx ecx, cl
add ecx, eax
add cl, 0x32
mov byte [esp + eax - 0xe], cl
inc eax
dec edx
cmp eax, 0x52
jne 0x40a9a0
mov dword [esp + 0x14], 0x493c3812
mov dword [esp + 0x18], 0
mov eax, 0xc57d08f3
nop
movzx ecx, byte [esp + eax + 0x3a82f721]
xor ecx, eax
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0x40
mov byte [esp + eax + 0x3a82f721], cl
inc eax
cmp eax, 0xc57d08fb
jne 0x40a9e0
mov dword [esp + 0x44], 0xecc10b0d
mov dword [esp + 0x48], 0xe9e3f1ea
mov dword [esp + 0x4c], 0xe2ce24fc
mov dword [esp + 0x50], 0xfce1fdff
mov dword [esp + 0x54], 0xfcfbe5f9
mov dword [esp + 0x58], 0xf1362ffa
mov dword [esp + 0x5c], 0x36f7ebf7
mov dword [esp + 0x60], 0xfeeafcf8
mov dword [esp + 0x64], 0xc2cc011b
mov dword [esp + 0x68], 0x51bc0c9
mov dword [esp + 0x6c], 0xcec6c0ce
mov dword [esp + 0x70], 0xc90e160e
mov dword [esp + 0x74], 0xddd7ddd9
mov dword [esp + 0x78], 0xad3d8d5
mov dword [esp + 0x7c], 0x391a
mov byte [esp + 0x80], 0
xor ebp, ebp
mov esi, 0xe26591bf
nop
nop
nop
movzx edx, byte [esp + ebp + 0x44]
lea ecx, [ebp + 0x1d9a6e40]
mov eax, esi
and eax, 0x1e
and ecx, 0x21
or ecx, eax
xor ecx, edx
xor ecx, 0x5e
or ecx, esi
mov eax, ecx
shr al, 1
and al, 1
mov ebx, ecx
not bl
mov ah, bl
and ah, 0x7d
mul ah
add al, al
sub dl, al
test cl, 2
sete al
or bl, 2
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, ebp
mov byte [esp + ebp + 0x44], al
inc ebp
dec esi
cmp ebp, 0x3d
jne 0x40aa90
mov eax, dword [esp]
add dword [esp + 4], eax
mov word [esp + 0xc], 0xf0f3
mov byte [esp + 0xe], 0x26
mov word [esp + 0xf], 0
mov eax, 0x5303e2f9
nop
movzx edx, byte [esp + eax - 0x5303e2ed]
lea esi, [eax - 0x5303e200]
mov ecx, eax
or ecx, edx
and esi, edx
sub ecx, esi
mov edx, ecx
and edx, 0x40008120
mov esi, ecx
and esi, 2
mov ebx, esi
xor ebx, 2
imul ebx, edx
or edx, 2
imul edx, esi
lea esi, [ecx + ecx]
mov ebp, esi
and ebp, 0x80010244
sub ecx, ebp
add ecx, ebx
add ecx, edx
add ecx, 0xffffff22
and esi, 2
xor ecx, 1
add ecx, esi
mov byte [esp + eax - 0x5303e2ed], cl
inc eax
cmp eax, 0x5303e2fe
jne 0x40ab00
movzx ecx, byte [esp + 0xc]
mov ebx, dword [esp + 4]
test cl, cl
je 0x40ab8b
lea edx, [esp + 0xd]
mov ebx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40ab80
mov byte [ebx], 0
mov eax, dword [esp + 8]
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40abab
lea edx, [eax + 0x61]
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40aba0
mov byte [ebx], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x40abcb
lea edx, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40abc0
mov byte [ebx], 0
movzx ecx, byte [edi]
test cl, cl
je 0x40abeb
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x40abe0
mov byte [ebx], 0
movzx ecx, byte [esp + 0x14]
test cl, cl
je 0x40ac0b
lea edx, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40ac00
mov byte [ebx], 0
movzx ecx, byte [esp + 0x1c]
test cl, cl
je 0x40ac2b
lea edx, [esp + 0x1d]
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40ac20
mov byte [ebx], 0
mov eax, dword [esp + 0xa4]
mov ecx, eax
shr ecx, 2
mov esi, dword [esp + 0xa0]
mov edx, esi
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, eax
and edx, 0xfffffffc
add ebx, edx
add edx, esi
mov ecx, eax
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, ebx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, eax
and ecx, 2
add ebx, ecx
test al, 1
je 0x40ac78
movzx ecx, byte [edx + ecx]
mov byte [ebx], cl
inc ebx
mov dword [esp], ebx
mov dword [esp + 0x44], 0x4f494d4f
mov byte [esp + 0x48], pe_nt_image_headers32
mov dword [esp + 0x49], 0
mov word [esp + 0x4d], 0
lea ecx, [esp + 0x44]
xor edx, edx
xor edi, edi
nop
movzx esi, byte [ecx]
mov ebx, edx
and ebx, 0x785bbf2a
mov ebp, edi
xor ebp, 0x43d2206a
sub ebp, ebx
lea eax, [ebp + 1]
and eax, esi
lea ebx, [esi + ebp]
inc ebx
add eax, eax
sub ebx, eax
add bl, 0xe9
mov byte [ecx], bl
inc ecx
dec edi
add edx, 0xfffffffe
cmp edi, 0xfffffff5
jne 0x40aca0
mov dword [esp + 0x1c], 0x3a391d1f
mov byte [esp + 0x20], 8
mov dword [esp + 0x21], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x1c]
mov edi, ecx
and edi, 6
mov esi, edx
xor esi, 0xf3150c43
add esi, edi
mov edi, esi
and edi, eax
add esi, eax
add edi, edi
sub esi, edi
mov eax, esi
and eax, 0x30
xor esi, 0xb0
lea eax, [esi + eax*2]
inc al
mov byte [esp + edx + 0x1c], al
inc edx
add ecx, 2
cmp edx, 9
jne 0x40acf0
movzx ecx, byte [esp + 0x1c]
test cl, cl
mov edi, dword [esp]
je 0x40ad4d
lea edx, [esp + 0x1d]
mov esi, dword [esp + 8]
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40ad40
jmp 0x40ad51
mov esi, dword [esp + 8]
mov byte [edi], 0
movzx ecx, byte [esi + 0x60]
test cl, cl
je 0x40ad6b
lea edx, [esi + 0x61]
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40ad60
mov byte [edi], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x40ad8b
lea edx, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40ad80
mov byte [edi], 0
mov eax, edi
mov ecx, dword [esp + 4]
xor eax, ecx
not ecx
and ecx, edi
add ecx, ecx
sub ecx, eax
add dword [esi + 0x80], ecx
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10