Function at 0x412c50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 4], ebx
add dword [0x43e3bc], 0xc80010d9
mov eax, dword [0x43ed98]
imul eax, eax, 0xd3135879
mov dword [0x43ed98], eax
mov ecx, dword [0x4373b8]
imul ecx, ecx, 0xff7f8fbf
mov dword [0x4373b8], ecx
mov eax, dword [0x43b4a8]
mov edx, dword [0x438664]
add eax, 0x7839e855
imul edx, eax
mov dword [0x438664], edx
mov ecx, dword [0x43cff0]
mov eax, dword [ebx]
shr eax, 3
not ecx
xor ecx, 0x22f11841
add dword [0x43e7bc], ecx
add dword [0x437d40], 0xfffceb0f
mov ecx, dword [0x43a6c4]
and eax, 0x3f
add ecx, 0x888c1bbc
or dword [0x43dc04], ecx
mov ecx, eax
mov eax, dword [0x437308]
mov edx, dword [0x43cd1c]
not eax
or edx, eax
mov eax, dword [0x438264]
imul eax, edx
mov dword [0x438264], eax
or esi, 0xffffffff
add dword [0x43cd1c], esi
mov eax, dword [0x43cf30]
mov edx, dword [ebx]
shl eax, 9
xor dword [0x43c3b0], eax
add dword [0x43d1cc], esi
mov eax, dword [0x43cd90]
add eax, dword [0x43d1cc]
mov esi, dword [ebp + 0xc]
mov dword [0x43cd90], eax
mov eax, dword [0x43e468]
mov edi, dword [0x436dac]
sar eax, 1
and edi, eax
and edi, 0x68d7ec5a
cmp edi, 0x2dcac601
jle 0x412d52
mov dword [0x43c628], 0xf471c823
movzx eax, word [0x441626]
add eax, 0x9234e9d
lea edx, [edx + esi*8]
mov word [0x441626], ax
mov edi, 1
cmp edx, dword [ebx]
jae 0x412d94
mov eax, dword [0x43e444]
imul eax, eax, 0x37fffda
and dword [0x43a3c0], eax
add dword [ebx + 4], edi
mov eax, dword [0x43db00]
add eax, dword [0x43e024]
mov dword [0x43db00], eax
mov dword [0x437510], 0x6901434d
mov eax, dword [0x43fae4]
shl eax, 8
mov edx, 0xcf548e56
sub edx, eax
mov eax, dword [0x43a190]
add eax, eax
and eax, edx
add dword [0x43c9e0], eax
add dword [0x43b6c0], 0x1da4c197
lea edx, [esi*8]
add dword [ebx], edx
movzx eax, word [0x44091c]
or eax, 0x2d39372e
mov word [0x44091c], ax
mov dx, word [0x441a7a]
add word [0x441a7a], di
movsx eax, dx
xor eax, 0xceeda004
cmp eax, 0x1fbe1f88
jl 0x412e08
and dword [0x43c070], 0xc789fb5a
xor dword [0x43b384], 0xd54210e8
mov edx, esi
shr edx, 0x1d
add dword [ebx + 4], edx
mov ax, word [0x4422d6]
cwde
not eax
add eax, 0x4d27eb9e
or dword [0x43c688], eax
test esi, esi
je 0x413061
jmp 0x412e40
and dword [0x439700], 0xf89a91ce
mov eax, dword [ebp + 8]
mov dl, byte [eax]
add eax, edi
mov byte [ebx + ecx + 0x18], dl
add word [0x4436fe], di
mov dword [ebp + 8], eax
mov ax, word [0x4436fe]
cwde
or eax, 0x85879f9f
xor dword [0x43b694], eax
sub esi, edi
add ecx, edi
mov dword [ebp + 0xc], esi
cmp ecx, 0x40
jne 0x41304f
xor dword [0x43d8a8], 0x413c7608
movzx ecx, word [0x440ff0]
sub ecx, 0xb676b7e
mov word [0x440ff0], cx
mov edx, dword [0x43d714]
mov eax, 0xf52e1482
sub eax, edx
xor esi, esi
xor dword [0x43f3e0], eax
lea eax, [ebx + 0x1a]
jmp 0x412ec0
add dword [0x439e64], edi
mov ecx, dword [0x439e64]
and ecx, 0xf6c0381
sub dword [0x438018], ecx
movzx ecx, byte [eax + 1]
or dword [0x439bcc], 0x556b6b7f
mov edx, dword [0x43f118]
lea edx, [edx + edx + 0x1f85fc6e]
shl ecx, 0x18
mov dword [ebp + esi*4 - 0x44], ecx
and edx, 0x34f050ca
mov dword [0x43adfc], edx
movzx ecx, word [0x4422f0]
add ecx, 0x370a4aff
mov word [0x4422f0], cx
mov ecx, dword [0x439ee8]
movzx ebx, word [0x4436d8]
movzx edx, byte [eax]
sub ecx, 0xe8e709
shl ecx, 5
or ebx, ecx
mov word [0x4436d8], bx
xor dword [0x43e938], 0x395d9676
mov ecx, dword [0x439960]
shl edx, 0x10
or dword [ebp + esi*4 - 0x44], edx
movzx edx, word [0x4419e8]
movsx edx, dx
shl ecx, 8
add ecx, edx
xor dword [0x43eeac], ecx
mov edx, dword [0x43ef20]
mov ebx, dword [0x437e74]
movzx ecx, byte [eax - 1]
imul edx, ebx
sub dword [0x43c960], edx
add dword [0x437ce0], 0x309961a2
movzx edx, word [0x440a68]
mov ebx, 0x32e19436
sub ebx, edx
mov word [0x442872], bx
add word [0x440a68], di
movzx edx, byte [eax - 2]
shl ecx, 8
or edx, ecx
mov ecx, dword [0x438cc0]
or dword [ebp + esi*4 - 0x44], edx
imul ecx, ecx, 0xa93f350c
mov dword [0x438cc0], ecx
movzx edx, word [0x441504]
imul edx, edx, 0xf3552123
add esi, edi
mov word [0x441504], dx
xor dword [0x43ef9c], 0xf945f71e
add eax, 4
cmp esi, 0x10
jb 0x412ec0
mov ebx, dword [ebp - 4]
add dword [0x43caec], 0xd2cd51c
lea eax, [ebp - 0x44]
push eax
mov ecx, ebx
call fcn.0041fe20
movzx ecx, word [0x4407a4]
mov esi, dword [ebp + 0xc]
imul ecx, ecx, 0x35e5b8da
mov word [0x4407a4], cx
dec dword [0x437a5c]
movzx edx, word [0x4422f2]
mov eax, dword [0x437a5c]
movsx edx, dx
and eax, edx
movzx edx, word [0x441d60]
and eax, 0xa8af1978
xor ecx, ecx
xor edx, eax
mov word [0x441d60], dx
add dword [0x438e2c], 0xd7ffffce
test esi, esi
jne 0x412e40
mov eax, dword [0x438d08]
imul eax, eax, 0x985ab7fe
pop edi
pop esi
mov dword [0x438d08], eax
pop ebx
mov esp, ebp
pop ebp
ret 8