Function at 0x42907b
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xac
push ebx
push ebp
push esi
push edi
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x5d4b58]
and dword [eax + 0x20], 0
call fcn.0041fa44
call fcn.00421ee9
cmp dword [0x5d4c68], 0xf
mov ecx, 0x5d4c54
push 0x80e2
cmova ecx, dword [0x5d4c54]
xor edx, edx
call fcn.0044ceef
pop ecx
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x86]
call fcn.0042d8db
push ecx
push 0x1b
lea ecx, [esp + 0x40]
mov esi, eax
call fcn.0042a75b
xor edx, edx
mov ax, word [edx + esi + 2]
xor ax, word [esi]
cmp dword [esp + 0x4c], 7
movzx ecx, ax
lea eax, [esp + 0x38]
cmova eax, dword [esp + 0x38]
mov word [edx + eax], cx
add edx, 2
cmp edx, 0x36
jb 0x4290e1
cmp dword [esp + 0x4c], 7
lea ecx, [esp + 0x38]
cmova ecx, dword [esp + 0x38]
call fcn.0043460c
lea ecx, [esp + 0x38]
mov bl, al
call fcn.0042acea
test bl, bl
je 0x429af0
mov eax, dword [0x5d4b58]
mov eax, dword [eax + 0x3e48]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.0044f68c
mov esi, eax
call fcn.00448c0c
call fcn.00448c29
movss xmm1, dword [esp + 0x10]
lea ecx, [esp + 0x10]
movaps xmm0, xmm1
xorps xmm2, xmm2
addss xmm0, xmm2
movss dword [esp + 0x20], xmm0
xorps xmm0, xmm0
addss xmm0, dword [esp + 0x14]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x496510]
addss xmm1, xmm0
addss xmm0, dword [esp + 0x14]
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x34], xmm0
movaps xmm0, xmmword [0x496780]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [0x496780]
movups xmmword [esp + 0x6c], xmm0
movaps xmm0, xmmword [0x496810]
movups xmmword [esp + 0x54], xmm0
movaps xmm0, xmmword [0x496780]
movups xmmword [esp + 0x38], xmm0
call fcn.00445a80
push eax
lea ecx, [esp + 0x70]
call fcn.00445a80
push eax
lea ecx, [esp + 0x5c]
call fcn.00445a80
push eax
lea ecx, [esp + 0x44]
call fcn.00445a80
push eax
lea eax, [esp + 0x40]
mov ecx, esi
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0046076b
call fcn.0041e7b4
movss xmm1, dword [0x4963b8]
xor ecx, ecx
call fcn.00446a47
xor ebx, ebx
mov dword [esp + 0x20], 0x43eb0000
push ebx
push ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 0x43c80000
xor edx, edx
xor ecx, ecx
push eax
inc edx
call fcn.0044a962
add esp, 0xc
mov esi, 0x5d53b0
mov edi, 0x5d3c24
push 3
pop ebp
test al, al
je 0x4293e2
movss xmm0, dword [0x4964cc]
call fcn.00451947
push esi
mov ecx, edi
mov dword [esp + 0x24], 0x428c0000
mov dword [esp + 0x28], 0x420c0000
call fcn.0042e56c
xor edx, edx
mov byte [esp + 0x14], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [esp + 0x10], dl
xor al, 0xef
mov byte [esp + 0x11], al
mov al, dl
xor al, 0x8e
mov byte [esp + 0x12], al
mov al, dl
xor al, 0x92
mov byte [esp + 0x13], al
mov al, byte [esp + ecx + 0x11]
xor al, dl
mov byte [ecx + 0x5d5230], al
inc ecx
cmp ecx, ebp
jb 0x4292a1
push ecx
lea edx, [esp + 0x24]
mov byte [0x5d5233], bl
mov ecx, 0x5d5230
call fcn.0046921c
pop ecx
test al, al
je 0x4292d6
mov dword [0x49e0c8], 1
movss xmm1, dword [0x496560]
xorps xmm0, xmm0
call fcn.00451866
push esi
mov ecx, edi
mov dword [esp + 0x24], 0x428c0000
mov dword [esp + 0x28], 0x420c0000
call fcn.0042e56c
xor edx, edx
mov byte [esp + 0x14], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [esp + 0x10], dl
xor al, 0xef
mov byte [esp + 0x11], al
mov al, dl
xor al, 0x95
mov byte [esp + 0x12], al
mov al, dl
xor al, 0x84
mov byte [esp + 0x13], al
mov al, byte [esp + ecx + 0x11]
xor al, dl
mov byte [ecx + 0x5d520c], al
inc ecx
cmp ecx, ebp
jb 0x429329
push ecx
lea edx, [esp + 0x24]
mov byte [0x5d520f], bl
mov ecx, 0x5d520c
call fcn.0046921c
pop ecx
test al, al
je 0x42935e
mov dword [0x49e0c8], 2
movss xmm1, dword [0x496560]
xorps xmm0, xmm0
call fcn.00451866
push esi
mov ecx, edi
mov dword [esp + 0x24], 0x428c0000
mov dword [esp + 0x28], 0x420c0000
call fcn.0042e56c
xor edx, edx
mov byte [esp + 0x14], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [esp + 0x10], dl
xor al, 0xef
mov byte [esp + 0x11], al
mov al, dl
xor al, 0x88
mov byte [esp + 0x12], al
mov al, dl
xor al, 0x9b
mov byte [esp + 0x13], al
mov al, byte [esp + ecx + 0x11]
xor al, dl
mov byte [ecx + 0x5d51a4], al
inc ecx
cmp ecx, ebp
jb 0x4293b1
push ecx
lea edx, [esp + 0x24]
mov byte [0x5d51a7], bl
mov ecx, 0x5d51a4
call fcn.0046921c
pop ecx
test al, al
je 0x4293e2
mov dword [0x49e0c8], ebp
call fcn.0044ab75
push ebx
push ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x43eb0000
xor edx, edx
mov dword [esp + 0x2c], 0x43c80000
push eax
inc edx
xor ecx, ecx
call fcn.0044a962
add esp, 0xc
test al, al
je 0x4299db
xorps xmm0, xmm0
call fcn.004519b5
mov eax, dword [0x49e0c8]
cmp eax, 1
jne 0x42942f
call fcn.004317fc
jmp 0x4299db
cmp eax, 2
jne 0x429701
push esi
mov ecx, edi
call fcn.0042e56c
mov ecx, 0x5d5350
mov byte [0x5d5350], bl
call fcn.0046afcc
call fcn.0044f24e
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042d9de
mov edx, ebx
mov cl, byte [eax + edx + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d6790], cl
inc edx
cmp edx, 7
jb 0x429465
push 0x5d4de9
push 0x5d6790
mov byte [0x5d6797], bl
call fcn.00478fa3
cmp byte [0x5d4de9], bl
je 0x4294db
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042da35
mov edx, ebx
mov cl, byte [edx + eax + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d67b8], cl
inc edx
cmp edx, 0xc
jb 0x4294a4
push ecx
push 2
push 0x5d3788
push fcn.0046b670
mov edx, 0x5d4e08
mov byte [0x5d67c4], bl
mov ecx, 0x5d67b8
call fcn.0046b6d0
add esp, 0x10
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042daac
mov edx, ebx
mov cl, byte [eax + edx + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d535c], cl
inc edx
cmp edx, 0xc
jb 0x4294eb
push 0x5d4de8
push 0x5d535c
mov byte [0x5d5368], bl
call fcn.00478fa3
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042db20
mov edx, ebx
mov cl, byte [eax + edx + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d5298], cl
inc edx
cmp edx, 0xb
jb 0x429522
push 0x5d4e0c
push 0x5d5298
mov byte [0x5d52a3], bl
call fcn.00478fa3
cmp byte [0x5d4e0c], bl
je 0x429597
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x40]
call fcn.0042db90
mov edx, ebx
mov cl, byte [edx + eax + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d5254], cl
inc edx
cmp edx, 0x19
jb 0x429561
push ecx
push ebp
push 0x5d3ab0
push fcn.0046b670
mov edx, 0x5d4e20
mov byte [0x5d526d], bl
mov ecx, 0x5d5254
call fcn.0046b6d0
add esp, 0x10
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042dc4e
mov edx, ebx
mov cl, byte [eax + edx + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d536c], cl
inc edx
cmp edx, 0xd
jb 0x4295a7
mov edx, 0x5d4e15
mov byte [0x5d5379], bl
mov ecx, 0x5d536c
call fcn.0046a133
cmp byte [0x5d4e15], bl
je 0x4296df
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042dcc6
mov edx, ebx
mov cl, byte [edx + eax + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d6740], cl
inc edx
cmp edx, 9
jb 0x4295ea
push ecx
push ecx
lea eax, [esp + 0x38]
mov byte [0x5d6749], bl
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x3c], 0x5d
push eax
push 0x5d3aac
mov ecx, 0x5d6740
mov dword [esp + 0x24], 0x32
call fcn.0046c829
add esp, 0x14
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
call fcn.0042dd24
mov edx, ebx
mov cl, byte [edx + eax + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d5278], cl
inc edx
cmp edx, 6
jb 0x429640
mov edx, 0x5d4dec
mov byte [0x5d527e], bl
mov ecx, 0x5d5278
call fcn.0046a133
push esi
mov ecx, edi
call fcn.0042e56c
xor edx, edx
mov byte [esp + 0x14], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [esp + 0x10], dl
xor al, 0x46
mov byte [esp + 0x11], al
mov al, dl
xor al, 0x6f
mov byte [esp + 0x12], al
mov al, dl
xor al, 0x76
mov byte [esp + 0x13], al
mov al, byte [esp + ecx + 0x11]
xor al, dl
mov byte [ecx + 0x5d5200], al
inc ecx
cmp ecx, ebp
jb 0x42969a
push ecx
push ecx
lea eax, [esp + 0x18]
mov byte [0x5d5203], bl
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x1c], 0x5dc
push eax
push 0x5d3640
mov ecx, 0x5d5200
mov dword [esp + 0x44], 0x32
call fcn.0046c829
add esp, 0x14
call fcn.0044f2a2
push esi
mov ecx, edi
call fcn.0042e56c
mov ecx, 0x5d5198
mov byte [0x5d5198], bl
call fcn.0046afcc
jmp 0x4299db
cmp eax, ebp
jne 0x4299d1
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x40]
call fcn.0042d66d
mov edx, ebx
mov cl, byte [eax + edx + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d51c4], cl
inc edx
cmp edx, 0xf
jb 0x429719
mov ecx, 0x5d51c4
mov byte [0x5d51d3], bl
call fcn.0046afcc
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x40]
call fcn.0042d6f0
push ecx
push 7
lea ecx, [esp + 0x5c]
mov esi, eax
call fcn.0042a75b
mov edx, ebx
mov ax, word [esi + edx + 2]
xor ax, word [esi]
cmp dword [esp + 0x68], 7
movzx ecx, ax
lea eax, [esp + 0x54]
cmova eax, dword [esp + 0x54]
mov word [eax + edx], cx
add edx, 2
cmp edx, 0xe
jb 0x429759
cmp dword [esp + 0x68], 7
lea ecx, [esp + 0x54]
cmova ecx, dword [esp + 0x54]
call fcn.0043460c
lea ecx, [esp + 0x54]
mov bl, al
call fcn.0042acea
push dword [esp + 0x10]
push ecx
test bl, bl
je 0x429881
lea ecx, [esp + 0x28]
call fcn.0042d756
xor ebx, ebx
mov edx, ebx
mov cl, byte [edx + eax + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d52ac], cl
inc edx
cmp edx, 0xb
jb 0x4297b6
movaps xmm0, xmmword [0x496850]
lea esi, [esp + 0x38]
movups xmmword [esp + 0x38], xmm0
lea edi, [esp + 0x20]
mov byte [0x5d52b7], bl
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x20]
push 0x15
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004469af
mov esi, 0x5d53b0
mov dword [esp + 0x20], 0x41f00000
mov edi, 0x5d3c24
mov dword [esp + 0x24], 0x41f00000
push esi
mov ecx, edi
call fcn.0042e56c
xor edx, edx
mov byte [esp + 0x14], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [esp + 0x10], dl
xor al, 0xef
mov byte [esp + 0x11], al
mov al, dl
xor al, 0x88
mov byte [esp + 0x12], al
mov al, dl
xor al, 0x9b
mov byte [esp + 0x13], al
mov al, byte [esp + ecx + 0x11]
xor al, dl
mov byte [ecx + 0x5d6778], al
inc ecx
cmp ecx, ebp
jb 0x42983f
push ecx
lea edx, [esp + 0x24]
mov byte [0x5d677b], bl
mov ecx, 0x5d6778
call fcn.0046921c
movss xmm1, dword [0x496560]
xorps xmm0, xmm0
pop ecx
call fcn.00451866
push ecx
mov ecx, 0x5d52ac
jmp 0x429954
lea ecx, [esp + 0x18]
call fcn.0042d7c5
xor ebx, ebx
mov edx, ebx
mov cl, byte [edx + eax + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d5240], cl
inc edx
cmp edx, 0xc
jb 0x42988e
movaps xmm0, xmmword [0x496840]
lea esi, [esp + 0x38]
movups xmmword [esp + 0x38], xmm0
lea edi, [esp + 0x20]
mov byte [0x5d524c], bl
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x20]
push 0x15
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004469af
mov esi, 0x5d53b0
mov dword [esp + 0x20], 0x41f00000
mov edi, 0x5d3c24
mov dword [esp + 0x24], 0x41f00000
push esi
mov ecx, edi
call fcn.0042e56c
xor edx, edx
mov byte [esp + 0x14], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [esp + 0x10], dl
xor al, 0xef
mov byte [esp + 0x11], al
mov al, dl
xor al, 0x88
mov byte [esp + 0x12], al
mov al, dl
xor al, 0x9b
mov byte [esp + 0x13], al
mov al, byte [esp + ecx + 0x11]
xor al, dl
mov byte [ecx + 0x5d51dc], al
inc ecx
cmp ecx, ebp
jb 0x429917
push ecx
lea edx, [esp + 0x24]
mov byte [0x5d51df], bl
mov ecx, 0x5d51dc
call fcn.0046921c
movss xmm1, dword [0x496560]
xorps xmm0, xmm0
pop ecx
call fcn.00451866
push ecx
mov ecx, 0x5d5240
and dword [esp + 0x24], ebx
lea edx, [esp + 0x24]
and dword [esp + 0x28], ebx
call fcn.0046921c
pop ecx
xor ecx, ecx
inc ecx
call fcn.004469f7
call fcn.0044f24e
push dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x40]
call fcn.0042d838
mov edx, ebx
mov cl, byte [edx + eax + 1]
xor cl, byte [eax]
mov byte [edx + 0x5d674c], cl
inc edx
cmp edx, 0x13
jb 0x429983
push 0x5d4e15
push 0x5d674c
mov byte [0x5d675f], bl
call fcn.00478fa3
call fcn.0044f2a2
push esi
mov ecx, edi
call fcn.0042e56c
mov ecx, 0x5d5398
mov byte [0x5d5398], bl
call fcn.0046afcc
xorps xmm0, xmm0
call fcn.00451a09
jmp 0x4299db
cmp eax, 6
jne 0x4299db
call fcn.00430a7e
call fcn.0044ab75
push ebx
push ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x43eb0000
push eax
mov edx, ebp
mov dword [esp + 0x30], 0x42a00000
xor ecx, ecx
call fcn.0044a962
add esp, 0xc
test al, al
je 0x429adc
lea ecx, [esp + 0x20]
call fcn.00451c44
movss xmm1, dword [eax + 4]
mov eax, dword [0x5d4b58]
subss xmm1, dword [0x4964ac]
mov eax, dword [eax + 0x3e48]
mulss xmm1, dword [0x496378]
movss xmm0, dword [eax + 0xf4]
subss xmm0, dword [eax + 0x18]
addss xmm0, dword [eax + 0x7c]
addss xmm0, xmm1
call fcn.0045197e
call fcn.00421820
call fcn.0046a8ee
push esi
mov ecx, edi
mov dword [esp + 0x24], 0x42200000
mov dword [esp + 0x28], 0x41f00000
call fcn.0042e56c
xor edx, edx
mov byte [esp + 0x14], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [esp + 0x10], dl
xor al, 0xef
mov byte [esp + 0x11], al
mov al, dl
xor al, 0x80
mov byte [esp + 0x12], al
mov al, dl
xor al, 0x91
mov byte [esp + 0x13], al
mov al, byte [esp + ecx + 0x11]
xor al, dl
mov byte [ecx + 0x5d532c], al
inc ecx
cmp ecx, ebp
jb 0x429a9c
push ecx
lea edx, [esp + 0x24]
mov byte [0x5d532f], bl
mov ecx, 0x5d532c
call fcn.0046921c
pop ecx
test al, al
jne 0x429af0
movss xmm1, dword [0x496560]
xorps xmm0, xmm0
call fcn.00451866
call fcn.00421080
call fcn.0044ab75
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
jmp fcn.0044ecc6
call fcn.0042173f
int3