Function at 0x42d150
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
mov eax, dword [0x53d190]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, edx
mov dword [ebp - 0x220], ecx
mov edx, dword [ebp + 0x1c]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x248], edx
mov edx, dword [ebp + 0x20]
push edi
mov dword [ebp - 0x244], edx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x240], edx
xor edx, edx
push edx
push edx
push eax
push ecx
mov word [ebx], dx
push dword [0x589de4]
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x22c], esi
mov dword [ebp - 0x23c], ebx
call dword [sym.imp.WINTRUST.dll_CryptCATAdminEnumCatalogFromHash]
mov edi, eax
test edi, edi
jne 0x42d1d8
mov dword [esi], 0x490
mov eax, 0x490
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bcc56
mov esp, ebp
pop ebp
ret
push 0
lea eax, [ebp - 0x218]
mov dword [ebp - 0x218], 0x20c
push eax
push edi
call dword [sym.imp.WINTRUST.dll_CryptCATCatalogInfoFromContext]
test eax, eax
je 0x42d20d
push 0x258
lea eax, [ebp - 0x214]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
xor esi, esi
jmp 0x42d215
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push 0
push edi
push dword [0x589de4]
call dword [sym.imp.WINTRUST.dll_CryptCATAdminReleaseCatalogContext]
mov eax, dword [ebp - 0x22c]
mov dword [eax], esi
test esi, esi
je 0x42d261
cmp esi, 0x490
jne 0x42d24b
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bcc56
mov esp, ebp
pop ebp
ret
mov eax, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bcc56
mov esp, ebp
pop ebp
ret
push ebx
call fcn.004ca68b
add esp, 4
xorps xmm0, xmm0
mov esi, ebx
movlpd qword [ebp - 0x238], xmm0
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, dword [ebp - 0x234]
mov ecx, eax
mov ebx, dword [ebp - 0x238]
add ecx, ecx
je 0x42d2b5
movzx eax, byte [esi]
lea esi, [esi + 1]
xor eax, ebx
shrd ebx, edi, 8
movzx eax, al
shr edi, 8
xor ebx, dword [eax*8 + 0x531c08]
xor edi, dword [eax*8 + 0x531c0c]
sub ecx, 1
jne 0x42d290
xor esi, esi
mov dword [ebp - 0x228], ebx
push 0x589dfc
mov dword [ebp - 0x224], edi
mov dword [ebp - 0x21c], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x228]
mov ecx, 0x589df4
push eax
lea eax, [ebp - 0x234]
push eax
call fcn.0042d640
mov eax, dword [eax]
cmp eax, dword [0x589df4]
je 0x42d315
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x21c], ecx
push ecx
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4e82f8]
call esi
mov esi, dword [ebp - 0x21c]
push 0x589dfc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0x224], esi
test esi, esi
jne 0x42d359
mov ecx, dword [ebp - 0x23c]
lea eax, [ebp - 0x224]
push eax
call fcn.0042bba0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x42d3aa
mov esi, dword [ebp - 0x224]
push esi
push edi
push ebx
mov dword [ebp - 0x21c], esi
call fcn.0042d050
push dword [ebp - 0x240]
mov esi, dword [esi]
push dword [ebp - 0x244]
push dword [ebp - 0x248]
mov esi, dword [esi + 0xc]
mov ecx, esi
push dword [ebp - 0x24c]
push dword [ebp - 0x220]
call dword [0x4e82f8]
mov edi, dword [ebp - 0x21c]
mov ecx, edi
call esi
mov dword [ebp - 0x220], eax
mov eax, dword [edi]
push edi
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4e82f8]
call esi
mov ecx, dword [ebp - 0x220]
mov eax, dword [ebp - 0x22c]
mov dword [eax], ecx
xor eax, eax
test ecx, ecx
je 0x42d3c8
cmp ecx, 0x490
sete al
lea eax, [eax*2 + 1]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bcc56
mov esp, ebp
pop ebp
ret