Function at 0x401770
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [0x502e40]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [0x50418c]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
not ecx
and edx, 0x33090d30
mov eax, ecx
and ecx, 0xccf6f2cf
and eax, 0xfffffffe
or ecx, edx
xor ecx, 0xccf6f2ce
or ecx, eax
mov eax, ecx
andn edx, ecx, ecx
not ecx
and eax, 0xe3efd0f6
and ecx, 0x1c102f09
mov edi, edx
not edi
and edx, 0x847bff1a
or eax, ecx
mov ecx, eax
xor ecx, 0x806bd012
xor eax, 0x1c102f09
mov esi, eax
or eax, edi
and edi, 0x7b8400e5
and esi, 0x7b8400e5
and ecx, 0x847bff1a
or ecx, esi
or edx, edi
not eax
xor edx, ecx
or eax, edx
mov ecx, eax
not ecx
and eax, 0x447f79ce
and ecx, 0xbb808631
or eax, ecx
mov ecx, eax
xor ecx, 0x4422006
xor eax, 0xb3808420
and eax, 0xf3bddde8
and ecx, 0xc422217
or ecx, eax
mov eax, dword [0x504188]
cmp ecx, 0xc422217
mov ecx, 0x5dfbdc97
sete byte [ebp - 0x11]
cmp eax, 0xa
mov eax, 0x115501ef
setl byte [ebp - 0x12]
nop word cs:[eax + eax]
cmp eax, 0x5dfbdc96
jg 0x4018d0
cmp eax, 0xcf59dbf3
je 0x401b9a
cmp eax, 0xd52cc69e
je 0x401d64
cmp eax, 0x115501ef
jne 0x401850
mov dh, byte [ebp - 0x11]
movzx eax, byte [ebp - 0x12]
mov esi, 0x75933cf7
mov ebx, eax
mov ah, dh
xor al, dh
xor bl, 1
xor ah, 1
and al, dh
or ah, bl
or bl, dh
xor bl, 1
mov dl, ah
mov dh, ah
or al, bl
xor dl, 1
and dh, al
xor al, 1
and dl, al
or al, ah
or dl, dh
mov ebx, eax
xor bl, dl
test al, 1
mov eax, 0x75933cf7
cmovne eax, ecx
test dl, 1
cmove eax, ecx
test bl, 1
cmove eax, esi
jmp 0x401850
cmp eax, 0x5dfbdc97
je 0x401ba4
cmp eax, 0x69ae0131
je 0x401d4a
cmp eax, 0x75933cf7
jne 0x401850
push eax
mov eax, esp
mov dword [ebp - 0x18], eax
push eax
mov eax, esp
mov dword [ebp - 0x1c], eax
push eax
mov eax, esp
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov dword [eax], edx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov dword [eax], edx
bswap edx
rol edx, 0xf
or esi, 0xab
dec eax
inc edi
bswap edi
rcl esi, 0x47
or esi, 0xca
imul eax
ror edi, 3
or ebx, 0x1a
sub edx, 0xf0
not ebx
bswap edi
add edi, 0xf2
rol ebx, 0xeb
inc edi
sub eax, 0xe4
not eax
imul ebx
mov ebx, 3
add esi, 0xe2
sbb edi, 0x15
bswap edi
bswap edi
bswap esi
bswap edi
inc eax
and esi, 0xed
ror eax, 0x19
imul edi
rol edi, 0xf3
inc ebx
rol edx, 0x8b
neg esi
dec edi
neg ebx
imul eax
or ebx, 0x94
add ebx, 0xa6
mov ebx, 0xb
imul edx
mov esi, 0xe7
rcl eax, 1
or edx, 0x43
sub eax, 0x9f
neg edi
dec esi
sub esi, 0x7c
neg esi
rcl esi, 0x1d
ror edi, 0xd6
not eax
not esi
rcl esi, 0x1d
bswap edi
rcr edi, 0xd0
imul edx
and edi, 0x6c
not esi
bswap esi
not ebx
or edx, 0x72
sbb edx, 0x57
inc edx
or eax, 0xca
bswap ebx
dec esi
mov eax, 3
mov esi, 0x19
dec ebx
bswap esi
rcl edi, 0x2c
bswap ebx
neg edx
rcl edx, 0xb3
not edx
inc edi
bswap ebx
inc ebx
imul esi
bswap eax
bswap edi
imul edx
not edi
ror ebx, 0xeb
imul esi
inc eax
not edx
dec edi
mov ebx, 0xb6
mov ebx, 0xcf
imul ebx
add edi, 0x64
dec eax
ror ebx, 0x61
or eax, 0xa1
ror eax, 0xb0
not edx
bswap edi
rcl esi, 0x97
sbb edi, 0xc5
imul ebx
ror eax, 0xb9
neg esi
mov ebx, 0x61
bswap eax
imul esi
rcr esi, 0xa2
bswap edx
dec ebx
bswap edx
not eax
add edi, 0x3a
mov eax, 0x96
not eax
or eax, 0x68
ror esi, 0
sbb eax, 0x9c
mov eax, 0x32
inc eax
inc eax
imul eax
and eax, 0x7e
inc edi
inc eax
inc esi
or edx, 0xff
bswap edx
sbb eax, 0xfe
not edi
not ebx
rcr eax, 0xae
imul ebx
dec edi
or esi, 0xe
sub esi, 0x1c
sbb ebx, 0xfa
and esi, 0x46
sbb ebx, 0x5f
bswap edi
dec ebx
or edi, 0xe1
ror edi, 0x17
neg ebx
mov ebx, 0xd9
imul esi
dec esi
sbb ebx, 0x55
inc ebx
mov eax, dword [0x50418c]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
not eax
and edx, 0x3b0f1fcd
mov ebx, eax
or ebx, 0xf39bb8b6
mov edi, eax
and edi, 0xf39bb8b6
and eax, 0xc4f0e032
mov esi, ebx
not esi
and ebx, 0xc644748
or eax, edx
or esi, edi
and esi, 0xf39bb8b7
or esi, ebx
mov edi, esi
not edi
and esi, 0xc4f0e032
mov ebx, edi
and ebx, 0x3b0f1fcd
or esi, ebx
xor eax, esi
mov esi, 0xcf59dbf3
xor edi, eax
test edi, eax
mov edi, dword [ebp + 0x14]
sete bl
setne bh
cmp dword [0x504188], 0xa
mov dword [ebp - 0x24], edi
setge dl
setl dh
mov eax, edx
mov ah, dl
and dl, bl
xor al, bh
or ah, bh
and bh, dh
xor dh, bl
or dl, bh
and al, ah
xor ah, 1
or ah, dh
xor dl, 1
mov dh, dl
or dl, ah
xor dh, ah
xor dl, 1
or dl, dh
mov ah, dl
mov dh, dl
xor ah, 1
and ah, dl
xor ah, 1
xor dh, ah
or ah, dl
xor ah, 1
or ah, dh
mov dh, al
mov dl, ah
xor dh, 1
xor dl, 1
and ah, dh
or dh, dl
and dl, al
or dl, ah
mov bl, dh
mov eax, 0x5dfbdc97
xor bl, dl
test dl, dl
cmovne eax, esi
test dh, 1
cmovne eax, ecx
test bl, 1
cmove eax, esi
jmp 0x401850
mov eax, 0x69ae0131
jmp 0x401850
bswap edx
rol edx, 0xf
or esi, 0xab
dec eax
inc edi
bswap edi
rcl esi, 0x47
or esi, 0xca
imul eax
ror edi, 3
or ebx, 0x1a
sub edx, 0xf0
not ebx
bswap edi
add edi, 0xf2
rol ebx, 0xeb
inc edi
sub eax, 0xe4
not eax
imul ebx
mov ebx, 3
add esi, 0xe2
sbb edi, 0x15
bswap edi
bswap edi
bswap esi
bswap edi
inc eax
and esi, 0xed
ror eax, 0x19
imul edi
rol edi, 0xf3
inc ebx
rol edx, 0x8b
neg esi
dec edi
neg ebx
imul eax
or ebx, 0x94
add ebx, 0xa6
mov ebx, 0xb
imul edx
mov esi, 0xe7
rcl eax, 1
or edx, 0x43
sub eax, 0x9f
neg edi
dec esi
sub esi, 0x7c
neg esi
rcl esi, 0x1d
ror edi, 0xd6
not eax
not esi
rcl esi, 0x1d
bswap edi
rcr edi, 0xd0
imul edx
and edi, 0x6c
not esi
bswap esi
not ebx
or edx, 0x72
sbb edx, 0x57
inc edx
or eax, 0xca
bswap ebx
dec esi
mov eax, 3
mov esi, 0x19
dec ebx
bswap esi
rcl edi, 0x2c
bswap ebx
neg edx
rcl edx, 0xb3
not edx
inc edi
bswap ebx
inc ebx
imul esi
bswap eax
bswap edi
imul edx
not edi
ror ebx, 0xeb
imul esi
inc eax
not edx
dec edi
mov ebx, 0xb6
mov ebx, 0xcf
imul ebx
add edi, 0x64
dec eax
ror ebx, 0x61
or eax, 0xa1
ror eax, 0xb0
not edx
bswap edi
rcl esi, 0x97
sbb edi, 0xc5
imul ebx
ror eax, 0xb9
neg esi
mov ebx, 0x61
bswap eax
imul esi
rcr esi, 0xa2
bswap edx
dec ebx
bswap edx
not eax
add edi, 0x3a
mov eax, 0x96
not eax
or eax, 0x68
ror esi, 0
sbb eax, 0x9c
mov eax, 0x32
inc eax
inc eax
imul eax
and eax, 0x7e
inc edi
inc eax
inc esi
or edx, 0xff
bswap edx
sbb eax, 0xfe
not edi
not ebx
rcr eax, 0xae
imul ebx
dec edi
or esi, 0xe
sub esi, 0x1c
sbb ebx, 0xfa
and esi, 0x46
sbb ebx, 0x5f
bswap edi
dec ebx
or edi, 0xe1
ror edi, 0x17
neg ebx
mov ebx, 0xd9
imul esi
dec esi
sbb ebx, 0x55
inc ebx
mov eax, 0x75933cf7
jmp 0x401850
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, 0xd52cc69e
jmp 0x401850
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004413b0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret