Function at 0x7415d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
push ebx
push esi
mov esi, ecx
mov eax, edx
push edi
mov dword [ebp - 0x24], eax
push 0x478
cvttss2si ecx, dword [esi + 4]
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x20], ecx
xor ecx, ecx
cmp dword [esi + 8], ecx
sete cl
mov dword [ebp - 0x1c], ecx
call fcn.007a3999
mov ebx, eax
add esp, 8
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], ebx
test ebx, ebx
jne 0x74162f
mov dword [eax + 0x5c], 1
mov dword [ebp - 0x28], ebx
jmp 0x741941
mov dword [ebx], esi
mov dword [ebx + 4], eax
cmp dword [0x92a538], 0x72d9c0
je 0x741941
call fcn.00732710
push 0
mov dword [0x952a4c], 0x758d50
mov dword [0x9529d4], 0x758e80
mov dword [0x9529e0], 0x758f80
mov dword [0x9529dc], 0x758f10
mov dword [0x9529cc], 0x758730
mov dword [0x9529d0], 0x758680
mov dword [0x952a48], 0x7591b0
mov dword [0x952a40], 0x7592e0
mov dword [0x952a44], 0x758800
mov dword [0x9529c8], 0x758990
mov dword [0x9529c4], 0x758b60
mov dword [0x9529d8], 0x759400
mov dword [0x9529c0], 0x759010
mov dword [0x952a50], 0x759040
mov dword [0x952980], 0x759790
mov dword [0x952984], 0x7598c0
mov dword [0x952988], 0x759a40
mov dword [0x95298c], 0x759ad0
mov dword [0x952990], 0x759b70
mov dword [0x952994], 0x759c10
mov dword [0x952998], 0x759cd0
mov dword [0x95299c], 0x759d90
mov dword [0x9529a0], 0x759e30
mov dword [0x9529a4], 0x759ed0
mov dword [0x9529a8], 0x759f70
mov dword [0x9529ac], 0x75a060
mov dword [0x9529b0], 0x75a1c0
mov dword [0x9529b4], 0x75a320
mov dword [0x9529b8], 0x759790
mov dword [0x9529bc], 0x759790
mov dword [0x952a00], 0x759790
mov dword [0x952a04], 0x7598c0
mov dword [0x952a08], 0x759a40
mov dword [0x952a0c], 0x759ad0
mov dword [0x952a10], 0x759b70
mov dword [0x952a14], 0x759c10
mov dword [0x952a18], 0x759cd0
mov dword [0x952a1c], 0x759d90
mov dword [0x952a20], 0x759e30
mov dword [0x952a24], 0x759ed0
mov dword [0x952a28], 0x759f70
mov dword [0x952a2c], 0x75a060
mov dword [0x952a30], 0x75a1c0
mov dword [0x952a34], 0x75a320
mov dword [0x952a38], 0x759790
mov dword [0x952a3c], 0x759790
call fcn.0072d9c0
add esp, 4
test eax, eax
je 0x741937
push 3
mov dword [0x952a4c], 0x762070
mov dword [0x9529d4], 0x7620e0
mov dword [0x9529e0], 0x7621d0
mov dword [0x9529dc], 0x762390
mov dword [0x9529d8], 0x7625c0
mov dword [0x952a44], 0x762a50
mov dword [0x9529c0], 0x762ee0
mov dword [0x952a50], 0x763010
mov dword [0x952980], 0x7631f0
mov dword [0x952984], 0x763260
mov dword [0x952988], 0x7632d0
mov dword [0x95298c], 0x763360
mov dword [0x952990], 0x7633f0
mov dword [0x952994], 0x763480
mov dword [0x952998], 0x763540
mov dword [0x95299c], 0x7635f0
mov dword [0x9529a0], 0x7636a0
mov dword [0x9529a4], 0x763750
mov dword [0x9529a8], 0x763800
mov dword [0x9529ac], 0x7638e0
mov dword [0x9529b0], 0x7639f0
mov dword [0x9529b4], 0x763ad0
mov dword [0x9529b8], 0x7631f0
mov dword [0x9529bc], 0x7631f0
call fcn.0072d9c0
mov ecx, dword [0x952a4c]
add esp, 4
test eax, eax
mov edx, 0x763bb0
cmovne ecx, edx
mov dword [0x952a4c], ecx
mov dword [0x92a538], fcn.0072d9c0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov eax, dword [esi + 4]
add eax, 7
sar eax, 3
sub eax, dword [esi + 8]
add eax, dword [esi + 0xc]
mov dword [ebp - 0x2c], eax
test ebx, ebx
jne 0x741972
lea eax, [ebx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.0073f850
test eax, eax
jne 0x741987
mov edi, 1
jmp 0x741e88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 8], eax
cmp eax, 0x64
jge 0x741a5b
cmp dword [ebx + 0x38], 0
jne 0x741a65
cmp dword [ebx + 0x34], 0
jne 0x741a5b
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x14], eax
lea eax, [edi + edi*2]
mov dword [ebp - 4], eax
cdq
mov esi, eax
mov edi, edx
mov ecx, eax
shld edi, esi, 2
or ecx, edx
je 0x7419ec
push edx
push eax
push 0
push 0x7fff0000
call fcn.00798a80
test edx, edx
jb 0x7419e8
ja 0x7419e4
cmp eax, 4
jb 0x7419e8
test edi, edi
je 0x7419ec
xor edi, edi
jmp 0x7419fd
mov eax, dword [ebp - 4]
shl eax, 2
push eax
call fcn.007a35a7
add esp, 4
mov edi, eax
mov eax, 0x66666667
mov esi, 5
imul dword [ebp - 8]
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
test edi, edi
je 0x74197d
cmp dword [ebp - 0x10], 0x40
mov eax, dword [ebp - 0xc]
jge 0x741a2c
cmp eax, 0x40
jl 0x741a4f
test esi, esi
je 0x741a4f
mov ebx, dword [ebp - 0x10]
push edi
push esi
push dword [ebp - 0x14]
mov edx, eax
mov ecx, ebx
call fcn.00761e50
mov eax, dword [ebp - 0xc]
add esp, 0xc
sub esi, 1
jne 0x741a33
mov ebx, dword [ebp - 0x28]
push edi
call fcn.007a2dd1
mov esi, dword [ebp + 8]
add esp, 4
cmp dword [ebx + 0x38], 0
je 0x741c0f
mov eax, dword [ebx + 0x3c]
lea edi, [ebx + 0x40]
push 1
mov edx, 1
mov dword [ebp - 0x10], eax
mov ecx, esi
mov dword [ebp - 0x18], edi
call fcn.007548f0
add esp, 4
mov edx, 3
mov ecx, esi
push 2
call fcn.007548f0
mov edx, dword [ebp - 0x10]
add esp, 4
dec edx
mov ecx, esi
push 8
call fcn.007548f0
mov eax, dword [ebp - 0x10]
add esp, 4
dec eax
mov dword [ebp - 4], eax
cmp eax, 1
jl 0x741b39
mov ebx, dword [edi + eax*4]
lea ecx, [ebp - 0x438]
lea eax, [edi + eax*4]
sub ecx, edi
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], ecx
mov edi, dword [eax - 4]
lea esi, [eax - 4]
mov edx, ebx
mov eax, edi
and eax, 0xff00ff00
and edx, 0xff00
sub edx, eax
mov ecx, ebx
and ecx, 0xffff00ff
mov eax, edi
and eax, 0xff00ff
sub edx, 0xff01
sub ecx, eax
and ebx, 0xff00ff00
add ecx, 0xff00
mov eax, edi
and eax, 0xff00ff00
xor edx, ecx
mov ecx, dword [ebp - 0x14]
sub ebx, eax
mov eax, dword [ebp - 8]
add ebx, 0xff00ff
and edx, 0xff00ff
xor edx, ebx
sub dword [ebp - 4], 1
mov ebx, edi
mov dword [ecx + eax], edx
mov eax, esi
mov dword [ebp - 8], eax
jne 0x741ac7
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x18]
push dword [ebp - 0x1c]
mov eax, dword [edi]
lea edx, [ebp - 0x438]
push 0x14
push 1
push dword [ebp - 0x10]
mov dword [ebp - 0x438], eax
mov ecx, esi
lea eax, [ebx + 0x440]
push eax
lea eax, [ebx + 0x470]
push eax
call fcn.00740440
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x741e88
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x3c]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x10], ecx
xor ecx, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 8], eax
cmp esi, 4
jg 0x741ba3
cmp esi, 2
setle cl
add ecx, 2
jmp 0x741ba9
cmp esi, 0x10
setle cl
mov eax, 1
mov dword [ebp - 4], ecx
shl eax, cl
dec eax
add edx, eax
shr edx, cl
mov ecx, ebx
push edi
call fcn.00740f30
mov edi, eax
add esp, 4
test edi, edi
jne 0x741e88
push dword [ebp - 4]
mov edx, dword [ebp - 8]
lea eax, [ebx + 0x40]
push dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0x14]
push esi
push eax
push dword [ebx + 0x1c]
push dword [ebx + 8]
call fcn.007410b0
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x741e88
cmp dword [ebp + 0xc], eax
je 0x741c0f
mov eax, dword [ebx + 0x3c]
cmp eax, 0x400
jge 0x741c0f
bsr eax, eax
inc eax
mov dword [ebx + 0x28], eax
cmp dword [ebx + 8], 0
jne 0x741c81
mov eax, dword [ebx + 4]
mov dword [ebp - 0x18], eax
mov ecx, dword [eax + 8]
mov edx, ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 4], ecx
mov ecx, ebx
push eax
mov dword [ebp - 8], eax
call fcn.00740f30
mov edi, eax
add esp, 4
test edi, edi
jne 0x741e88
xor esi, esi
cmp dword [ebp - 8], esi
jle 0x741c81
mov eax, dword [ebp - 4]
shl eax, 2
nop dword [eax + eax]
push eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x34]
imul ecx, esi
lea eax, [eax + ecx*4]
push eax
mov eax, dword [ebx + 8]
add eax, edi
push eax
call fcn.00799a80
mov ecx, dword [ebp - 4]
inc esi
add esp, 0xc
lea eax, [ecx*4]
add edi, eax
cmp esi, dword [ebp - 8]
jl 0x741c50
cmp dword [ebx + 0x30], 0
je 0x741cc3
mov ecx, dword [ebp + 8]
mov edx, 1
mov esi, dword [ebx + 0x1c]
push 1
call fcn.007548f0
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, 2
push 2
call fcn.007548f0
mov edi, dword [ebp - 0xc]
add esp, 4
imul esi, edi
push esi
push dword [ebx + 8]
call dword [0x952a4c]
add esp, 8
jmp 0x741cc6
mov edi, dword [ebp - 0xc]
cmp dword [ebx + 0x34], 0
mov esi, dword [ebp + 8]
je 0x741cf1
mov edx, dword [ebx + 0x1c]
mov ecx, ebx
push esi
push dword [ebx + 0x30]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push edi
call fcn.00740c50
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x741e88
cmp dword [ebx + 0x2c], 0
je 0x741d91
push dword [ebx + 0x10]
mov esi, dword [ebx + 0x1c]
mov ecx, esi
push dword [ebx + 8]
mov edi, dword [ebx + 0x24]
push dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
push edi
call fcn.0075b960
mov ecx, dword [ebp + 8]
mov edx, 1
push 1
call fcn.007548f0
mov ecx, dword [ebp + 8]
add esp, 0x14
mov edx, 1
push 2
call fcn.007548f0
mov ecx, dword [ebp + 8]
lea edx, [edi - 2]
add esp, 4
push 3
call fcn.007548f0
mov eax, dword [ebp - 0xc]
add esp, 4
dec eax
mov ecx, edi
mov edx, 1
shl edx, cl
push dword [ebp - 0x1c]
add eax, edx
push dword [ebp - 0x20]
shr eax, cl
push eax
lea eax, [edx - 1]
mov edx, dword [ebx + 0x10]
add eax, esi
mov esi, dword [ebp + 8]
shr eax, cl
mov ecx, esi
push eax
lea eax, [ebx + 0x440]
push eax
lea eax, [ebx + 0x470]
push eax
call fcn.00740440
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x741e88
push 1
xor edx, edx
mov ecx, esi
call fcn.007548f0
add esp, 4
mov edx, dword [ebx + 8]
lea ecx, [ebp - 0x34]
lea eax, [ebx + 0x28]
push ecx
lea ecx, [ebp - 0x30]
push ecx
push dword [ebp - 0x2c]
mov ecx, esi
push dword [ebx + 0x20]
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x440]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0xc]
push dword [ebx + 0x1c]
push eax
lea eax, [ebx + 0x470]
push eax
call fcn.007406e0
mov edi, eax
add esp, 0x30
test edi, edi
jne 0x741e88
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x58]
test ecx, ecx
je 0x741e88
xor eax, eax
mov dword [ecx + 0x94], edi
cmp dword [ebx + 0x34], eax
je 0x741e0d
mov dword [ecx + 0x94], 1
lea eax, [edi + 1]
cmp dword [ebx + 0x2c], 0
je 0x741e1c
or eax, 2
mov dword [ecx + 0x94], eax
cmp dword [ebx + 0x30], 0
je 0x741e2b
or eax, 4
mov dword [ecx + 0x94], eax
cmp dword [ebx + 0x38], 0
je 0x741e3a
or eax, 8
mov dword [ecx + 0x94], eax
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0x98], eax
mov eax, dword [ebx + 0x24]
mov dword [ecx + 0x9c], eax
mov eax, dword [ebx + 0x28]
mov dword [ecx + 0xa0], eax
mov eax, dword [ebx + 0x3c]
mov dword [ecx + 0xa4], eax
mov eax, dword [esi + 4]
add eax, 7
sar eax, 3
sub eax, dword [esi + 8]
sub eax, dword [ebp - 0x2c]
add eax, dword [esi + 0xc]
mov dword [ecx + 0xa8], eax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0xac], eax
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0xb0], eax
push dword [ebx + 0x470]
call fcn.007a2dd1
mov dword [ebx + 0x474], 0
add esp, 4
mov dword [ebx + 0x470], 0
mov ecx, dword [ebx + 0x44c]
test ecx, ecx
je 0x741ebc
mov eax, dword [ebx + 0x450]
mov dword [ecx], eax
mov eax, dword [ebx + 0x448]
lea ecx, [ebx + 0x448]
mov dword [ebx + 0x450], eax
mov dword [ebx + 0x44c], ecx
mov dword [ebx + 0x454], 0
mov dword [ecx], 0
test eax, eax
je 0x741f0b
nop dword [eax + eax]
mov eax, dword [ebx + 0x450]
push eax
mov esi, dword [eax]
call fcn.007a2dd1
add esp, 4
mov dword [ebx + 0x450], esi
test esi, esi
jne 0x741ef0
mov ecx, dword [ebx + 0x464]
test ecx, ecx
je 0x741f1d
mov eax, dword [ebx + 0x468]
mov dword [ecx], eax
mov eax, dword [ebx + 0x460]
lea ecx, [ebx + 0x460]
mov dword [ebx + 0x468], eax
mov dword [ebx + 0x464], ecx
mov dword [ebx + 0x46c], 0
mov dword [ecx], 0
test eax, eax
je 0x741f6b
nop dword [eax]
mov eax, dword [ebx + 0x468]
push eax
mov esi, dword [eax]
call fcn.007a2dd1
add esp, 4
mov dword [ebx + 0x468], esi
test esi, esi
jne 0x741f50
push dword [ebx + 0x14]
call fcn.007a2dd1
add esp, 4
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
push ebx
call fcn.007a2dd1
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret