Function at 0x73f130
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.007a1529
mov ebx, eax
add esp, 8
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], ebx
test ebx, ebx
jne 0x73f18f
mov dword [eax + 0x5c], 1
mov dword [ebp - 0x28], ebx
jmp 0x73f4a1
mov dword [ebx], esi
mov dword [ebx + 4], eax
cmp dword [0x925538], 0x72b4f0
je 0x73f4a1
call fcn.00730270
push 0
mov dword [0x94da4c], 0x7568c0
mov dword [0x94d984], 0x7569f0
mov dword [0x94da44], 0x756af0
mov dword [0x94d9f0], 0x756a80
mov dword [0x94d9f8], 0x7562a0
mov dword [0x94d980], 0x7561f0
mov dword [0x94da48], 0x756d20
mov dword [0x94da40], 0x756e50
mov dword [0x94d9e8], 0x756370
mov dword [0x94d9f4], 0x756500
mov dword [0x94d9e4], 0x7566d0
mov dword [0x94d9ec], 0x756f70
mov dword [0x94d9e0], 0x756b80
mov dword [0x94da50], 0x756bb0
mov dword [0x94d9a0], 0x757300
mov dword [0x94d9a4], 0x757430
mov dword [0x94d9a8], 0x7575b0
mov dword [0x94d9ac], 0x757640
mov dword [0x94d9b0], 0x7576e0
mov dword [0x94d9b4], 0x757780
mov dword [0x94d9b8], 0x757840
mov dword [0x94d9bc], 0x757900
mov dword [0x94d9c0], 0x7579a0
mov dword [0x94d9c4], 0x757a40
mov dword [0x94d9c8], 0x757ae0
mov dword [0x94d9cc], 0x757bd0
mov dword [0x94d9d0], 0x757d30
mov dword [0x94d9d4], 0x757e90
mov dword [0x94d9d8], 0x757300
mov dword [0x94d9dc], 0x757300
mov dword [0x94da00], 0x757300
mov dword [0x94da04], 0x757430
mov dword [0x94da08], 0x7575b0
mov dword [0x94da0c], 0x757640
mov dword [0x94da10], 0x7576e0
mov dword [0x94da14], 0x757780
mov dword [0x94da18], 0x757840
mov dword [0x94da1c], 0x757900
mov dword [0x94da20], 0x7579a0
mov dword [0x94da24], 0x757a40
mov dword [0x94da28], 0x757ae0
mov dword [0x94da2c], 0x757bd0
mov dword [0x94da30], 0x757d30
mov dword [0x94da34], 0x757e90
mov dword [0x94da38], 0x757300
mov dword [0x94da3c], 0x757300
call fcn.0072b4f0
add esp, 4
test eax, eax
je 0x73f497
push 3
mov dword [0x94da4c], 0x75fbe0
mov dword [0x94d984], 0x75fc50
mov dword [0x94da44], 0x75fd40
mov dword [0x94d9f0], 0x75ff00
mov dword [0x94d9ec], 0x760130
mov dword [0x94d9e8], 0x7605c0
mov dword [0x94d9e0], 0x760a50
mov dword [0x94da50], 0x760b80
mov dword [0x94d9a0], 0x760d60
mov dword [0x94d9a4], 0x760dd0
mov dword [0x94d9a8], 0x760e40
mov dword [0x94d9ac], 0x760ed0
mov dword [0x94d9b0], 0x760f60
mov dword [0x94d9b4], 0x760ff0
mov dword [0x94d9b8], 0x7610b0
mov dword [0x94d9bc], 0x761160
mov dword [0x94d9c0], 0x761210
mov dword [0x94d9c4], 0x7612c0
mov dword [0x94d9c8], 0x761370
mov dword [0x94d9cc], 0x761450
mov dword [0x94d9d0], 0x761560
mov dword [0x94d9d4], 0x761640
mov dword [0x94d9d8], 0x760d60
mov dword [0x94d9dc], 0x760d60
call fcn.0072b4f0
mov ecx, dword [0x94da4c]
add esp, 4
test eax, eax
mov edx, 0x761720
cmovne ecx, edx
mov dword [0x94da4c], ecx
mov dword [0x925538], fcn.0072b4f0
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 0x73f4d2
lea eax, [ebx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.0073d3b0
test eax, eax
jne 0x73f4e7
mov edi, 1
jmp 0x73f9e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 8], eax
cmp eax, 0x64
jge 0x73f5bb
cmp dword [ebx + 0x38], 0
jne 0x73f5c5
cmp dword [ebx + 0x34], 0
jne 0x73f5bb
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 0x73f54c
push edx
push eax
push 0
push 0x7fff0000
call fcn.00796610
test edx, edx
jb 0x73f548
ja 0x73f544
cmp eax, 4
jb 0x73f548
test edi, edi
je 0x73f54c
xor edi, edi
jmp 0x73f55d
mov eax, dword [ebp - 4]
shl eax, 2
push eax
call fcn.007a1137
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 0x73f4dd
cmp dword [ebp - 0x10], 0x40
mov eax, dword [ebp - 0xc]
jge 0x73f58c
cmp eax, 0x40
jl 0x73f5af
test esi, esi
je 0x73f5af
mov ebx, dword [ebp - 0x10]
push edi
push esi
push dword [ebp - 0x14]
mov edx, eax
mov ecx, ebx
call fcn.0075f9c0
mov eax, dword [ebp - 0xc]
add esp, 0xc
sub esi, 1
jne 0x73f593
mov ebx, dword [ebp - 0x28]
push edi
call fcn.007a0961
mov esi, dword [ebp + 8]
add esp, 4
cmp dword [ebx + 0x38], 0
je 0x73f76f
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.00752460
add esp, 4
mov edx, 3
mov ecx, esi
push 2
call fcn.00752460
mov edx, dword [ebp - 0x10]
add esp, 4
dec edx
mov ecx, esi
push 8
call fcn.00752460
mov eax, dword [ebp - 0x10]
add esp, 4
dec eax
mov dword [ebp - 4], eax
cmp eax, 1
jl 0x73f699
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 0x73f627
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.0073dfa0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x73f9e8
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 0x73f703
cmp esi, 2
setle cl
add ecx, 2
jmp 0x73f709
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.0073ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x73f9e8
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.0073ec10
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x73f9e8
cmp dword [ebp + 0xc], eax
je 0x73f76f
mov eax, dword [ebx + 0x3c]
cmp eax, 0x400
jge 0x73f76f
bsr eax, eax
inc eax
mov dword [ebx + 0x28], eax
cmp dword [ebx + 8], 0
jne 0x73f7e1
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.0073ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x73f9e8
xor esi, esi
cmp dword [ebp - 8], esi
jle 0x73f7e1
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.00797610
mov ecx, dword [ebp - 4]
inc esi
add esp, 0xc
lea eax, [ecx*4]
add edi, eax
cmp esi, dword [ebp - 8]
jl 0x73f7b0
cmp dword [ebx + 0x30], 0
je 0x73f823
mov ecx, dword [ebp + 8]
mov edx, 1
mov esi, dword [ebx + 0x1c]
push 1
call fcn.00752460
mov ecx, dword [ebp + 8]
add esp, 4
mov edx, 2
push 2
call fcn.00752460
mov edi, dword [ebp - 0xc]
add esp, 4
imul esi, edi
push esi
push dword [ebx + 8]
call dword [0x94da4c]
add esp, 8
jmp 0x73f826
mov edi, dword [ebp - 0xc]
cmp dword [ebx + 0x34], 0
mov esi, dword [ebp + 8]
je 0x73f851
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.0073e7b0
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x73f9e8
cmp dword [ebx + 0x2c], 0
je 0x73f8f1
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.007594d0
mov ecx, dword [ebp + 8]
mov edx, 1
push 1
call fcn.00752460
mov ecx, dword [ebp + 8]
add esp, 0x14
mov edx, 1
push 2
call fcn.00752460
mov ecx, dword [ebp + 8]
lea edx, [edi - 2]
add esp, 4
push 3
call fcn.00752460
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.0073dfa0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x73f9e8
push 1
xor edx, edx
mov ecx, esi
call fcn.00752460
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.0073e240
mov edi, eax
add esp, 0x30
test edi, edi
jne 0x73f9e8
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x58]
test ecx, ecx
je 0x73f9e8
xor eax, eax
mov dword [ecx + 0x94], edi
cmp dword [ebx + 0x34], eax
je 0x73f96d
mov dword [ecx + 0x94], 1
lea eax, [edi + 1]
cmp dword [ebx + 0x2c], 0
je 0x73f97c
or eax, 2
mov dword [ecx + 0x94], eax
cmp dword [ebx + 0x30], 0
je 0x73f98b
or eax, 4
mov dword [ecx + 0x94], eax
cmp dword [ebx + 0x38], 0
je 0x73f99a
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.007a0961
mov dword [ebx + 0x474], 0
add esp, 4
mov dword [ebx + 0x470], 0
mov ecx, dword [ebx + 0x44c]
test ecx, ecx
je 0x73fa1c
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 0x73fa6b
nop dword [eax + eax]
mov eax, dword [ebx + 0x450]
push eax
mov esi, dword [eax]
call fcn.007a0961
add esp, 4
mov dword [ebx + 0x450], esi
test esi, esi
jne 0x73fa50
mov ecx, dword [ebx + 0x464]
test ecx, ecx
je 0x73fa7d
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 0x73facb
nop dword [eax]
mov eax, dword [ebx + 0x468]
push eax
mov esi, dword [eax]
call fcn.007a0961
add esp, 4
mov dword [ebx + 0x468], esi
test esi, esi
jne 0x73fab0
push dword [ebx + 0x14]
call fcn.007a0961
add esp, 4
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
push ebx
call fcn.007a0961
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret