Function at 0x4635d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x104
push ebx
push esi
push edi
xorps xmm0, xmm0
mov dword [esp + 0x2c], 0x5820b8
push 0x40
lea eax, [esp + 0x74]
movq qword [esp + 0x34], xmm0
push 0
push eax
movups xmmword [esp + 0x5c], xmm0
movups xmmword [esp + 0x6c], xmm0
movups xmmword [esp + 0xdc], xmm0
movups xmmword [esp + 0xec], xmm0
call fcn.004d2520
add esp, 0xc
push 0xffffffffffffffff
push dword [0x59b41c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x5820b8]
test eax, eax
je 0x463641
push 0x5820b8
push 0xaa
call eax
add esp, 8
call fcn.00463350
test al, al
je 0x463689
cmp al, 6
je 0x463689
push dword [0x59b41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
or esi, 0xffffffff
cmp esi, 0x5820b8
je 0x463680
mov ecx, dword [0x5820b8]
test ecx, ecx
je 0x463680
push 0x1d
push 0x5820b8
push 0xac
call ecx
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x284
call fcn.00473980
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
test ebx, ebx
jne 0x4636d0
push dword [0x59b41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x5820b8]
test eax, eax
je 0x463c59
push 2
push ebx
push 0xac
call eax
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x284
push 0x5820b8
push ebx
call fcn.004d0d60
push 0xff
lea eax, [ebx + 0x184]
mov dword [ebx + 0xc], 0
push 0x58223c
push eax
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xffffffff
mov dword [ebx + 0x80], 0
call fcn.004e4400
push ebx
mov byte [ebx + 0x283], 0
call fcn.004634c0
add esp, 0x1c
test al, al
je 0x463760
push dword [0x59b41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp ebx, 0xffffffff
je 0x46374d
mov eax, dword [ebx]
test eax, eax
je 0x46374d
push 0x1e
push ebx
push 0xac
call eax
add esp, 0xc
push ebx
call fcn.004738c0
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 4
call fcn.00473ae0
mov dword [esp + 0x48], eax
add esp, 4
lea eax, [esp + 0x48]
mov dword [esp + 0x20], 0
mov dword [esp + 0x38], eax
lea eax, [ebx + 0x60]
mov dword [esp + 0x3c], eax
lea eax, [ebx + 0x40]
add ebx, 0x18
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], ebx
xor bl, bl
mov ecx, dword [esp + 0x38]
rdtsc
mov dword [ecx], eax
mov dword [ecx + 4], edx
movaps xmm0, xmmword [str.aaaaaaaaaaaaaaaai]
xor esi, esi
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xc0], xmm0
nop dword [eax]
mov cl, byte [esp + esi + 0xb0]
mov eax, esi
and eax, 7
mov dl, byte [esp + eax + 0x48]
mov al, cl
add al, dl
movzx ecx, cl
add al, bl
mov byte [esp + esi + 0xb0], al
movzx eax, dl
add ecx, eax
movzx eax, bl
add ecx, eax
cmp ecx, 0x100
setae bl
inc esi
cmp esi, 0x20
jb 0x4637c0
push 0x20
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0xb8]
push eax
push dword [0x597688]
call fcn.0046bc60
add esp, 0x10
xor edi, edi
xor edx, edx
xor esi, esi
nop
mov al, byte [esi + 0x5820f8]
lea ecx, [esi + 1]
xor al, byte [esp + edx + 0xf0]
mov byte [edi + 0x5820f8], al
lea eax, [edx + 1]
inc edi
cmp eax, 0x20
sbb edx, edx
and edx, eax
cmp ecx, 0x20
sbb esi, esi
and esi, ecx
cmp edi, 0x20
jb 0x463820
push 0x20
lea eax, [esp + 0xd4]
push eax
push 0x20
push dword [esp + 0x48]
push 0x20
push dword [esp + 0x54]
call fcn.00467550
push 8
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.004d0d60
mov ebx, dword [esp + 0x4c]
lea eax, [esp + 0x74]
push 0x20
push ebx
push eax
call fcn.004d0d60
mov esi, dword [esp + 0x74]
lea eax, [esp + 0x60]
push esi
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00467140
push 1
lea eax, [esp + 0x70]
xorps xmm0, xmm0
push eax
push esi
lea eax, [esp + 0x98]
push eax
push 0x20
push ebx
movups xmmword [ebx], xmm0
push ebx
movups xmmword [ebx + 0x10], xmm0
call fcn.004640a0
add esp, 0x58
lea eax, [esp + 0x50]
push 0x20
push ebx
push eax
call fcn.004d0d60
push 1
lea eax, [esp + 0x40]
push eax
push esi
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x8c]
push 0x40
push eax
push eax
call fcn.004640a0
add esp, 0x28
xor esi, esi
xor edi, edi
nop dword [eax + eax]
mov bl, byte [esp + edi + 0x70]
xor edx, edx
mov al, bl
mov cl, dl
shr al, cl
test al, 1
lea eax, [esi + 1]
cmove eax, esi
inc edx
mov esi, eax
cmp edx, 8
jb 0x463906
inc edi
cmp edi, 0x20
jb 0x463900
lea eax, [esi - 0x65]
cmp eax, 0x36
ja 0x463b21
mov dh, byte [esp + 0x70]
xor esi, esi
and dh, 1
xor edi, edi
nop dword [eax]
mov dl, byte [esp + edi + 0x70]
xor ebx, ebx
mov byte [esp + 0x17], dl
nop word [eax + eax]
mov cl, bl
movzx eax, dh
shr dl, cl
and dl, 1
cmp dl, dh
movzx ecx, dl
mov dl, byte [esp + 0x17]
cmove ecx, eax
lea eax, [esi + 1]
cmove eax, esi
mov dh, cl
inc ebx
mov esi, eax
cmp ebx, 8
jb 0x463950
inc edi
cmp edi, 0x20
jb 0x463940
add eax, 0xffffff9b
cmp eax, 0x35
ja 0x463b21
xor edi, edi
xor edx, edx
xor esi, esi
mov dword [esp + 0x18], edi
xor ecx, ecx
mov dword [esp + 0x1c], ecx
nop dword [eax + eax]
mov cl, byte [esp + ecx + 0x70]
xor ebx, ebx
mov byte [esp + 0x17], cl
nop word [eax + eax]
mov al, cl
mov cl, bl
shr al, cl
test al, 1
je 0x4639ce
mov ecx, dword [esp + 0x18]
inc edi
xor edx, edx
mov eax, edi
cmp edi, ecx
cmovbe eax, ecx
mov dword [esp + 0x18], eax
jmp 0x4639da
mov eax, dword [esp + 0x18]
inc edx
xor edi, edi
cmp edx, esi
cmova esi, edx
mov cl, byte [esp + 0x17]
inc ebx
cmp ebx, 8
jb 0x4639b0
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, 0x20
jb 0x4639a0
add eax, 0xfffffffc
cmp eax, 0x14
ja 0x463b21
lea eax, [esi - 4]
cmp eax, 0x14
ja 0x463b21
xor esi, esi
xor edi, edi
nop
mov bl, byte [esp + edi + 0x90]
xor edx, edx
nop dword [eax]
mov al, bl
mov cl, dl
shr al, cl
test al, 1
lea eax, [esi + 1]
cmove eax, esi
inc edx
mov esi, eax
cmp edx, 8
jb 0x463a20
inc edi
cmp edi, 0x20
jb 0x463a10
lea eax, [esi - 0x65]
cmp eax, 0x36
ja 0x463b21
mov dh, byte [esp + 0x90]
xor esi, esi
and dh, 1
xor edi, edi
nop word [eax + eax]
mov dl, byte [esp + edi + 0x90]
xor ebx, ebx
mov byte [esp + 0x17], dl
nop dword [eax]
mov cl, bl
movzx eax, dh
shr dl, cl
and dl, 1
cmp dl, dh
movzx ecx, dl
mov dl, byte [esp + 0x17]
cmove ecx, eax
lea eax, [esi + 1]
cmove eax, esi
mov dh, cl
inc ebx
mov esi, eax
cmp ebx, 8
jb 0x463a70
inc edi
cmp edi, 0x20
jb 0x463a60
add eax, 0xffffff9b
cmp eax, 0x35
ja 0x463b21
xor edi, edi
xor eax, eax
xor esi, esi
mov dword [esp + 0x18], edi
xor edx, edx
mov dword [esp + 0x1c], edx
nop dword [eax]
nop dword [eax + eax]
mov dl, byte [esp + edx + 0x90]
xor ebx, ebx
mov byte [esp + 0x17], dl
nop dword [eax]
mov cl, bl
shr dl, cl
test dl, 1
je 0x463aed
mov edx, dword [esp + 0x18]
inc edi
xor eax, eax
mov ecx, edi
cmp edi, edx
cmovbe ecx, edx
mov dword [esp + 0x18], ecx
jmp 0x463af9
mov ecx, dword [esp + 0x18]
inc eax
xor edi, edi
cmp eax, esi
cmova esi, eax
mov dl, byte [esp + 0x17]
inc ebx
cmp ebx, 8
jb 0x463ad0
mov edx, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, 0x20
jb 0x463ac0
lea eax, [ecx - 4]
cmp eax, 0x14
ja 0x463b21
lea eax, [esi - 4]
cmp eax, 0x14
jbe 0x463b35
mov edi, dword [esp + 0x20]
inc edi
mov dword [esp + 0x20], edi
cmp edi, 4
jbe 0x463793
jmp 0x463b39
mov edi, dword [esp + 0x20]
push 4
call fcn.00473aa0
add esp, 4
cmp edi, 4
ja 0x463c28
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0x70]
push 0x20
push eax
push ebx
call fcn.004d0d60
mov esi, dword [esp + 0x30]
add esp, 0xc
cmp esi, 0xffffffff
je 0x463b82
mov eax, dword [0x597690]
test eax, eax
je 0x463c12
push 0x20
push ebx
push eax
call fcn.004d0d60
add esp, 0xc
push 0x20
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.004d0d60
push 8
lea eax, [esp + 0xb8]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.004d0d60
add esp, 0x18
cmp dword [0x5820c8], 0
je 0x463bc9
mov eax, 0x5820c8
mov esi, dword [eax]
cmp dword [esi + 0x10], 0
lea eax, [esi + 0x10]
mov dword [esp + 0x2c], esi
jne 0x463bb6
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x10], esi
mov eax, dword [0x58233c]
mov dword [esi + 0x14], eax
inc eax
mov dword [0x58233c], eax
mov eax, dword [esi]
mov dword [esi + 0xc], 0x5820b8
mov dword [esi + 0x10], 0
test eax, eax
je 0x463bfd
push esi
push 0xab
call eax
add esp, 8
push dword [0x59b41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [0x59b41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esi]
test eax, eax
je 0x463c50
push 0x1f
jmp 0x463c45
push dword [0x59b41c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov esi, dword [esp + 0x24]
cmp esi, 0xffffffff
je 0x463c50
mov eax, dword [esi]
test eax, eax
je 0x463c50
push 0x24
push esi
push 0xac
call eax
add esp, 0xc
push esi
call fcn.004738c0
add esp, 4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret