Function at 0x43a570
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0xc
mov eax, dword [ecx + 8]
test eax, eax
je 0x43a830
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x43a830
cmp ecx, 0x20
jb 0x43a830
push ebx
push esi
push edi
mov dword [eax], 0x7b412816
or edx, 0xffffffff
movzx edi, byte [eax + 0x11]
movzx ebx, byte [eax + 0x1f]
imul ecx, edi, 0x79340000
imul esi, ebx, 0x45360000
mov dword [ebp - 4], edi
sub esi, ecx
imul ecx, edi, 0x37160000
add esi, 0x5b8e4c81
imul esi, ebx
sub ecx, 0xa37acb7
imul ecx, edi
add esi, ecx
imul ecx, edi, 0x2d000000
sub edx, ecx
imul ecx, edi, 0x56800000
or edx, 0xbc42827d
sub esi, edx
or edx, 0xffffffff
xor ecx, 0xa1debec1
add ecx, 0x5d140f06
add esi, ecx
imul ecx, esi, 0x3e5c898c
imul edi, esi, 0xe0d1bb3a
imul esi, esi
dec ecx
or ecx, 0x95a072bd
xor edi, 0x352fc6a1
sub edi, ecx
imul ecx, ebx, 0x9edf8c
sub edx, ecx
imul ecx, esi, 0x443c0000
or edx, 0xfed0aaaf
sub edi, edx
sub edi, ecx
imul ecx, ebx, 0x904f6fc6
imul ebx, dword [ebp - 4], 0x17edce76
xor ecx, 0x8097aaa8
add edi, ecx
add ebx, 0x61a962cd
add ebx, edi
mov edx, ebx
mov ecx, ebx
sar edx, 0x18
mov esi, ebx
sar ecx, 0x10
sar esi, 8
cmp dl, cl
mov byte [eax + 4], dl
mov byte [eax + 5], cl
mov ecx, esi
mov dword [ebp - 4], esi
jbe 0x43a677
mov byte [eax + 6], cl
mov byte [eax + 7], bl
jmp 0x43a67d
mov byte [eax + 7], cl
mov byte [eax + 6], bl
xor esi, esi
mov dword [eax + 8], 0x2c1263de
lea edi, [esi + 2]
lea ebx, [esi + 0x1f]
nop dword [eax]
mov ecx, esi
mov edx, 0xfffffc83
imul ecx, esi
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, esi, 0x1c65
or edx, ecx
imul ecx, esi, 0x2110e9c
imul edx, edx, 0x12a2
sub edx, ecx
sub edx, 0x2b391aa4
and edx, edi
rol edi, 1
xor esi, edx
sub ebx, 1
jne 0x43a690
imul ecx, esi, 0x4e410fd4
mov ebx, 0x80faaa94
sub ebx, ecx
mov edx, ebx
mov ecx, ebx
sar edx, 0x18
mov esi, ebx
sar ecx, 0x10
sar esi, 8
cmp dl, cl
mov byte [eax + 0xc], dl
mov byte [eax + 0xd], cl
mov ecx, esi
mov dword [ebp - 4], esi
jae 0x43a6fc
mov byte [eax + 0xe], cl
mov byte [eax + 0xf], bl
jmp 0x43a702
mov byte [eax + 0xf], cl
mov byte [eax + 0xe], bl
mov word [eax + 0x10], 0xf424
or esi, 0xffffffff
mov cl, byte [eax + 0x10]
mov edx, esi
movzx ebx, cl
imul ecx, ebx, 0x3c2a4a89
mov dword [eax + 0x12], 0xef19a085
mov dword [ebp - 0xc], ebx
mov word [eax + 0x16], 0xeeff
sub edx, ecx
imul ecx, ebx, 0x3c2a4a89
or edx, 0x8b26b719
or ecx, 0x8b26b719
add edx, ecx
imul ecx, ebx, 0x59a00000
mov dword [ebp - 8], edx
mov edx, 0xb800000
sub edx, ecx
imul ecx, ebx, 0x1bf86a88
imul edx, ebx
sub esi, ecx
imul ecx, ebx, 0x6dfc3544
or esi, 0xdebfa907
sub edx, esi
mov esi, 1
xor ecx, 0x10a02b7c
add ecx, 0x3c2e695d
lea edi, [esi + 1]
add ecx, edx
lea ebx, [esi + 0x1e]
mov dword [ebp - 4], ecx
mov ecx, esi
mov edx, 0xfffffc83
imul ecx, esi
imul ecx, ecx, 0x1f105
sub edx, ecx
imul ecx, esi, 0x1c65
or edx, ecx
imul ecx, esi, 0x2110e9c
imul edx, edx, 0x12a2
sub edx, ecx
sub edx, 0x76c64525
and edx, edi
rol edi, 1
xor esi, edx
sub ebx, 1
jne 0x43a784
imul ecx, dword [ebp - 4], 0x73660000
mov ebx, 0x2bdfed21
sub ebx, ecx
imul ecx, dword [ebp - 8], 0xe097f64
imul ebx, dword [ebp - 4]
add ebx, ecx
imul ecx, dword [ebp - 0xc], 0xbaed1c4
sub ebx, ecx
imul ecx, esi, 0x4e410fd4
sub ebx, ecx
sub ebx, 0x608d3d5d
mov edx, ebx
mov ecx, ebx
sar edx, 0x18
mov esi, ebx
sar ecx, 0x10
sar esi, 8
cmp dl, cl
mov byte [eax + 0x18], dl
mov byte [eax + 0x19], cl
mov ecx, esi
mov dword [ebp - 4], esi
jae 0x43a815
mov byte [eax + 0x1a], cl
mov byte [eax + 0x1b], bl
jmp 0x43a81b
mov byte [eax + 0x1b], cl
mov byte [eax + 0x1a], bl
pop edi
mov word [eax + 0x1c], 0xfcc4
pop esi
mov word [eax + 0x1e], 0x9860
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
mov esp, ebp
pop ebp
ret