Function at 0x7421b0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
test ecx, ecx
je 0x7421fa
test edx, edx
je 0x74223a
test eax, eax
je 0x74226a
movzx eax, byte [0xb44d95]
cmp al, 0x37
je 0x7421f4
mov cl, 0xf6
nop word cs:[eax + eax]
nop dword [eax + eax]
mov al, 0x47
lock cmpxchg byte [0xb44d95], cl
je 0x74232a
cmp al, 0x37
jne 0x7421e0
mov eax, 0xb44d80
ret
test edx, edx
je 0x74229a
test eax, eax
je 0x7422ca
movzx eax, byte [0xb450f1]
cmp al, 0x75
je 0x742234
mov cl, 0x35
nop word [eax + eax]
mov al, 0xad
lock cmpxchg byte [0xb450f1], cl
je 0x742389
cmp al, 0x75
jne 0x742220
mov eax, 0xb450e0
ret
test eax, eax
je 0x7422fa
movzx eax, byte [0xb44fd7]
cmp al, 0xfb
je 0x742264
mov cl, 0xf4
nop
mov al, 0xbe
lock cmpxchg byte [0xb44fd7], cl
je 0x7423b1
cmp al, 0xfb
jne 0x742250
mov eax, 0xb44f60
ret
movzx eax, byte [0xb44da3]
cmp al, 0x4c
je 0x742294
mov cl, 0x59
nop word [eax + eax]
mov al, 4
lock cmpxchg byte [0xb44da3], cl
je 0x7423e1
cmp al, 0x4c
jne 0x742280
mov eax, 0xb44da0
ret
test eax, eax
je 0x742351
movzx eax, byte [0xb44df3]
cmp al, 0xaf
je 0x7422c4
mov cl, 0xe4
nop
mov al, 0x5e
lock cmpxchg byte [0xb44df3], cl
je 0x742411
cmp al, 0xaf
jne 0x7422b0
mov eax, 0xb44de0
ret
movzx eax, byte [0xb44eaf]
cmp al, 0xc3
je 0x7422f4
mov cl, 0xa
nop word [eax + eax]
mov al, 0x88
lock cmpxchg byte [0xb44eaf], cl
je 0x742441
cmp al, 0xc3
jne 0x7422e0
mov eax, 0xb44e90
ret
movzx eax, byte [0xb44e39]
cmp al, 0x11
je 0x742324
mov cl, 0xa6
nop word [eax + eax]
mov al, 6
lock cmpxchg byte [0xb44e39], cl
je 0x742471
cmp al, 0x11
jne 0x742310
mov eax, 0xb44e20
ret
xor eax, eax
nop dword [eax]
movzx ecx, byte [eax + 0xac4cb0]
xor byte [eax + 0xb44d80], cl
inc eax
cmp eax, 0x15
jl 0x742330
mov al, 0x37
xchg byte [0xb44d95], al
mov eax, 0xb44d80
ret
movzx eax, byte [0xb4511c]
cmp al, 0xdc
je 0x7424cb
mov cl, pe_nt_image_headers32
nop word cs:[eax + eax]
nop dword [eax]
mov al, 6
lock cmpxchg byte [0xb4511c], cl
je 0x7424a1
cmp al, 0xdc
jne 0x742370
jmp 0x7424cb
xor eax, eax
nop dword [eax + eax]
movzx ecx, byte [eax + 0xac5010]
add byte [eax + 0xb450e0], cl
inc eax
cmp eax, 0x11
jl 0x742390
mov al, 0x75
xchg byte [0xb450f1], al
mov eax, 0xb450e0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xac4e90]
xor byte [eax + 0xb44f60], cl
inc eax
cmp eax, 0x77
jl 0x7423c0
mov al, 0xfb
xchg byte [0xb44fd7], al
mov eax, 0xb44f60
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xac4cd0]
xor byte [eax + 0xb44da0], cl
inc eax
cmp eax, 3
jl 0x7423f0
mov al, 0x4c
xchg byte [0xb44da3], al
mov eax, 0xb44da0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xac4d10]
add byte [eax + 0xb44de0], cl
inc eax
cmp eax, 0x13
jl 0x742420
mov al, 0xaf
xchg byte [0xb44df3], al
mov eax, 0xb44de0
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xac4dc0]
xor byte [eax + 0xb44e90], cl
inc eax
cmp eax, 0x1f
jl 0x742450
mov al, 0xc3
xchg byte [0xb44eaf], al
mov eax, 0xb44e90
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xac4d50]
add byte [eax + 0xb44e20], cl
inc eax
cmp eax, 0x19
jl 0x742480
mov al, 0x11
xchg byte [0xb44e39], al
mov eax, 0xb44e20
ret
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [eax + 0xac5030]
add byte [eax + 0xb45100], cl
inc eax
cmp eax, 0x1c
jl 0x7424b0
mov al, 0xdc
xchg byte [0xb4511c], al
mov eax, 0xb45100
ret