Function at 0x4345a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, 4
imul ecx, eax, 0x787
mov edx, 4
imul eax, edx, 0x687
mov edx, dword [eax + 0x491c38]
shl edx, 8
and edx, 0x3e47ae4
xor edx, 0x6d43c8ea
mov eax, dword [ecx + 0x491c38]
or eax, edx
mov ecx, 4
imul edx, ecx, 0x787
mov dword [edx + 0x491c38], eax
mov eax, 4
imul ecx, eax, 0xa55
mov dword [ecx + 0x491c38], 0x21020001
mov edx, 4
imul eax, edx, 0x8b0
mov ecx, 4
imul edx, ecx, 0xc1
mov ecx, dword [edx + 0x491c38]
shl ecx, 3
mov edx, dword [eax + 0x491c38]
or edx, ecx
mov eax, 4
imul ecx, eax, 0x8b0
mov dword [ecx + 0x491c38], edx
mov edx, dword [ebp + 8]
push edx
call fcn.00464b30
add esp, 4
mov dword [ebp - 4], eax
mov eax, 2
imul ecx, eax, 0x26c
mov edx, 2
imul eax, edx, 0xa29
movsx edx, word [eax + 0x48fce0]
and edx, 0x1c1b1775
movsx eax, word [ecx + 0x48fce0]
add eax, edx
mov ecx, 2
imul edx, ecx, 0x26c
mov word [edx + 0x48fce0], ax
mov eax, dword [ebp - 4]
sub eax, 1
mov dword [ebp - 4], eax
mov ecx, 4
imul edx, ecx, 0xe4a
mov eax, dword [edx + 0x491c38]
sub eax, 0x16cdc62a
mov ecx, 4
imul edx, ecx, 0xe4a
mov dword [edx + 0x491c38], eax
mov eax, dword [ebp + 8]
add eax, dword [ebp - 4]
movsx ecx, byte [eax]
cmp ecx, 0x22
jne 0x43492e
mov edx, 4
imul eax, edx, 0xfa7
mov ecx, dword [eax + 0x491c38]
add ecx, 0x70375021
mov dword [ebp - 0x14], ecx
mov edx, 4
imul eax, edx, 0xfa7
mov ecx, dword [eax + 0x491c38]
sub ecx, 1
mov edx, 4
imul eax, edx, 0xfa7
mov dword [eax + 0x491c38], ecx
cmp dword [ebp - 0x14], 0x7bbff5ff
jg 0x434735
mov ecx, 4
imul edx, ecx, 0x268
mov eax, dword [edx + 0x491c38]
add eax, 0x10830a0b
mov ecx, 4
imul edx, ecx, 0x268
mov dword [edx + 0x491c38], eax
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
mov byte [edx + ecx], 0x22
mov eax, 2
imul ecx, eax, 0xe0d
movsx edx, word [ecx + 0x48fce0]
imul eax, edx, 0xa8ba2cb3
xor eax, 0xc8bd6bf6
mov dword [ebp - 0x18], eax
mov ecx, 2
imul edx, ecx, 0xe0d
mov ax, word [edx + 0x48fce0]
sub ax, 1
mov ecx, 2
imul edx, ecx, 0xe0d
mov word [edx + 0x48fce0], ax
cmp dword [ebp - 0x18], 0x12022831
je 0x4347b5
mov eax, 4
imul ecx, eax, 0x3f
imul edx, dword [ecx + 0x491c38], 0xef1baf6f
mov eax, 4
imul ecx, eax, 0x3f
mov dword [ecx + 0x491c38], edx
mov edx, dword [ebp + 8]
add edx, dword [ebp - 4]
mov byte [edx], 0
mov eax, 2
imul ecx, eax, 0x9cd
movsx edx, word [ecx + 0x48fce0]
or edx, 0x26a8400
mov eax, 2
imul ecx, eax, 0x9cd
mov word [ecx + 0x48fce0], dx
mov edx, 2
imul eax, edx, 0x15b
movsx ecx, word [eax + 0x48fce0]
imul edx, ecx, 0x537c069e
xor edx, 0xed79c7d3
mov eax, 4
imul ecx, eax, 0x73e
mov dword [ecx + 0x491c38], edx
mov edx, dword [ebp - 4]
sub edx, 1
mov dword [ebp - 4], edx
mov eax, 4
imul ecx, eax, 0xc4b
mov edx, dword [ecx + 0x491c38]
add edx, 0x3f2bfb02
mov eax, 4
imul ecx, eax, 0xc4b
mov dword [ecx + 0x491c38], edx
mov edx, dword [ebp + 8]
add edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x22
jne 0x4347e8
mov ecx, 4
imul edx, ecx, 0x6d0
mov eax, dword [edx + 0x491c38]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, 4
imul edx, ecx, 0x6d0
mov eax, dword [ebp - 8]
mov dword [edx + 0x491c38], eax
mov ecx, 4
imul edx, ecx, 0xb9b
mov eax, dword [edx + 0x491c38]
sar eax, 3
add eax, dword [ebp - 8]
cmp eax, 0xf84dc8d6
jle 0x4348c9
mov ecx, 2
imul edx, ecx, 0xcc4
movsx eax, word [edx + 0x48fce0]
or eax, 0x753c4da1
mov ecx, 4
imul edx, ecx, 0xdb
mov dword [edx + 0x491c38], eax
jmp 0x4348f1
mov eax, 4
imul ecx, eax, 0xd80
mov edx, dword [ecx + 0x491c38]
sub edx, 0x3f8381f2
mov eax, 4
imul ecx, eax, 0xd80
mov dword [ecx + 0x491c38], edx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 1]
mov dword [ebp - 0x10], ecx
mov edx, 4
imul eax, edx, 0x38a
mov ecx, dword [eax + 0x491c38]
shl ecx, 6
xor ecx, 0xa293ed17
mov edx, 4
imul eax, edx, 0xeec
mov dword [eax + 0x491c38], ecx
jmp 0x434abc
mov ecx, 4
imul edx, ecx, 0xb6b
imul eax, dword [edx + 0x491c38], 0x5e67f20b
mov ecx, 4
imul edx, ecx, 0xb6b
mov dword [edx + 0x491c38], eax
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
mov byte [edx + ecx], 0x20
mov eax, 4
imul ecx, eax, 0xee6
mov edx, dword [ecx + 0x491c38]
xor edx, 0x63ce3799
mov eax, 4
imul ecx, eax, 0x106
mov dword [ecx + 0x491c38], edx
mov edx, 4
imul eax, edx, 0xee6
mov ecx, dword [eax + 0x491c38]
sub ecx, 1
mov edx, 4
imul eax, edx, 0xee6
mov dword [eax + 0x491c38], ecx
mov ecx, 4
imul edx, ecx, 0x142
mov eax, dword [edx + 0x491c38]
add eax, 0x738a1880
mov ecx, 4
imul edx, ecx, 0x142
mov dword [edx + 0x491c38], eax
mov eax, dword [ebp - 4]
sub eax, 1
mov dword [ebp - 4], eax
mov ecx, 4
imul edx, ecx, 0x592
mov eax, dword [edx + 0x491c38]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, 4
imul edx, ecx, 0x592
mov eax, dword [ebp - 0xc]
mov dword [edx + 0x491c38], eax
mov ecx, 0x7f51694f
sub ecx, dword [ebp - 0xc]
mov edx, 2
imul eax, edx, 0xb16
movsx edx, word [eax + 0x48fce0]
sub edx, ecx
mov eax, 2
imul ecx, eax, 0xb16
mov word [ecx + 0x48fce0], dx
mov edx, dword [ebp + 8]
add edx, dword [ebp - 4]
movsx eax, byte [edx]
cmp eax, 0x20
jne 0x4349b0
mov ecx, 4
imul edx, ecx, 0x6e1
mov eax, dword [edx + 0x491c38]
xor eax, 0xab90b80e
mov ecx, 4
imul edx, ecx, 0x6e1
mov dword [edx + 0x491c38], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x10], edx
mov eax, 4
imul ecx, eax, 0x473
mov edx, 4
imul eax, edx, 0x7a2
mov edx, dword [eax + 0x491c38]
not edx
imul eax, edx, 0x66a39192
mov ecx, dword [ecx + 0x491c38]
sub ecx, eax
mov edx, 4
imul eax, edx, 0x473
mov dword [eax + 0x491c38], ecx
mov ecx, 4
imul edx, ecx, 0xca
imul eax, dword [edx + 0x491c38], 0xbf3d01a1
mov ecx, 4
imul edx, ecx, 0xca
mov dword [edx + 0x491c38], eax
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret