Function at 0x63d030
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
test ecx, ecx
je 0x63d07a
mov ecx, dword [esp + 8]
test edx, edx
je 0x63d0ba
test eax, eax
je 0x63d0fa
test ecx, ecx
je 0x63d15a
movzx eax, byte [0xb27664]
cmp al, 0x68
je 0x63d074
mov cl, 1
nop dword [eax]
mov al, 0xf6
lock cmpxchg byte [0xb27664], cl
je 0x63d289
cmp al, 0x68
jne 0x63d060
mov eax, 0xb27660
ret
test edx, edx
je 0x63d12a
test eax, eax
je 0x63d18a
movzx eax, byte [0xb27805]
cmp al, 0x89
je 0x63d0b4
mov cl, 0xf
nop word [eax + eax]
mov al, 0xb9
lock cmpxchg byte [0xb27805], cl
je 0x63d2b1
cmp al, 0x89
jne 0x63d0a0
mov eax, 0xb27800
ret
test eax, eax
je 0x63d1ba
test ecx, ecx
je 0x63d1f9
movzx eax, byte [0xb278a2]
cmp al, 0xe1
je 0x63d0f4
mov cl, 0xcf
nop word [eax + eax]
mov al, 0x32
lock cmpxchg byte [0xb278a2], cl
je 0x63d319
cmp al, 0xe1
jne 0x63d0e0
mov eax, 0xb278a0
ret
test ecx, ecx
je 0x63d229
movzx eax, byte [0xb277d2]
cmp al, 8
je 0x63d124
mov cl, 4
nop
mov al, 0xa9
lock cmpxchg byte [0xb277d2], cl
je 0x63d341
cmp al, 8
jne 0x63d110
mov eax, 0xb277c0
ret
test eax, eax
je 0x63d259
movzx eax, byte [0xb27684]
cmp al, 0xc
je 0x63d154
mov cl, 0xa5
nop
mov al, 0x8e
lock cmpxchg byte [0xb27684], cl
je 0x63d3a1
cmp al, 0xc
jne 0x63d140
mov eax, 0xb27680
ret
movzx eax, byte [0xb27723]
cmp al, 0x94
je 0x63d184
mov cl, 0xfb
nop word [eax + eax]
mov al, 0x75
lock cmpxchg byte [0xb27723], cl
je 0x63d371
cmp al, 0x94
jne 0x63d170
mov eax, 0xb27710
ret
movzx eax, byte [0xb276e3]
cmp al, 0xa5
je 0x63d1b4
mov cl, 0x7c
nop word [eax + eax]
mov al, 0x66
lock cmpxchg byte [0xb276e3], cl
je 0x63d3d1
cmp al, 0xa5
jne 0x63d1a0
mov eax, 0xb276e0
ret
test ecx, ecx
je 0x63d2e1
movzx eax, byte [0xb278b2]
cmp al, 0xdf
je 0x63d42b
mov cl, 0xa6
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0x1c
lock cmpxchg byte [0xb278b2], cl
je 0x63d401
cmp al, 0xdf
jne 0x63d1e0
jmp 0x63d42b
movzx eax, byte [0xb276d5]
cmp al, 0x10
je 0x63d45b
mov cl, 0xb9
nop word [eax + eax]
mov al, 0x6b
lock cmpxchg byte [0xb276d5], cl
je 0x63d431
cmp al, 0x10
jne 0x63d210
jmp 0x63d45b
movzx eax, byte [0xb27702]
cmp al, 0x7c
je 0x63d48b
mov cl, 0xce
nop word [eax + eax]
mov al, 0xc5
lock cmpxchg byte [0xb27702], cl
je 0x63d461
cmp al, 0x7c
jne 0x63d240
jmp 0x63d48b
movzx eax, byte [0xb27843]
cmp al, 0xa5
je 0x63d4bb
mov cl, 0x71
nop word [eax + eax]
mov al, 9
lock cmpxchg byte [0xb27843], cl
je 0x63d491
cmp al, 0xa5
jne 0x63d270
jmp 0x63d4bb
xor eax, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 0xaaf090]
xor byte [eax + 0xb27660], cl
inc eax
cmp eax, 4
jl 0x63d290
mov al, 0x68
xchg byte [0xb27664], al
mov eax, 0xb27660
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf220]
xor byte [eax + 0xb27800], cl
inc eax
cmp eax, 5
jl 0x63d2c0
mov al, 0x89
xchg byte [0xb27805], al
mov eax, 0xb27800
ret
movzx eax, byte [0xb27672]
cmp al, 0x38
je 0x63d4eb
mov cl, 0xe5
nop word cs:[eax + eax]
nop dword [eax]
mov al, 0xbb
lock cmpxchg byte [0xb27672], cl
je 0x63d4c1
cmp al, 0x38
jne 0x63d300
jmp 0x63d4eb
xor eax, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 0xaaf2c0]
xor byte [eax + 0xb278a0], cl
inc eax
cmp eax, 2
jl 0x63d320
mov al, 0xe1
xchg byte [0xb278a2], al
mov eax, 0xb278a0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf1e0]
add byte [eax + 0xb277c0], cl
inc eax
cmp eax, 0x12
jl 0x63d350
mov al, 8
xchg byte [0xb277d2], al
mov eax, 0xb277c0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf130]
xor byte [eax + 0xb27710], cl
inc eax
cmp eax, 0x13
jl 0x63d380
mov al, 0x94
xchg byte [0xb27723], al
mov eax, 0xb27710
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf0b0]
add byte [eax + 0xb27680], cl
inc eax
cmp eax, 4
jl 0x63d3b0
mov al, 0xc
xchg byte [0xb27684], al
mov eax, 0xb27680
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf100]
xor byte [eax + 0xb276e0], cl
inc eax
cmp eax, 3
jl 0x63d3e0
mov al, 0xa5
xchg byte [0xb276e3], al
mov eax, 0xb276e0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf2d0]
add byte [eax + 0xb278b0], cl
inc eax
cmp eax, 2
jl 0x63d410
mov al, 0xdf
xchg byte [0xb278b2], al
mov eax, 0xb278b0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf0e0]
xor byte [eax + 0xb276c0], cl
inc eax
cmp eax, 0x15
jl 0x63d440
mov al, 0x10
xchg byte [0xb276d5], al
mov eax, 0xb276c0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf120]
add byte [eax + 0xb27700], cl
inc eax
cmp eax, 2
jl 0x63d470
mov al, 0x7c
xchg byte [0xb27702], al
mov eax, 0xb27700
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf240]
add byte [eax + 0xb27820], cl
inc eax
cmp eax, 0x23
jl 0x63d4a0
mov al, 0xa5
xchg byte [0xb27843], al
mov eax, 0xb27820
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xaaf0a0]
add byte [eax + 0xb27670], cl
inc eax
cmp eax, 2
jl 0x63d4d0
mov al, 0x38
xchg byte [0xb27672], al
mov eax, 0xb27670
ret