Function at 0x44d3a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cd1f3
mov eax, dword fs:[0]
push eax
sub esp, 0x39c
mov eax, dword [0x524ee0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3a4], ecx
mov eax, dword [ebp + 8]
mov ebx, dword [0x526340]
mov dword [ebp - 0x3a8], eax
mov eax, ebx
imul eax, ebx
cdq
mov ecx, 5
idiv ecx
cmp edx, 2
jne 0x44d40a
xor esi, esi
mov edi, ebx
lea esp, [esp]
inc esi
dec edi
cmp esi, 0xe0
jb 0x44d400
mov ebx, dword [ebp - 0x3a4]
push dword [ebp - 0x3a8]
mov ecx, ebx
call fcn.0042e750
mov esi, eax
test esi, esi
je 0x44d43b
call fcn.00450f10
test al, al
jne 0x44d434
push 0
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov eax, esi
jmp 0x44da9d
push ecx
mov ecx, esp
push str.c38b89839f899e9a858f89999e80d1
call fcn.00401ff0
lea eax, [ebp - 0x394]
push eax
call fcn.00451b30
push eax
lea ecx, [ebx + 0x10]
push ecx
lea eax, [ebp - 0x3a0]
push eax
mov dword [ebp - 4], 0
call fcn.00451910
add esp, 0x14
mov ecx, dword [eax]
mov esi, dword [ebx + 0x90]
lea eax, [ecx - 0x10]
sub esi, 0x10
or edi, 0xffffffff
mov byte [ebp - 4], 1
mov dword [ebp - 0x39c], eax
cmp eax, esi
je 0x44d4e4
cmp dword [esi + 0xc], 0
jl 0x44d4d5
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x44d4d5
push dword [ebp - 0x39c]
call fcn.004047d0
mov dword [ebp - 0x39c], eax
add esp, 4
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d4c4
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x39c]
add eax, 0x10
mov dword [ebx + 0x90], eax
jmp 0x44d4e4
push dword [ecx - 0xc]
push ecx
lea ecx, [ebx + 0x90]
call fcn.00409670
mov edx, dword [ebp - 0x3a0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d507
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x394]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d52d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push str.c3999c888d9889869f83828883818d8582d1
call fcn.00401ff0
lea eax, [ebp - 0x39c]
push eax
call fcn.00451b30
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ebp - 0x3a0]
push eax
mov dword [ebp - 4], 2
call fcn.00451910
add esp, 0x14
mov ecx, dword [eax]
mov esi, dword [ebx + 0x94]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov byte [ebp - 4], 3
mov dword [ebp - 0x394], eax
cmp eax, esi
je 0x44d5d3
cmp dword [esi + 0xc], 0
jl 0x44d5c4
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x44d5c4
push dword [ebp - 0x394]
call fcn.004047d0
mov dword [ebp - 0x394], eax
add esp, 4
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d5b3
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x394]
add eax, 0x10
mov dword [ebx + 0x94], eax
jmp 0x44d5d3
push dword [ecx - 0xc]
push ecx
lea ecx, [ebx + 0x94]
call fcn.00409670
mov edx, dword [ebp - 0x3a0]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d5f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x39c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d61c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [0x526340]
mov ecx, 0xc
lea eax, [esi + 1]
imul eax, esi
cdq
idiv ecx
cmp edx, 9
jne 0x44d6c3
xor edx, edx
jmp 0x44d640
mov ecx, edx
and ecx, 1
dec ecx
not ecx
and ecx, esi
mov eax, edx
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, esi
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, esi
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, esi
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, esi
sar ecx, 1
xor eax, ecx
inc edx
add esi, eax
cmp edx, 0x100
jl 0x44d640
mov dword [0x526340], esi
mov eax, dword [0x524ab0]
push ecx
mov esi, esp
mov ecx, 0x524ab0
mov dword [ebp - 0x394], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.c3999c888d98899e9a899e9f858382d1
mov dword [ebp - 4], 4
test eax, 0xffff0000
jne 0x44d716
movzx eax, ax
push 0
push eax
call fcn.00403b10
add esp, 8
test eax, eax
je 0x44d724
mov edx, str.c3999c888d98899e9a899e9f858382d1
movzx ecx, dx
push ecx
push eax
mov ecx, esi
call fcn.004074c0
jmp 0x44d724
push 0x20
push str.c3999c888d98899e9a899e9f858382d1
mov ecx, esi
call fcn.00409670
lea eax, [ebp - 0x39c]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.00451b30
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ebp - 0x3a0]
push eax
mov dword [ebp - 4], 5
call fcn.00451910
add esp, 0x14
mov ecx, dword [eax]
mov esi, dword [ebx + 0x98]
lea eax, [ecx - 0x10]
sub esi, 0x10
mov byte [ebp - 4], 6
mov dword [ebp - 0x394], eax
cmp eax, esi
je 0x44d7c4
cmp dword [esi + 0xc], 0
jl 0x44d7b5
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x44d7b5
push dword [ebp - 0x394]
call fcn.004047d0
mov dword [ebp - 0x394], eax
add esp, 4
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d7a4
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x394]
add eax, 0x10
mov dword [ebx + 0x98], eax
jmp 0x44d7c4
push dword [ecx - 0xc]
push ecx
lea ecx, [ebx + 0x98]
call fcn.00409670
mov edx, dword [ebp - 0x3a0]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d7e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x39c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d80d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x524ab0]
push ecx
mov esi, esp
mov ecx, 0x524ab0
mov dword [ebp - 0x3a0], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.c3999f899e988d9f87
mov dword [ebp - 4], 7
test eax, 0xffff0000
jne 0x44d860
movzx eax, ax
push 0
push eax
call fcn.00403b10
add esp, 8
test eax, eax
je 0x44d86e
mov edx, str.c3999f899e988d9f87
movzx ecx, dx
push ecx
push eax
mov ecx, esi
call fcn.004074c0
jmp 0x44d86e
push 0x12
push str.c3999f899e988d9f87
mov ecx, esi
call fcn.00409670
lea eax, [ebp - 0x394]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.00451b30
mov ecx, dword [eax]
add esp, 8
test ecx, ecx
jne 0x44d88f
or eax, 0xffffffff
jmp 0x44d8b9
mov esi, dword [ebp - 0x3a8]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jge 0x44d8a2
or eax, 0xffffffff
jmp 0x44d8b9
push ecx
push eax
call fcn.004a9f2f
add esp, 8
test eax, eax
jne 0x44d8b5
or eax, 0xffffffff
jmp 0x44d8b9
sub eax, dword [esi]
sar eax, 1
mov edx, dword [ebp - 0x394]
cmp eax, 0xffffffff
setne al
add edx, 0xfffffff0
mov byte [ebx + 0x9c], al
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44d8e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00451050
test al, al
jne 0x44d90e
mov eax, dword [0x526340]
xor esi, esi
test eax, eax
je 0x44d906
mov ecx, eax
cdq
and ecx, 1
sub eax, edx
add esi, ecx
sar eax, 1
jne 0x44d8f8
mov dword [0x526340], esi
jmp 0x44d914
mov esi, dword [0x526340]
imul esi, esi
mov eax, esi
cdq
mov ecx, 0x16
idiv ecx
mov byte [ebp - 0x395], 0
cmp edx, 8
jne 0x44d96c
push 0x28
call fcn.004a7aa0
add esp, 4
mov ebx, eax
xor esi, esi
jmp 0x44d940
call fcn.004a96f9
add eax, dword [0x526340]
inc esi
mov dword [ebx + esi*4 - 4], eax
cmp esi, 0xa
jl 0x44d940
mov eax, dword [ebx + 0x24]
push ebx
mov dword [0x526340], eax
call fcn.004a98f0
mov ebx, dword [ebp - 0x3a4]
add esp, 4
mov eax, dword [0x524ab0]
push ecx
mov esi, esp
mov ecx, 0x524ab0
mov dword [ebp - 0x394], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, str.c39e9982999c888d98899e
mov dword [ebp - 4], 8
test eax, 0xffff0000
jne 0x44d9bf
movzx eax, ax
push 0
push eax
call fcn.00403b10
add esp, 8
test eax, eax
je 0x44d9cd
mov edx, str.c39e9982999c888d98899e
movzx ecx, dx
push ecx
push eax
mov ecx, esi
call fcn.004074c0
jmp 0x44d9cd
push 0x16
push str.c39e9982999c888d98899e
mov ecx, esi
call fcn.00409670
lea eax, [ebp - 0x3a4]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.00451b30
mov ecx, dword [eax]
add esp, 8
test ecx, ecx
jne 0x44d9ee
or eax, 0xffffffff
jmp 0x44da14
mov eax, dword [ebx + 0x10]
cmp dword [eax - 0xc], 0
jge 0x44d9fc
or eax, 0xffffffff
jmp 0x44da14
push ecx
push eax
call fcn.004a9f2f
add esp, 8
test eax, eax
jne 0x44da0f
or eax, 0xffffffff
jmp 0x44da14
sub eax, dword [ebx + 0x10]
sar eax, 1
mov edx, dword [ebp - 0x3a4]
test eax, eax
setns byte [ebp - 0x396]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x44da3a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x396], 0
je 0x44da53
mov ecx, ebx
call fcn.0044b370
test al, al
sete byte [ebp - 0x395]
mov eax, dword [ebx + 0x70]
mov ecx, str.task
jmp 0x44da60
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44da86
test dx, dx
je 0x44da82
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44da86
add eax, 4
add ecx, 4
test dx, dx
jne 0x44da60
xor eax, eax
jmp 0x44da8b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x44da96
mov ecx, ebx
call fcn.0042d2e0
movzx eax, byte [ebp - 0x395]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a8b24
mov esp, ebp
pop ebp
ret 4