Function at 0x493590
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0xc], eax
je 0x4937d9
sub esp, 0xc
mov eax, dword [ebp + 0x18]
push eax
call fcn.0041bdf0
pop edi
mov esi, dword [ebp + 0x18]
push esi
call fcn.0041bca0
add esp, 0x10
mov dword [ebp - 0x48], eax
test eax, eax
je 0x4937d5
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [ecx + 4]
add eax, ebx
lea ebx, [eax + 4]
mov eax, dword [ebp - 0x48]
cmp ebx, dword [eax + 8]
jg 0x4937c1
mov edx, dword [ebp - 0x48]
test ebx, ebx
mov dword [edx + 4], ebx
jle 0x493603
xor edx, edx
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx]
mov dword [eax + edx*4], 0
inc edx
cmp edx, ebx
jne 0x4935f2
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x493766
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x34], 0
mov esi, dword [edx + 4]
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
mov eax, dword [ebp - 0x34]
mov eax, dword [edx + eax]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x4c]
inc eax
cmp ecx, eax
je 0x49364c
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + edx + 4]
mov dword [ebp - 0x44], edx
test esi, esi
jle 0x49374b
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
xor edx, eax
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], 0
lea esi, [esi]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x30]
shl edx, 2
xor ebx, ebx
mov ecx, dword [eax]
mov eax, dword [ebp - 0x30]
inc eax
mov edi, dword [ecx + edx]
cmp esi, eax
je 0x49368c
mov ebx, dword [edx + ecx + 4]
mov eax, dword [ebp - 0x44]
mov ecx, ebx
push eax
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x18]
xor ebx, edi
call fcn.00492d60
mov eax, dword [ebp - 0x40]
push eax
mov ecx, edi
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x20]
call fcn.00492d60
mov esi, dword [ebp - 0x3c]
mov ecx, ebx
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x10]
push esi
call fcn.00492d60
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
xor eax, ebx
mov edx, dword [ebp - 0x18]
xor eax, ecx
mov edi, dword [ebp - 0x24]
xor eax, edx
xor edx, ecx
mov esi, dword [ebp - 0x14]
xor edx, edi
xor edx, esi
mov ecx, dword [ebp - 0x48]
xor edx, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x38]
mov ebx, dword [ecx]
mov eax, dword [ebp - 0x24]
add edx, ebx
add esp, 0xc
mov ebx, 2
mov ecx, dword [edx]
xor ecx, eax
mov dword [edx], ecx
mov ecx, dword [ebp - 0x38]
add ecx, 4
mov eax, dword [ebp - 0x48]
mov edx, ecx
add ecx, 4
mov edi, dword [eax]
mov eax, dword [ebp + ebx*4 - 0x28]
add edx, edi
inc ebx
mov esi, dword [edx]
xor esi, eax
cmp ebx, 5
mov dword [edx], esi
jne 0x493708
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp + 0xc]
add eax, 2
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x38]
mov esi, dword [edx + 4]
add eax, 8
mov dword [ebp - 0x38], eax
cmp esi, dword [ebp - 0x30]
jg 0x493670
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x34]
add eax, 2
add edi, 8
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x34], edi
cmp ecx, dword [ebp - 0x4c]
jg 0x493625
mov edx, dword [ebp - 0x48]
mov ecx, dword [edx + 4]
test ecx, ecx
jle 0x49378a
mov eax, dword [edx]
sub eax, 4
lea edx, [eax + ecx*4]
mov eax, dword [edx]
sub edx, 4
test eax, eax
jne 0x493784
dec ecx
jne 0x493778
mov eax, dword [ebp - 0x48]
mov dword [eax + 4], ecx
push ebx
mov ebx, 1
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp - 0x48]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00493070
add esp, 0x10
test eax, eax
je 0x4937d5
sub esp, 0xc
mov eax, dword [ebp + 0x18]
push eax
call fcn.0041bb90
mov eax, ebx
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push edx
push edx
push ebx
push eax
call fcn.0041ce80
add esp, 0x10
test eax, eax
jne 0x4935e6
xor ebx, ebx
jmp 0x4937a8
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00493340
mov ebx, eax
add esp, 0x10
mov eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret