Function at 0x41c2b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp], eax
mov ebx, eax
mov dword [esp + 0x24], eax
call sym._strlen
cmp eax, 0xb
mov dword [esp + 0x28], eax
jbe 0x41caee
mov edx, 0x9e3779b9
mov esi, eax
mov edi, 0x9e3779b9
mov eax, 0xfeedbeef
mov ebp, edx
nop
movzx ecx, byte [ebx + 5]
movzx edx, byte [ebx + 6]
shl ecx, 8
shl edx, 0x10
add edx, ecx
movzx ecx, byte [ebx + 4]
add ecx, edx
movzx edx, byte [ebx + 7]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [ebx + 9]
add edi, edx
movzx edx, byte [ebx + 0xa]
shl ecx, 8
shl edx, 0x10
add edx, ecx
movzx ecx, byte [ebx + 8]
add ecx, edx
movzx edx, byte [ebx + 0xb]
shl edx, 0x18
add edx, ecx
movzx ecx, byte [ebx + 1]
add eax, edx
movzx edx, byte [ebx + 2]
shl ecx, 8
shl edx, 0x10
add edx, ecx
movzx ecx, byte [ebx]
add ecx, edx
movzx edx, byte [ebx + 3]
shl edx, 0x18
add edx, ecx
sub edx, edi
sub edi, eax
mov ecx, edx
sub ecx, eax
lea edx, [ecx + ebp]
mov ecx, eax
shr ecx, 0xd
xor edx, ecx
mov ecx, edx
sub edi, edx
sub eax, edx
shl ecx, 8
xor edi, ecx
mov ecx, edi
sub eax, edi
shr ecx, 0xd
xor eax, ecx
sub edx, edi
sub esi, 0xc
mov ecx, eax
sub edx, eax
sub edi, eax
shr ecx, 0xc
add ebx, 0xc
xor edx, ecx
mov ecx, edx
sub edi, edx
sub eax, edx
shl ecx, 0x10
xor edi, ecx
mov ecx, edi
sub eax, edi
sub edx, edi
shr ecx, 5
xor eax, ecx
mov ebp, eax
sub edx, eax
sub edi, eax
shr ebp, 3
xor ebp, edx
mov edx, ebp
sub edi, ebp
sub eax, ebp
shl edx, 0xa
xor edi, edx
mov edx, edi
sub eax, edi
shr edx, 0xf
xor eax, edx
cmp esi, 0xb
ja 0x41c2f0
mov edx, ebp
add eax, dword [esp + 0x28]
cmp esi, 0xb
ja case.0x41c3d2.0
jmp dword [esi*4 + 0x5c42e4]
movzx ecx, byte [ebx + 0xa]
shl ecx, 0x18
add eax, ecx
movzx ecx, byte [ebx + 9]
shl ecx, 0x10
add eax, ecx
movzx ecx, byte [ebx + 8]
shl ecx, 8
add eax, ecx
movzx ecx, byte [ebx + 7]
shl ecx, 0x18
add edi, ecx
movzx ecx, byte [ebx + 6]
shl ecx, 0x10
add edi, ecx
movzx ecx, byte [ebx + 5]
shl ecx, 8
add edi, ecx
movzx ecx, byte [ebx + 4]
add edi, ecx
movzx ecx, byte [ebx + 3]
shl ecx, 0x18
add edx, ecx
movzx ecx, byte [ebx + 2]
shl ecx, 0x10
add edx, ecx
movzx ecx, byte [ebx + 1]
shl ecx, 8
add edx, ecx
movzx ecx, byte [ebx]
add edx, ecx
sub edx, edi
mov ecx, eax
sub edi, eax
sub edx, eax
shr ecx, 0xd
xor edx, ecx
mov ecx, edx
sub edi, edx
sub eax, edx
shl ecx, 8
xor edi, ecx
mov ecx, edi
sub eax, edi
sub edx, edi
shr ecx, 0xd
xor eax, ecx
mov ecx, eax
sub edx, eax
sub edi, eax
shr ecx, 0xc
xor edx, ecx
mov ecx, edx
sub edi, edx
sub eax, edx
shl ecx, 0x10
xor edi, ecx
mov esi, edi
sub eax, edi
sub edx, edi
shr esi, 5
xor eax, esi
mov ecx, eax
sub edx, eax
sub edi, eax
shr ecx, 3
xor edx, ecx
mov esi, edx
sub edi, edx
shl esi, 0xa
xor edi, esi
sub eax, edx
mov esi, edi
sub eax, edi
shr esi, 0xf
xor esi, eax
mov eax, dword [0x731128]
test eax, eax
je 0x41c634
mov edx, dword [eax + 8]
mov eax, dword [edx + 4]
mov edi, dword [edx]
sub eax, 1
and eax, esi
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov ebx, dword [eax]
test ebx, ebx
je 0x41c634
mov edi, dword [edx + 0x14]
mov ebp, dword [esp + 0x28]
neg edi
add ebx, edi
jmp 0x41c4dd
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x41c634
add ebx, edi
test ebx, ebx
je 0x41c634
cmp esi, dword [ebx + 0x24]
jne 0x41c4d0
cmp ebp, dword [ebx + 0x20]
jne 0x41c4d0
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call sym._memcmp
test eax, eax
jne 0x41c4d0
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x50]
add eax, 1
mov dword [ebx + 4], eax
mov dword [esi + 8], eax
mov dword [esp], 0x74518c
call dbg.pthread_rwlock_wrlock
test eax, eax
jne 0x41cad0
mov eax, dword [0x732a04]
add eax, dword [0x746028]
mov dword [esp + 0x10], 0x29f3
mov dword [esp + 0xc], str.add_cgpu
mov dword [esp + 8], str.cgminer.c
lea eax, [eax*4 + 8]
mov dword [esp + 4], eax
mov eax, dword [0x745a28]
mov dword [esp], eax
call sym.__cgrealloc
mov dword [esp], 0x74518c
mov dword [0x745a28], eax
call dbg.pthread_rwlock_unlock
test eax, eax
jne 0x41cadf
call dword [0x5bb9e0]
mov dword [esp], 0x745508
call dbg.pthread_mutex_lock
test eax, eax
jne 0x41cb22
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll_time]
mov esi, dword [esp + 0x50]
mov dword [esi + 0x1d0], eax
mov dword [esp], 0x745508
call dbg.pthread_mutex_unlock
test eax, eax
jne 0x41cb31
call dword [0x5bb9e0]
cmp byte [0x744fa8], 0
jne 0x41c7c4
mov eax, dword [0x746028]
mov esi, dword [esp + 0x50]
lea edx, [eax + 1]
mov dword [0x746028], edx
mov edx, dword [0x745a28]
mov dword [edx + eax*4], esi
mov eax, dword [0x746028]
sub eax, dword [0x745648]
cmp eax, dword [0x732a34]
jle 0x41c60d
mov dword [0x732a34], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x41c627
mov esi, dword [esp + 0x50]
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x41caa0
add esp, 0x3c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 0x29ec
mov dword [esp + 8], str.add_cgpu
mov dword [esp + 4], str.cgminer.c
mov dword [esp], 0x28
call sym.__cgmalloc
mov ebp, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], 0x29ed
mov dword [esp + 0x10], str.add_cgpu
mov dword [esp + 0xc], str.cgminer.c
mov ebx, ebp
mov dword [esp + 8], 4
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym.__cg_memcpy
mov eax, dword [esp + 0x50]
mov dword [ebp + 4], 0
mov dword [eax + 8], 0
mov dword [esp], ebp
call sym._strlen
cmp eax, 0xb
mov dword [esp + 0x28], eax
jbe 0x41cb0a
mov eax, dword [esp + 0x28]
mov edx, 0x9e3779b9
mov ecx, 0xfeedbeef
mov dword [esp + 0x24], eax
mov eax, 0x9e3779b9
movzx edi, byte [ebx + 5]
movzx esi, byte [ebx + 6]
shl edi, 8
shl esi, 0x10
add esi, edi
movzx edi, byte [ebx + 4]
add edi, esi
movzx esi, byte [ebx + 7]
shl esi, 0x18
add esi, edi
movzx edi, byte [ebx + 9]
add edx, esi
movzx esi, byte [ebx + 0xa]
shl edi, 8
shl esi, 0x10
add esi, edi
movzx edi, byte [ebx + 8]
add edi, esi
movzx esi, byte [ebx + 0xb]
shl esi, 0x18
add esi, edi
movzx edi, byte [ebx + 1]
add ecx, esi
movzx esi, byte [ebx + 2]
shl edi, 8
shl esi, 0x10
add esi, edi
movzx edi, byte [ebx]
add edi, esi
movzx esi, byte [ebx + 3]
shl esi, 0x18
add esi, edi
sub esi, edx
sub edx, ecx
sub esi, ecx
add eax, esi
mov esi, ecx
shr esi, 0xd
xor eax, esi
mov esi, eax
sub edx, eax
sub ecx, eax
shl esi, 8
xor edx, esi
mov esi, edx
sub ecx, edx
shr esi, 0xd
xor ecx, esi
sub eax, edx
sub dword [esp + 0x24], 0xc
mov esi, ecx
sub eax, ecx
sub edx, ecx
shr esi, 0xc
add ebx, 0xc
xor eax, esi
mov esi, eax
sub edx, eax
sub ecx, eax
shl esi, 0x10
xor edx, esi
mov esi, edx
sub ecx, edx
sub eax, edx
shr esi, 5
xor ecx, esi
mov esi, ecx
sub eax, ecx
sub edx, ecx
shr esi, 3
xor eax, esi
mov esi, eax
sub edx, eax
sub ecx, eax
shl esi, 0xa
xor edx, esi
mov esi, edx
sub ecx, edx
shr esi, 0xf
xor ecx, esi
mov esi, dword [esp + 0x24]
cmp esi, 0xb
ja 0x41c6d0
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
add esi, ecx
cmp edi, 0xb
ja case.0x41c7bd.0
jmp dword [edi*4 + 0x5c4314]
mov eax, dword [0x732a04]
mov esi, dword [esp + 0x50]
lea edx, [eax + 1]
add eax, dword [0x746028]
mov dword [0x732a04], edx
mov edx, dword [0x745a28]
mov dword [edx + eax*4], esi
jmp 0x41c5f5
movzx ecx, byte [ebx + 0xa]
shl ecx, 0x18
add esi, ecx
movzx ecx, byte [ebx + 9]
shl ecx, 0x10
add esi, ecx
movzx ecx, byte [ebx + 8]
shl ecx, 8
add esi, ecx
movzx ecx, byte [ebx + 7]
shl ecx, 0x18
add edx, ecx
movzx ecx, byte [ebx + 6]
shl ecx, 0x10
add edx, ecx
movzx ecx, byte [ebx + 5]
shl ecx, 8
add edx, ecx
movzx ecx, byte [ebx + 4]
add edx, ecx
movzx ecx, byte [ebx + 3]
shl ecx, 0x18
add eax, ecx
movzx ecx, byte [ebx + 2]
shl ecx, 0x10
add eax, ecx
movzx ecx, byte [ebx + 1]
shl ecx, 8
add eax, ecx
movzx ecx, byte [ebx]
add eax, ecx
sub eax, edx
mov ebx, esi
sub edx, esi
sub eax, esi
shr ebx, 0xd
mov dword [ebp + 0x1c], ebp
xor ebx, eax
mov eax, ebx
sub edx, ebx
sub esi, ebx
shl eax, 8
mov ecx, esi
mov esi, dword [0x731128]
xor edx, eax
mov eax, edx
sub ecx, edx
sub ebx, edx
shr eax, 0xd
xor eax, ecx
mov ecx, eax
sub ebx, eax
sub edx, eax
shr ecx, 0xc
xor ecx, ebx
mov ebx, ecx
sub edx, ecx
sub eax, ecx
shl ebx, 0x10
xor edx, ebx
mov ebx, edx
sub eax, edx
sub ecx, edx
shr ebx, 5
xor eax, ebx
mov ebx, eax
sub ecx, eax
sub edx, eax
shr ebx, 3
xor ecx, ebx
mov ebx, ecx
sub edx, ecx
shl ebx, 0xa
xor edx, ebx
sub eax, ecx
mov ebx, edx
sub eax, edx
shr ebx, 0xf
xor ebx, eax
mov eax, dword [esp + 0x28]
test esi, esi
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x20], eax
je 0x41cb40
mov eax, dword [esi + 8]
mov dword [ebp + 0x10], 0
lea edi, [ebp + 8]
mov dword [esp + 0x24], edi
mov dword [ebp + 8], eax
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x10]
mov dword [eax + 8], ebp
mov eax, dword [esi + 8]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 8]
add dword [eax + 0xc], 1
mov edx, dword [esi + 8]
mov eax, dword [edx + 4]
sub eax, 1
and ebx, eax
mov eax, dword [edx]
lea ecx, [ebx + ebx*2]
lea eax, [eax + ecx*4]
mov edx, dword [eax]
add dword [eax + 4], 1
mov dword [ebp + 0x14], 0
mov dword [ebp + 0x18], edx
mov edx, dword [eax]
test edx, edx
je 0x41c92c
mov esi, dword [esp + 0x24]
mov dword [edx + 0xc], esi
mov edx, dword [eax + 8]
mov esi, dword [esp + 0x24]
lea edx, [edx + edx*4 + 5]
mov dword [eax], esi
add edx, edx
cmp dword [eax + 4], edx
jb 0x41c51a
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x24]
test esi, esi
mov dword [esp + 0x2c], esi
jne 0x41c51a
mov dword [esp + 4], 1
mov eax, dword [eax + 4]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp], eax
call sym._calloc
test eax, eax
mov edi, eax
je 0x41cbf3
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 0xc]
mov esi, dword [eax + 8]
lea edx, [edx + edx - 1]
lea ecx, [esi + 1]
test edx, ebx
setne dl
shr ebx, cl
movzx edx, dl
add edx, ebx
mov dword [eax + 0x18], edx
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
test eax, eax
je 0x41ca48
mov dword [esp + 0x28], 0
mov esi, dword [esp + 0x28]
mov ebx, dword [edx]
lea ecx, [esi + esi*2]
lea ecx, [ebx + ecx*4]
mov ebx, dword [ecx]
test ebx, ebx
je 0x41ca37
mov dword [esp + 0x24], edi
jmp 0x41c9db
mov eax, dword [ebp + 8]
mov ebx, esi
mov eax, dword [eax + 4]
lea eax, [eax + eax - 1]
and eax, dword [ebx + 0x1c]
mov edi, dword [esp + 0x24]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*2]
lea ecx, [edi + eax*4]
mov eax, dword [ecx + 4]
add eax, 1
mov dword [ecx + 4], eax
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x18]
jbe 0x41ca12
add dword [edx + 0x1c], 1
xor edx, edx
mov edi, dword [ebp + 8]
mov eax, dword [ecx + 4]
div dword [edi + 0x18]
mov dword [ecx + 8], eax
mov dword [ebx + 0xc], 0
mov eax, dword [ecx]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx]
test eax, eax
je 0x41ca27
mov dword [eax + 0xc], ebx
test esi, esi
mov dword [ecx], ebx
jne 0x41c9d3
mov edx, dword [ebp + 8]
mov edi, dword [esp + 0x24]
mov eax, dword [edx + 4]
add dword [esp + 0x28], 1
mov esi, dword [esp + 0x28]
cmp esi, eax
jb 0x41c9bb
mov eax, dword [edx]
mov dword [esp], eax
call sym._free
mov eax, dword [ebp + 8]
shl dword [eax + 4], 1
mov eax, dword [ebp + 8]
add dword [eax + 8], 1
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
shr edx, 1
cmp dword [eax + 0x1c], edx
jbe 0x41ca7b
mov esi, dword [eax + 0x20]
add esi, 1
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x2c]
mov dword [eax + 0x20], esi
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20], 1
jbe 0x41c51a
mov dword [eax + 0x24], 1
jmp 0x41c51a
mov ebx, dword [eax + 0x24]
test ebx, ebx
je 0x41c627
mov dword [esp], ebx
call sym._strlen
cmp eax, 4
jbe 0x41c627
mov dword [esp], ebx
call sym._str_text
mov esi, dword [esp + 0x50]
mov dword [esi + 0x1c], eax
jmp 0x41c627
mov edx, 0x29f2
mov eax, str.add_cgpu
call sym.__wr_lock.part.55.constprop.74
mov edx, 0x29f4
mov eax, str.add_cgpu
call sym.__rw_unlock.part.41.constprop.80
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov edi, 0x9e3779b9
mov edx, 0x9e3779b9
mov eax, 0xfeedbeef
jmp 0x41c3c9
mov dword [esp + 0x24], eax
mov edx, 0x9e3779b9
mov eax, 0x9e3779b9
mov ecx, 0xfeedbeef
jmp 0x41c7aa
mov edx, 0x29f6
mov eax, str.add_cgpu
call sym.__mutex_lock.part.48.constprop.76
mov edx, 0x29f8
mov eax, str.add_cgpu
call sym.__mutex_unlock_noyield.part.49.constprop.78
mov dword [ebp + 0x10], 0
mov dword [ebp + 0xc], 0
mov dword [esp], 0x2c
call sym._malloc
test eax, eax
mov dword [ebp + 8], eax
je 0x41cbf3
mov edi, eax
mov ecx, 0xb
mov eax, esi
rep stosd dword es:[edi], eax
lea edi, [ebp + 8]
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], edi
mov dword [eax + 0x10], edi
mov eax, dword [ebp + 8]
mov dword [eax + 4], 0x20
mov eax, dword [ebp + 8]
mov dword [eax + 8], 5
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], 8
mov edi, dword [ebp + 8]
mov dword [esp], 0x180
call sym._malloc
mov dword [edi], eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x28], 0xa0111fe1
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x41cbf3
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0x17c], 0
and edi, 0xfffffffc
sub eax, edi
mov ecx, eax
mov eax, esi
mov esi, ebp
add ecx, 0x180
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [0x731128], ebp
jmp 0x41c8f5
mov dword [esp], 0xffffffff
call sym._exit
nop