Function at 0x451574
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x3c
mov ebp, eax
call fcn.00451834
xor ecx, ecx
mov byte [esp + 0x10], cl
mov byte [esp + 0x11], cl
cmp byte [0x7ddbe0], 1
je 0x45181a
mov byte [esp + 0x38], 0
mov byte [esp + 0x39], 1
mov byte [esp + 0x3a], 3
mov byte [esp + 0x3b], 2
xor eax, eax
mov ebx, eax
jmp 0x4515b4
inc ebx
movsx ecx, bl
cmp ecx, 4
jge 0x451813
movsx ecx, byte [esp + ecx + 0x38]
test ecx, ecx
je 0x4517fb
cmp ecx, 1
je 0x451601
cmp ecx, 2
jne 0x4515e8
lea eax, [esp + 8]
mov edx, ebp
call fcn.00424ecc
test eax, eax
jne 0x451610
jmp 0x4515b3
cmp ecx, 3
jne 0x4515b3
mov eax, ebp
call fcn.00424ea8
movsx eax, al
test eax, eax
jne 0x4517f1
jmp 0x4515b3
lea eax, [esp + 8]
mov edx, ebp
call fcn.004251a8
test eax, eax
je 0x4515b3
test eax, eax
jle 0x4517a9
movsx ecx, byte [esp + 0x10]
cmp ecx, 1
je 0x451799
cmp ecx, 2
je 0x451789
cmp ecx, 3
je 0x451779
cmp ecx, 4
je 0x451769
mov eax, 0xfffffffe
movsx ecx, al
test ecx, ecx
jne 0x45174f
mov edx, dword [esp + 0xc]
mov dword [0x7de39c], edx
mov eax, dword [edx + 8]
mov dword [0x7de388], eax
mov ebp, dword [edx + 0xc]
mov dword [0x7de38c], ebp
mov ecx, dword [edx + 0x10]
mov dword [0x7de390], ecx
mov ecx, dword [edx + 0x14]
mov dword [0x7de394], ecx
mov ecx, dword [edx + 0x18]
mov dword [0x7de398], ecx
lea ecx, [edx + 0x20]
mov dword [0x7de3a0], ecx
lea ecx, [eax + eax]
add ecx, ecx
lea ebp, [edx + ecx + 0x20]
mov dword [0x7de3a4], ebp
lea ecx, [eax + eax]
add ecx, ecx
add ecx, ecx
lea edx, [edx + ecx + 0x20]
mov dword [0x7de3a8], edx
test eax, eax
jle 0x451745
xor eax, eax
jmp 0x4516c2
mov ebp, dword [0x7de3a4]
lea ecx, [eax + eax]
mov edi, dword [ebp + eax*4]
test edi, edi
jle 0x4516fd
xor ebp, ebp
mov esi, dword [0x7de39c]
mov edi, dword [0x7de3a0]
add esi, dword [edi + ecx*2]
mov edx, ebp
and edx, 0xf
add edx, 0x10
xor byte [esi + ebp], dl
mov edx, dword [0x7de3a4]
mov edi, dword [edx + ecx*2]
inc ebp
cmp ebp, edi
jl 0x4516cf
mov edx, dword [0x7de3a8]
cmp dword [edx + ecx*2], 0
jle 0x451738
xor ebp, ebp
jmp 0x451710
mov edx, dword [0x7de3a4]
mov edi, dword [edx + ecx*2]
mov esi, dword [0x7de39c]
mov edx, dword [0x7de3a0]
add esi, dword [edx + ecx*2]
add esi, edi
mov edx, ebp
and edx, 0xf
add edx, 0x10
xor byte [esi + ebp], dl
mov edx, dword [0x7de3a8]
inc ebp
cmp ebp, dword [edx + ecx*2]
jl 0x451707
inc eax
cmp eax, dword [0x7de388]
jl 0x4516bc
xor eax, eax
add esp, 0x3c
pop ebx
pop ebp
pop esi
pop edi
ret
push ebp
push 1
push 0x1964a
call fcn.0045da34
mov eax, 0xffffffff
add esp, 0x48
pop ebx
pop ebp
pop esi
pop edi
ret
lea eax, [esp + 8]
mov edx, ebp
call fcn.0043923c
jmp 0x451646
lea eax, [esp + 8]
mov edx, ebp
call fcn.004392bc
jmp 0x451646
lea eax, [esp + 8]
mov edx, ebp
call fcn.00439334
jmp 0x451646
lea eax, [esp + 8]
mov edx, ebp
call fcn.00439c24
jmp 0x451646
je 0x4517dc
cmp eax, 0xffffffff
je 0x4517c7
cmp eax, 0xfffffffe
jne 0x45174f
push ebp
push 1
push 0xdbfb0
call fcn.0045da64
add esp, 0xc
jmp 0x45174f
push ebp
push 1
push 0x1964a
call fcn.0045da64
add esp, 0xc
jmp 0x45174f
push ebp
push 1
push 0x1967c
call fcn.0045da64
add esp, 0xc
jmp 0x45174f
mov byte [esp + 0x10], 1
jmp 0x451610
lea eax, [esp + 8]
mov edx, ebp
call fcn.00425200
test eax, eax
jne 0x451610
jmp 0x4515b3
xor eax, eax
jmp 0x451610
mov byte [esp + 0x38], 0
mov byte [esp + 0x39], 1
mov byte [esp + 0x3a], 2
mov byte [esp + 0x3b], 3
jmp 0x4515ad