Function at 0x437b10
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x84
call fcn.0044e310
mov eax, dword [0x4a381c]
test eax, eax
jne 0x437b39
push 0xd2
push 0x4894b0
push 0x11
push 9
call fcn.0042f970
add esp, 0x10
mov ecx, dword [0x4a3808]
mov eax, dword [0x4a3804]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x18], ecx
mov ebx, dword [0x4a380c]
mov ecx, 5
mov esi, 0x4a37ec
lea edi, [esp + 0x20]
mov ebp, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x1c], ebx
add eax, esi
cmp eax, 0x3ff
mov dword [0x4a3804], eax
jl 0x437b93
cdq
mov ecx, 0x3ff
idiv ecx
mov dword [0x4a3800], ecx
mov dword [0x4a3804], edx
jmp 0x437baa
mov ecx, dword [0x4a3800]
cmp ecx, 0x3ff
jge 0x437baa
cmp eax, ecx
jle 0x437baa
mov dword [0x4a3800], eax
mov eax, esi
mov ecx, 0x14
cdq
idiv ecx
xor ecx, ecx
mov eax, 0x66666667
test edx, edx
setg cl
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [0x4a381c]
add edx, ebx
add edx, ecx
test eax, eax
mov dword [0x4a380c], edx
jne 0x437bf5
push 0xf2
push 0x4894b0
push 0x11
push 0xa
call fcn.0042f970
add esp, 0x10
test esi, esi
jle 0x437d12
mov ecx, esi
add esi, 0x13
mov eax, 0xcccccccd
mov ebx, dword [esp + 0x98]
mul esi
shr edx, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
jmp 0x437c21
mov ecx, dword [esp + 0x10]
cmp ecx, 0x14
mov esi, ecx
jle 0x437c2d
mov esi, 0x14
lea ecx, [esp + 0x34]
push ecx
call fcn.0043aa70
lea edx, [esp + 0x24]
push 0x14
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.0043a660
lea edi, [esi + ebp - 0x3ff]
add esp, 0x10
test edi, edi
jle 0x437c81
mov ecx, esi
lea edx, [ebp + 0x4a33d8]
sub ecx, edi
lea eax, [esp + 0x34]
push ecx
push edx
push eax
call fcn.0043a660
push edi
lea ecx, [esp + 0x44]
push 0x4a33d8
push ecx
call fcn.0043a660
add esp, 0x18
jmp 0x437c96
lea edx, [ebp + 0x4a33d8]
push esi
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0043a660
add esp, 0xc
push esi
lea ecx, [esp + 0x38]
push ebx
push ecx
call fcn.0043a660
lea edx, [esp + 0x24]
push 8
lea eax, [esp + 0x44]
push edx
push eax
call fcn.0043a660
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x38]
push ecx
push edx
call fcn.0043a910
mov edi, dword [esp + 0x3c]
add esp, 0x20
inc edi
add ebx, esi
xor eax, eax
mov dword [esp + 0x1c], edi
test esi, esi
jle 0x437cf8
mov cl, byte [esp + eax + 0x20]
mov dl, byte [ebp + 0x4a33d8]
xor dl, cl
mov byte [ebp + 0x4a33d8], dl
inc ebp
cmp ebp, 0x3ff
jl 0x437cf3
xor ebp, ebp
inc eax
cmp eax, esi
jl 0x437cd6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
sub ecx, 0x14
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jne 0x437c1d
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x34]
rep stosd dword es:[edi], eax
mov eax, dword [0x4a381c]
test eax, eax
jne 0x437d3e
push 0x11c
push 0x4894b0
push 0x11
push 9
call fcn.0042f970
add esp, 0x10
xor eax, eax
mov dl, byte [esp + eax + 0x20]
mov bl, byte [eax + 0x4a37ec]
xor bl, dl
mov byte [eax + 0x4a37ec], bl
inc eax
cmp eax, 0x14
jb 0x437d40
fld qword [0x4a3810]
fcomp qword [0x4894a8]
pop edi
pop esi
pop ebp
pop ebx
fnstsw ax
test ah, 1
je 0x437d82
fld qword [0x4a3810]
fadd qword [esp + 0x90]
fstp qword [0x4a3810]
mov eax, dword [0x4a381c]
test eax, eax
jne 0x437da1
push 0x127
push 0x4894b0
push 0x11
push 0xa
call fcn.0042f970
add esp, 0x10
add esp, 0x84
ret