Function at 0x6359a0
Capabilities:
Encode data using xor

Disassembly:
push esi
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 8]
test ecx, ecx
je 0x6359f9
test edx, edx
je 0x635a49
test esi, esi
je 0x635a89
test eax, eax
je 0x635b09
movzx eax, byte [0xb2703c]
cmp al, 0x90
je 0x635cab
mov cl, 0x43
nop word cs:[eax + eax]
mov al, 0x5d
lock cmpxchg byte [0xb2703c], cl
je 0x635c89
cmp al, 0x90
jne 0x6359e0
jmp 0x635cab
test edx, edx
je 0x635ac9
test esi, esi
je 0x635b39
test eax, eax
je 0x635bb9
movzx eax, byte [0xb270e2]
cmp al, 0x9c
je 0x635d6b
mov cl, 0xc7
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0x62
lock cmpxchg byte [0xb270e2], cl
je 0x635d49
cmp al, 0x9c
jne 0x635a30
jmp 0x635d6b
test esi, esi
je 0x635b79
test eax, eax
je 0x635be9
movzx eax, byte [0xb2710b]
cmp al, 0xb5
je 0x635d9b
mov cl, 0x47
nop word [eax + eax]
mov al, 0xee
lock cmpxchg byte [0xb2710b], cl
je 0x635d72
cmp al, 0xb5
jne 0x635a70
jmp 0x635d9b
test eax, eax
je 0x635c19
movzx eax, byte [0xb270af]
cmp al, 0x74
je 0x635dcb
mov cl, 0x64
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0xa
lock cmpxchg byte [0xb270af], cl
je 0x635da2
cmp al, 0x74
jne 0x635ab0
jmp 0x635dcb
test esi, esi
je 0x635c49
test eax, eax
je 0x635cb2
movzx eax, byte [0xb26ee5]
cmp al, 0x82
je 0x635e4b
mov cl, 0xff
nop word [eax + eax]
mov al, 0xd
lock cmpxchg byte [0xb26ee5], cl
je 0x635e2c
cmp al, 0x82
jne 0x635af0
jmp 0x635e4b
movzx eax, byte [0xb26ec0]
cmp al, 0xe0
je 0x635dfb
mov cl, 0x45
nop word [eax + eax]
mov al, 0xe3
lock cmpxchg byte [0xb26ec0], cl
je 0x635dd2
cmp al, 0xe0
jne 0x635b20
jmp 0x635dfb
test eax, eax
je 0x635ce9
movzx eax, byte [0xb26fe2]
cmp al, 0x7a
je 0x635e7b
mov cl, 0x9c
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0x28
lock cmpxchg byte [0xb26fe2], cl
je 0x635e52
cmp al, 0x7a
jne 0x635b60
jmp 0x635e7b
test eax, eax
je 0x635d19
movzx eax, byte [0xb26f47]
cmp al, 0x41
je 0x635eab
mov cl, 0x1b
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0x95
lock cmpxchg byte [0xb26f47], cl
je 0x635e82
cmp al, 0x41
jne 0x635ba0
jmp 0x635eab
movzx eax, byte [0xb270f2]
cmp al, 0x9e
je 0x635edb
mov cl, 0xe7
nop word [eax + eax]
mov al, 0xea
lock cmpxchg byte [0xb270f2], cl
je 0x635eb2
cmp al, 0x9e
jne 0x635bd0
jmp 0x635edb
movzx eax, byte [0xb26f79]
cmp al, 0x2d
je 0x635f0b
mov cl, 0xbc
nop word [eax + eax]
mov al, 0xd0
lock cmpxchg byte [0xb26f79], cl
je 0x635ee2
cmp al, 0x2d
jne 0x635c00
jmp 0x635f0b
movzx eax, byte [0xb26f05]
cmp al, 0x6f
je 0x635f3b
mov cl, 0x69
nop word [eax + eax]
mov al, 0xe4
lock cmpxchg byte [0xb26f05], cl
je 0x635f12
cmp al, 0x6f
jne 0x635c30
jmp 0x635f3b
test eax, eax
je 0x635e02
movzx eax, byte [0xb26f12]
cmp al, 0x83
je 0x635f6b
mov cl, 0xda
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0x8e
lock cmpxchg byte [0xb26f12], cl
je 0x635f42
cmp al, 0x83
jne 0x635c70
jmp 0x635f6b
xor eax, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 0xaae910]
add byte [eax + 0xb27020], cl
inc eax
cmp eax, 0x1c
jl 0x635c90
mov al, 0x90
xchg byte [0xb2703c], al
mov eax, 0xb27020
pop esi
ret
movzx eax, byte [0xb26f5c]
cmp al, 0x15
je 0x635f9b
mov cl, 0xbb
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0xa7
lock cmpxchg byte [0xb26f5c], cl
je 0x635f72
cmp al, 0x15
jne 0x635cd0
jmp 0x635f9b
movzx eax, byte [0xb27045]
cmp al, 0x26
je 0x635fcb
mov cl, 0x1f
nop word [eax + eax]
mov al, 0x8f
lock cmpxchg byte [0xb27045], cl
je 0x635fa2
cmp al, 0x26
jne 0x635d00
jmp 0x635fcb
movzx eax, byte [0xb26e9b]
cmp al, 0x59
je 0x635ffb
mov cl, 0xd4
nop word [eax + eax]
mov al, 0xb5
lock cmpxchg byte [0xb26e9b], cl
je 0x635fd2
cmp al, 0x59
jne 0x635d30
jmp 0x635ffb
xor eax, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 0xaae9d0]
xor byte [eax + 0xb270e0], cl
inc eax
cmp eax, 2
jl 0x635d50
mov al, 0x9c
xchg byte [0xb270e2], al
mov eax, 0xb270e0
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae9f0]
add byte [eax + 0xb27100], cl
inc eax
cmp eax, 0xb
jl 0x635d80
mov al, 0xb5
xchg byte [0xb2710b], al
mov eax, 0xb27100
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae990]
xor byte [eax + 0xb270a0], cl
inc eax
cmp eax, 0xf
jl 0x635db0
mov al, 0x74
xchg byte [0xb270af], al
mov eax, 0xb270a0
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae7b0]
xor byte [eax + 0xb26eb0], cl
inc eax
cmp eax, 0x10
jl 0x635de0
mov al, 0xe0
xchg byte [0xb26ec0], al
mov eax, 0xb26eb0
pop esi
ret
movzx eax, byte [0xb26ef3]
cmp al, 0xf0
je 0x63601f
mov cl, 0x75
mov al, 0x74
lock cmpxchg byte [0xb26ef3], cl
je 0x636002
cmp al, 0xf0
jne 0x635e13
jmp 0x63601f
xor eax, eax
nop
movzx ecx, byte [eax + 0xaae7c0]
add byte [eax + 0xb26ed0], cl
inc eax
cmp eax, 0x15
jl 0x635e30
mov al, 0x82
xchg byte [0xb26ee5], al
mov eax, 0xb26ed0
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae8c0]
xor byte [eax + 0xb26fd0], cl
inc eax
cmp eax, 0x12
jl 0x635e60
mov al, 0x7a
xchg byte [0xb26fe2], al
mov eax, 0xb26fd0
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae830]
xor byte [eax + 0xb26f40], cl
inc eax
cmp eax, 7
jl 0x635e90
mov al, 0x41
xchg byte [0xb26f47], al
mov eax, 0xb26f40
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae9e0]
add byte [eax + 0xb270f0], cl
inc eax
cmp eax, 2
jl 0x635ec0
mov al, 0x9e
xchg byte [0xb270f2], al
mov eax, 0xb270f0
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae850]
add byte [eax + 0xb26f60], cl
inc eax
cmp eax, 0x19
jl 0x635ef0
mov al, 0x2d
xchg byte [0xb26f79], al
mov eax, 0xb26f60
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae7f0]
xor byte [eax + 0xb26f00], cl
inc eax
cmp eax, 5
jl 0x635f20
mov al, 0x6f
xchg byte [0xb26f05], al
mov eax, 0xb26f00
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae800]
xor byte [eax + 0xb26f10], cl
inc eax
cmp eax, 2
jl 0x635f50
mov al, 0x83
xchg byte [0xb26f12], al
mov eax, 0xb26f10
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae840]
add byte [eax + 0xb26f50], cl
inc eax
cmp eax, 0xc
jl 0x635f80
mov al, 0x15
xchg byte [0xb26f5c], al
mov eax, 0xb26f50
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae930]
add byte [eax + 0xb27040], cl
inc eax
cmp eax, 5
jl 0x635fb0
mov al, 0x26
xchg byte [0xb27045], al
mov eax, 0xb27040
pop esi
ret
xor eax, eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [eax + 0xaae770]
add byte [eax + 0xb26e70], cl
inc eax
cmp eax, 0x2b
jl 0x635fe0
mov al, 0x59
xchg byte [0xb26e9b], al
mov eax, 0xb26e70
pop esi
ret
xor eax, eax
movzx ecx, byte [eax + 0xaae7e0]
xor byte [eax + 0xb26ef0], cl
inc eax
cmp eax, 3
jl 0x636004
mov al, 0xf0
xchg byte [0xb26ef3], al
mov eax, 0xb26ef0
pop esi
ret