Function at 0x42d100
Capabilities:
Encode data using xor
Move file

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7f8170
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xf8
mov eax, dword [0x90df34]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0xf4], esi
mov eax, dword [esi + 0xc]
mov dword [esi + 0x18], 1
test eax, eax
jne 0x42d167
call fcn.0064ba80
mov dword [esi + 0xc], eax
test eax, eax
je 0x42dbee
mov eax, dword [0x1808d24]
cmp dword [eax + 0x7b8], 0
je 0x42d1dd
lea edi, [esi + 0x70]
mov dword [0x1808d1c], 1
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x42d18c
mov eax, dword [edi]
push eax
call dword [0x8116c8]
test eax, eax
jne 0x42d1b4
cmp dword [edi + 0x14], 0x10
jb 0x42d19f
mov edi, dword [edi]
cmp dword [esi + 0x6c], 0x10
lea eax, [esi + 0x58]
jb 0x42d1aa
mov eax, dword [eax]
push edi
push eax
call fcn.006b37eb
add esp, 8
mov eax, dword [0x1808d20]
mov dword [esi + 0x18], 5
test eax, eax
je 0x42dc2d
push 0x1808d1c
push 0x81f7
push 0x81f4
push eax
jmp 0x42dc27
mov ecx, esi
call fcn.0042cdd0
xorps xmm0, xmm0
comisd xmm0, xmmword [esi + 0x88]
jb 0x42d269
cmp dword [esi + 0x3c], 8
lea eax, [esi + 0x28]
jb 0x42d1fc
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x40]
call fcn.0040d990
sub esp, 0x18
mov dword [ebp - 4], 0
mov eax, esp
lea ecx, [ebp - 0x40]
push ecx
push eax
call fcn.0042c8e0
call fcn.0042cae0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
movsd qword [esi + 0x88], xmm0
cmp edx, 8
jb 0x42d269
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42d25f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42dc4b
push edx
push ecx
call fcn.0059a5db
add esp, 8
cmp dword [esi + 0x84], 0x10
lea edi, [esi + 0x70]
mov eax, edi
jb 0x42d279
mov eax, dword [edi]
push eax
call dword [0x8116c8]
test eax, eax
je 0x42d2ce
sub esp, 0x18
mov ecx, esp
push edi
call fcn.004056a0
call fcn.00415580
add esp, 0x18
ucomisd xmm0, qword [esi + 0x88]
lahf
test ah, 0x44
jp 0x42d2bf
mov dword [0x1808d1c], 1
push 0
push 5
mov ecx, esi
call fcn.0042ca30
jmp 0x42dc2d
cmp dword [edi + 0x14], 0x10
jb 0x42d2c7
mov edi, dword [edi]
push edi
call dword [0x811344]
movsd xmm4, qword [esi + 0x88]
xorps xmm0, xmm0
comisd xmm0, xmm4
jb 0x42d310
cmp dword [0x1808d20], 0
mov dword [esi + 0x18], 4
je 0x42dc2d
push 4
call fcn.00468e50
add esp, 4
test eax, eax
je 0x42dc14
mov dword [eax], 0x82
jmp 0x42dc16
cmp dword [esi + 0x68], 0
lea edi, [esi + 0x58]
mov ecx, dword [0x18021f4]
jne 0x42d5a4
movups xmm0, xmmword [0x8d3900]
movups xmmword [ebp - 0x70], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x42d4cd
xor edx, edx
mov dword [ebp - 0xec], edx
cmp ecx, 2
jl 0x42d493
movaps xmm5, xmmword [0x8d6c60]
mov eax, 5
movaps xmm3, xmmword [0x8d6d00]
xor ecx, ecx
movaps xmm7, xmmword [0x8d6c90]
movd xmm6, eax
mov eax, 0x1f
movd xmm0, eax
movups xmmword [ebp - 0x40], xmm0
movaps xmm0, xmmword [0x8d6ce0]
movaps xmmword [ebp - 0x60], xmm0
mov edx, dword [ebp - 0x60]
nop dword [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm5
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm6
movaps xmm0, xmm1
psrld xmm0, xmmword [ebp - 0x40]
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d6cc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x70]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x70], xmm1
paddd xmm2, xmm5
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm6
movaps xmm0, xmm1
psrld xmm0, xmmword [ebp - 0x40]
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d6cc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x6c]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x6c], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x42d390
jmp 0x42d4cd
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0xec]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xec]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0x70], cl
inc edx
mov dword [ebp - 0xec], edx
cmp edx, 0x10
jl 0x42d493
sub esp, 8
lea eax, [ebp - 0x70]
movsd qword [esp], xmm4
push dword [esi + 0x24]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.00413cb0
add esp, 0x14
lea ecx, [esi + 0x40]
mov dword [ebp - 4], 1
cmp dword [ecx + 0x14], 0x10
mov edx, dword [ecx + 0x10]
jb 0x42d4fd
mov ecx, dword [ecx]
push edx
push ecx
push 0
mov ecx, eax
call fcn.0042de00
mov ecx, edi
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x40], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x40]
push eax
movq qword [ebp - 0x30], xmm0
call fcn.00404ca0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x42d569
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42d55f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42dc50
push edx
push ecx
call fcn.0059a5db
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x4c]
cmp edx, 0x10
jb 0x42d5a4
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42d59a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42dc55
push edx
push ecx
call fcn.0059a5db
add esp, 8
sub esp, 0x18
mov ecx, esp
push edi
call fcn.004056a0
call fcn.00415580
add esp, 0x18
movsd qword [esi + 0x10], xmm0
comisd xmm0, xmmword [esi + 0x88]
jae 0x42d2a5
cmp byte [0x8d38ff], 0
mov eax, dword [0x8d38fc]
mov dword [ebp - 0xec], eax
je 0x42d6cd
xor edx, edx
cmp dword [0x18021f4], 2
mov dword [ebp - 0xf0], edx
jl 0x42d690
movups xmm3, xmmword [0x8d6c60]
mov ecx, 5
movaps xmm2, xmm3
movaps xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x8d6d00]
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x8d6d00]
shufps xmm2, xmm0, 0xdd
movd xmm0, ecx
paddd xmm2, xmm3
psrad xmm2, xmm0
mov ecx, 0x1f
movaps xmm1, xmm2
movd xmm0, ecx
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x8d6c90]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d6cc0]
packuswb xmm1, xmm1
paddb xmm1, xmmword [0x8d6ce0]
movd xmm0, eax
pxor xmm1, xmm0
movd dword [ebp - 0xec], xmm1
jmp 0x42d6cd
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0xf0]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf0]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xec], cl
inc edx
mov dword [ebp - 0xf0], edx
cmp edx, 4
jl 0x42d690
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x42d6d7
mov eax, dword [edi]
lea ecx, [ebp - 0xec]
push ecx
push eax
call fcn.006b2882
add esp, 8
mov dword [esi], eax
test eax, eax
jne 0x42d71d
mov dword [esi + 0x18], 4
cmp dword [0x1808d20], eax
je 0x42dc2d
push 4
call fcn.00468e50
add esp, 4
test eax, eax
je 0x42dc14
mov dword [eax], 0x81
jmp 0x42dc16
cmp dword [esi + 0x3c], 8
lea eax, [esi + 0x24]
mov dword [ebp - 0x104], eax
lea edi, [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x100], eax
lea eax, [esi + 0x88]
mov dword [ebp - 0xfc], eax
lea eax, [esi + 0x28]
mov dword [ebp - 0xf8], edi
jb 0x42d74f
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x60]
call fcn.0040d990
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0042c8e0
cmp dword [eax + 0x14], 0x10
jb 0x42d774
mov eax, dword [eax]
push eax
push 0x2712
push dword [esi + 0xc]
call fcn.0064f030
mov edx, dword [ebp - 0x2c]
add esp, 0xc
cmp edx, 0x10
jb 0x42d7b9
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42d7af
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42dc5a
push edx
push ecx
call fcn.0059a5db
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 8
jb 0x42d80c
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42d802
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42dc5f
push edx
push ecx
call fcn.0059a5db
add esp, 8
push 0
push 0xd
push dword [esi + 0xc]
call fcn.0064f030
push 0x258
push 0x4e
push dword [esi + 0xc]
call fcn.0064f030
push esi
push 0x2711
push dword [esi + 0xc]
call fcn.0064f030
push 0x42c350
push 0x4e2b
push dword [esi + 0xc]
call fcn.0064f030
push 0
push 0x2b
push dword [esi + 0xc]
call fcn.0064f030
push 0x42c380
push 0x4e58
push dword [esi + 0xc]
call fcn.0064f030
add esp, 0x48
lea eax, [ebp - 0x104]
push eax
push 0x2749
push dword [esi + 0xc]
call fcn.0064f030
cvttsd2si eax, qword [edi]
push eax
push 0x15
push dword [esi + 0xc]
call fcn.0064f030
push 0
push 0x40
push dword [esi + 0xc]
call fcn.0064f030
push 0
push 0x51
push dword [esi + 0xc]
call fcn.0064f030
push 1
push 0x34
push dword [esi + 0xc]
call fcn.0064f030
add esp, 0x3c
cmp dword [esi + 0xd8], 0
je 0x42d98d
cmp dword [esi + 0xdc], 8
lea eax, [esi + 0xc8]
jb 0x42d8d0
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x60]
call fcn.0040d990
lea eax, [ebp - 0x60]
mov dword [ebp - 4], 3
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0042c8e0
cmp dword [eax + 0x14], 0x10
jb 0x42d8f5
mov eax, dword [eax]
push eax
push 0x2720
push dword [esi + 0xc]
call fcn.0064f030
mov edx, dword [ebp - 0x2c]
add esp, 0xc
cmp edx, 0x10
jb 0x42d93a
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42d930
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42dc64
push edx
push ecx
call fcn.0059a5db
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 8
jb 0x42d98d
mov ecx, dword [ebp - 0x60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42d983
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42dc69
push edx
push ecx
call fcn.0059a5db
add esp, 8
xor edx, edx
lea edi, [ebp - 0xe8]
cmp dword [0x18021f4], 2
mov ecx, 0x1d
mov esi, 0x8d2b98
mov dword [ebp - 0xec], edx
rep movsd dword es:[edi], dword [esi]
jl 0x42db10
movaps xmm0, xmmword [0x8d6ce0]
mov eax, 5
movaps xmm4, xmmword [0x8d6c60]
movaps xmm3, xmmword [0x8d6d00]
movaps xmm6, xmmword [0x8d6c90]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x60], xmm0
mov ecx, dword [ebp - 0x60]
movd xmm7, eax
nop dword [eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d6cc0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xe8]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0xe8], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d6cc0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0xe4]
pxor xmm1, xmm0
movd dword [ebp + edx - 0xe4], xmm1
add edx, 8
cmp edx, 0x70
jl 0x42d9f0
mov dword [ebp - 0xec], edx
cmp edx, 0x74
jge 0x42db4d
nop word [eax + eax]
mov eax, 0x8d3dcb09
imul edx
add edx, dword [ebp - 0xec]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xec]
movsx eax, al
mov cl, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x33
xor byte [ebp + edx - 0xe8], cl
inc edx
mov dword [ebp - 0xec], edx
cmp edx, 0x74
jl 0x42db10
mov esi, dword [ebp - 0xf4]
lea eax, [ebp - 0xe8]
push eax
push 0x2722
push dword [esi + 0xc]
call fcn.0064f030
push dword [esi + 0xc]
call fcn.0064bac0
push dword [esi]
mov edi, eax
call fcn.006adea6
add esp, 0x14
test edi, edi
je 0x42d2af
cmp edi, 0x17
jne 0x42dbcc
cmp dword [esi + 0x18], 3
jne 0x42dba6
cmp dword [esi + 0x68], 0
je 0x42dba6
cmp dword [esi + 0x6c], 0x10
lea eax, [esi + 0x58]
jb 0x42db9f
mov eax, dword [eax]
push eax
call dword [0x811344]
cmp dword [0x1808d20], 0
mov dword [esi + 0x18], 4
je 0x42dc2d
push 4
call fcn.00468e50
add esp, 4
test eax, eax
je 0x42dc14
mov dword [eax], 0x17
jmp 0x42dc16
cmp dword [0x1808d20], 0
mov dword [esi + 0x18], 4
je 0x42dc2d
push 4
call fcn.00468e50
add esp, 4
test eax, eax
je 0x42dc14
mov dword [eax], edi
jmp 0x42dc16
cmp dword [0x1808d20], 0
mov dword [esi + 0x18], 4
je 0x42dc2d
push 4
call fcn.00468e50
add esp, 4
test eax, eax
je 0x42dc14
mov dword [eax], 0x80
jmp 0x42dc16
xor eax, eax
push eax
push 0x81f8
push 0x81f4
push dword [0x1808d20]
call dword [0x811a50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0059a3cf
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.006a7c79
call fcn.006a7c79
call fcn.006a7c79
call fcn.006a7c79
call fcn.006a7c79
call fcn.006a7c79
call fcn.006a7c79
int3