Function at 0x6389f0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
test ecx, ecx
je 0x638a3a
test edx, edx
je 0x638a8a
test eax, eax
je 0x638aba
movzx eax, byte [0xb27145]
cmp al, 0x54
je 0x638a34
mov cl, 0x61
nop word cs:[eax + eax]
nop
mov al, 0xbb
lock cmpxchg byte [0xb27145], cl
je 0x638b9a
cmp al, 0x54
jne 0x638a20
mov eax, 0xb27130
ret
mov ecx, dword [esp + 8]
test edx, edx
je 0x638aea
test eax, eax
je 0x638b29
test ecx, ecx
je 0x638bc1
movzx eax, byte [0xb271e8]
cmp al, 0x85
je 0x638a84
mov cl, 0x24
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0xda
lock cmpxchg byte [0xb271e8], cl
je 0x638cf9
cmp al, 0x85
jne 0x638a70
mov eax, 0xb271d0
ret
test eax, eax
je 0x638b69
movzx eax, byte [0xb27233]
cmp al, 9
je 0x638ab4
mov cl, 0x8c
nop
mov al, 0xf3
lock cmpxchg byte [0xb27233], cl
je 0x638c39
cmp al, 9
jne 0x638aa0
mov eax, 0xb27230
ret
movzx eax, byte [0xb271f9]
cmp al, 0x5f
je 0x638ae4
mov cl, 0x60
nop word [eax + eax]
mov al, 0xb3
lock cmpxchg byte [0xb271f9], cl
je 0x638c61
cmp al, 0x5f
jne 0x638ad0
mov eax, 0xb271f0
ret
test eax, eax
je 0x638bf9
test ecx, ecx
je 0x638c91
movzx eax, byte [0xb272eb]
cmp al, 0x7d
je 0x638d9b
mov cl, 0x57
nop dword [eax + eax]
mov al, 0x58
lock cmpxchg byte [0xb272eb], cl
je 0x638d7b
cmp al, 0x7d
jne 0x638b10
jmp 0x638d9b
test ecx, ecx
je 0x638cc9
movzx eax, byte [0xb2727b]
cmp al, 0xc6
je 0x638dcb
mov cl, 0xea
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0xa2
lock cmpxchg byte [0xb2727b], cl
je 0x638da1
cmp al, 0xc6
jne 0x638b50
jmp 0x638dcb
movzx eax, byte [0xb271c2]
cmp al, 0x53
je 0x638b94
mov cl, 0xbb
nop word cs:[eax + eax]
mov al, 0xe9
lock cmpxchg byte [0xb271c2], cl
je 0x638d21
cmp al, 0x53
jne 0x638b80
mov eax, 0xb271c0
ret
xor eax, eax
nop dword [eax]
movzx ecx, byte [eax + 0xaaeab0]
xor byte [eax + 0xb27130], cl
inc eax
cmp eax, 0x15
jl 0x638ba0
mov al, 0x54
xchg byte [0xb27145], al
mov eax, 0xb27130
ret
movzx eax, byte [0xb27192]
cmp al, 0xeb
je 0x638dfb
mov cl, 0x1a
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0xd5
lock cmpxchg byte [0xb27192], cl
je 0x638dd1
cmp al, 0xeb
jne 0x638be0
jmp 0x638dfb
test ecx, ecx
je 0x638d51
movzx eax, byte [0xb272d2]
cmp al, 0xdb
je 0x638e2b
mov cl, 0x11
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0xa3
lock cmpxchg byte [0xb272d2], cl
je 0x638e01
cmp al, 0xdb
jne 0x638c20
jmp 0x638e2b
xor eax, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 0xaaeb90]
add byte [eax + 0xb27230], cl
inc eax
cmp eax, 3
jl 0x638c40
mov al, 9
xchg byte [0xb27233], al
mov eax, 0xb27230
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaeb50]
add byte [eax + 0xb271f0], cl
inc eax
cmp eax, 9
jl 0x638c70
mov al, 0x5f
xchg byte [0xb271f9], al
mov eax, 0xb271f0
ret
movzx eax, byte [0xb27225]
cmp al, 0x68
je 0x638e5b
mov cl, 0x2a
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0x6d
lock cmpxchg byte [0xb27225], cl
je 0x638e31
cmp al, 0x68
jne 0x638cb0
jmp 0x638e5b
movzx eax, byte [0xb27162]
cmp al, 0x20
je 0x638e8b
mov cl, 0xfb
nop word [eax + eax]
mov al, 0x18
lock cmpxchg byte [0xb27162], cl
je 0x638e61
cmp al, 0x20
jne 0x638ce0
jmp 0x638e8b
xor eax, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 0xaaeb30]
xor byte [eax + 0xb271d0], cl
inc eax
cmp eax, 0x18
jl 0x638d00
mov al, 0x85
xchg byte [0xb271e8], al
mov eax, 0xb271d0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaeb20]
add byte [eax + 0xb271c0], cl
inc eax
cmp eax, 2
jl 0x638d30
mov al, 0x53
xchg byte [0xb271c2], al
mov eax, 0xb271c0
ret
movzx eax, byte [0xb2728f]
cmp al, 0x55
je 0x638eae
mov cl, 0x58
mov al, 0x47
lock cmpxchg byte [0xb2728f], cl
je 0x638e91
cmp al, 0x55
jne 0x638d62
jmp 0x638eae
xor eax, eax
nop dword [eax]
movzx ecx, byte [eax + 0xaaec40]
xor byte [eax + 0xb272e0], cl
inc eax
cmp eax, 0xb
jl 0x638d80
mov al, 0x7d
xchg byte [0xb272eb], al
mov eax, 0xb272e0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaebd0]
add byte [eax + 0xb27270], cl
inc eax
cmp eax, 0xb
jl 0x638db0
mov al, 0xc6
xchg byte [0xb2727b], al
mov eax, 0xb27270
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaeb00]
xor byte [eax + 0xb27190], cl
inc eax
cmp eax, 2
jl 0x638de0
mov al, 0xeb
xchg byte [0xb27192], al
mov eax, 0xb27190
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaec30]
add byte [eax + 0xb272d0], cl
inc eax
cmp eax, 2
jl 0x638e10
mov al, 0xdb
xchg byte [0xb272d2], al
mov eax, 0xb272d0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaeb80]
add byte [eax + 0xb27220], cl
inc eax
cmp eax, 5
jl 0x638e40
mov al, 0x68
xchg byte [0xb27225], al
mov eax, 0xb27220
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaead0]
add byte [eax + 0xb27150], cl
inc eax
cmp eax, 0x12
jl 0x638e70
mov al, 0x20
xchg byte [0xb27162], al
mov eax, 0xb27150
ret
xor eax, eax
movzx ecx, byte [eax + 0xaaebe0]
xor byte [eax + 0xb27280], cl
inc eax
cmp eax, 0xf
jl 0x638e93
mov al, 0x55
xchg byte [0xb2728f], al
mov eax, 0xb27280
ret