Function at 0x40ccc4
Capabilities:
Connect pipe
Encode data using xor
Read file on windows
Read pipe
Resolve function by parsing pe exports
Terminate process
Write file on windows
Write pipe

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [0x5af55c], eax
mov edx, 0x4442
mov dword [esp + 0x2c], ecx
mov dword [esp + 4], 0x3e1c
mov dword [esp + 0x14], 0x411b
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
push ebx
mov dword [esp + 0x10], 0x3c66
lea ebx, [edx - 0x7d]
mov dword [esp + 4], ecx
mov eax, dword [esp + 8]
push ebp
push esi
add eax, 0x5c1
mov esi, 0x3d31
mov ebp, 0x4029
push edi
cmp dword [esp + 0x24], eax
je 0x40dab6
mov eax, dword [esp + 0x18]
add eax, 0xfffffbe7
cmp dword [esp + 0x14], eax
jge 0x40d8e6
mov eax, dword [esp + 0x20]
xor eax, edx
cmp dword [esp + 0x18], eax
jg 0x40d068
mov eax, dword [esp + 0x3c]
add eax, edx
cmp dword [esp + 0x10], eax
jg 0x40cf3b
mov eax, dword [esp + 0x20]
add eax, esi
cmp dword [esp + 0x18], eax
jl 0x40ced1
mov eax, dword [0x58f134]
xor esi, esi
inc esi
mov edx, ecx
push 0x10
mov dword [eax + 4], esi
pop eax
mov dword [0x5af4c4], eax
mov dword [0x5af4d4], eax
mov eax, dword [0x58f134]
mov dword [0x5af484], esi
mov dword [0x5af4f4], ecx
mov dword [0x5af518], ecx
mov dword [0x5af44c], ecx
mov dword [0x5af46c], ecx
mov dword [0x5af470], ecx
mov dword [0x5af498], ecx
mov dword [0x5af4b4], esi
mov dword [0x5af4bc], ecx
mov dword [0x5af4c0], ecx
mov dword [0x5af4cc], ecx
mov dword [0x5af4e4], ecx
mov dword [0x5af528], ecx
mov dword [0x5af500], esi
mov dword [0x5af538], esi
mov dword [0x5af53c], esi
mov dword [0x5af464], 0xe
mov dword [0x5af478], 0x61
mov dword [0x5af4a0], 0x42
mov dword [0x5af4b0], 2
mov dword [0x5af4dc], 0x46
mov dword [0x5af524], 0xd
mov dword [eax + 0x100], 0x4c
mov eax, dword [0x5af518]
add eax, 0x15ed16
mov dword [0x5af568], ecx
xor dword [0x5af4b4], eax
mov eax, dword [0x5af4f4]
mov ecx, dword [0x5af484]
add eax, 0x1ba8b7
mov dword [0x5af560], esi
xor ecx, eax
mov dword [0x5af574], esi
mov esi, dword [0x58f134]
mov dword [0x5af54c], edx
mov dword [0x5af550], 0x13
mov dword [0x5af484], ecx
cmp dword [esi + 0x8c], 0x4a38
je 0x40ce93
or dword [0x5af540], 0x1ba747
jmp 0x40ceaf
or dword [esi + 0x100], 0x2800a
mov edx, dword [0x5af54c]
mov ecx, dword [0x5af484]
mov esi, dword [0x58f134]
mov eax, dword [0x5af53c]
add eax, 0xeb68d
xor ecx, eax
sub edx, ecx
mov dword [0x5af484], ecx
add edx, 0x1fde53
xor dword [esi + 0xb4], edx
jmp 0x40cf3b
mov ecx, dword [0x5af540]
or ecx, dword [0x5af46c]
add ecx, dword [0x5af540]
cmp dword [0x5af464], ecx
jne 0x40cf3b
mov edx, dword [0x5af4b4]
jmp 0x40cf1c
mov ecx, dword [0x5af528]
jmp 0x40cf09
mov eax, dword [esp + 0x14]
xor eax, 0x18
add dword [esp + 0x3c], eax
add ecx, 4
mov eax, dword [esp + 0x1c]
or eax, dword [0x5af4f4]
add eax, esi
cmp ecx, eax
jae 0x40cefb
add edx, 3
mov eax, dword [0x58f134]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x124]
add ecx, eax
mov eax, dword [0x58f134]
mov eax, dword [eax + 0x24]
or eax, ecx
cmp edx, eax
ja 0x40cef3
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x14]
jle 0x40cff0
mov ecx, dword [0x58f134]
mov eax, dword [0x5af500]
cmp eax, dword [ecx + 0x128]
jbe 0x40cf68
add dword [0x5af524], 0x74ac9
jmp 0x40cf7a
add eax, 0xfffdca5a
imul eax, dword [ecx + 0xe4]
mov dword [ecx + 0xe4], eax
add dword [esp + 0x18], 0x47
mov eax, dword [0x5af568]
mov edx, dword [0x58f134]
add eax, 0x1597d6
or dword [0x5af54c], eax
mov eax, dword [edx + 0x7c]
cmp eax, dword [0x5af4e4]
jbe 0x40cfb6
mov eax, dword [0x5af560]
xor eax, dword [0x5af500]
add dword [edx + 0xc], eax
mov edx, dword [0x58f134]
jmp 0x40cfc5
mov eax, dword [0x5af4c4]
xor eax, 0x1ecd
mov dword [0x5af548], eax
mov eax, dword [0x5af4b4]
cmp eax, dword [0x5af538]
jb 0x40cfe8
mov eax, dword [0x5af464]
add eax, 0x17563b
add eax, dword [0x5af500]
add dword [edx + 0x110], eax
xor dword [esp + 0x10], 0x476b
mov eax, dword [0x5af524]
mov edx, dword [0x58f134]
add eax, 0x2983
add eax, dword [0x5af53c]
xor dword [edx + 0x7c], eax
mov eax, dword [0x5af4dc]
mov ecx, dword [0x58f134]
cmp eax, dword [0x5af4a0]
jbe 0x40d02f
mov eax, 0xfff54e28
sub eax, dword [ecx + 0x94]
add dword [0x5af538], eax
jmp 0x40d041
mov eax, dword [ecx + 0xf8]
xor eax, dword [0x5af464]
sub dword [0x5af538], eax
mov eax, 0x15918d
sub eax, dword [0x5af54c]
add dword [0x5af548], eax
mov eax, dword [ecx + 0x9c]
sub eax, dword [0x5af4d4]
add eax, 0x1bf751
mov dword [0x5af4f4], eax
mov eax, dword [esp + 0x24]
xor eax, 0x132
cmp dword [esp + 0x10], eax
je 0x40d5c6
mov eax, dword [esp + 0x20]
add eax, 0x416d
cmp dword [esp + 0x24], eax
jg 0x40d43d
mov eax, dword [esp + 0x18]
add eax, 0x238
cmp dword [esp + 0x24], eax
jg 0x40d169
mov edx, dword [0x58f134]
cmp dword [edx + 0xa4], 0x10850
jbe 0x40d0ce
mov eax, dword [0x5af498]
add eax, 0x21c96
add eax, dword [edx + 0x9c]
add dword [edx + 0x38], eax
mov edx, dword [0x58f134]
jmp 0x40d0d8
add dword [0x5af548], 0x6214d
mov eax, dword [edx + 0x38]
cmp eax, dword [0x5af484]
ja 0x40d0f5
mov eax, dword [0x5af550]
add eax, 0x17ff1
or dword [0x5af4a0], eax
jmp 0x40d106
mov eax, dword [0x5af470]
xor eax, dword [0x5af46c]
add dword [0x5af518], eax
mov ecx, dword [0x5af538]
cmp dword [0x5af4b0], ecx
je 0x40d129
mov eax, dword [0x5af4c4]
add eax, 0x2efb
mov dword [edx + 0xc], eax
mov edx, dword [0x58f134]
jmp 0x40d13c
mov eax, 0xfffd309c
sub eax, dword [0x5af478]
add ecx, eax
mov dword [0x5af538], ecx
mov eax, dword [0x5af574]
xor eax, 0xf6f15
mov dword [edx + 0x2c], eax
mov eax, dword [0x58f134]
mov eax, dword [eax + 0xe4]
xor eax, dword [0x5af548]
xor eax, 0x338fe
mov dword [0x5af548], eax
jmp 0x40d2c4
mov eax, dword [0x58f134]
mov eax, dword [eax + 0xfc]
xor eax, dword [0x5af46c]
cmp dword [esp + 0x3c], eax
jne 0x40d2c4
mov ecx, dword [esp + 0x3c]
jmp 0x40d2a7
mov edx, dword [esp + 0x18]
mov eax, dword [0x58f134]
mov ecx, dword [esp + 0x3c]
imul edx, dword [0x5af490]
imul ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x1c]
sub eax, dword [0x5af564]
xor edx, dword [0x5af540]
and eax, ebx
push eax
or ecx, dword [0x5af4dc]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
or edi, ebp
mov eax, dword [esp + 0x24]
or esi, 0x3e1c
mov ecx, dword [0x5af4ac]
add edi, 0x3e1c
mov edx, dword [0x5af45c]
sub ecx, eax
mov eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x3c]
and edx, dword [0x5af54c]
mov ebx, dword [0x5af538]
sub edx, ebp
push eax
push ecx
push edx
push esi
push edi
and ebx, 0x20
or ebx, 0x41df
push 0x5af440
push ebx
call fcn.004090dc
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x34]
sub eax, dword [0x5af4bc]
mov ebp, dword [0x58f134]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x30]
or eax, dword [0x5af498]
or esi, dword [esp + 0x58]
or ebx, eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
add edi, dword [0x5af53c]
or edi, dword [0x5af550]
imul ecx, eax
mov eax, dword [esp + 0x34]
xor eax, 0x4442
sub eax, 0x4489
push eax
xor edx, ecx
push edx
push esi
push edi
push ebx
push ebp
push dword [esp + 0x60]
call fcn.004090dc
mov ecx, dword [esp + 0x60]
add esp, 0x38
mov dword [esp + 0x3c], eax
add ecx, 2
mov ebx, 0x43c5
mov ebp, 0x4029
mov eax, dword [0x58f134]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0xf8]
and eax, dword [0x5af4c4]
cmp ecx, eax
ja 0x40d18d
mov eax, dword [esp + 0x18]
add eax, 0xfffffc92
cmp dword [esp + 0x14], eax
je 0x40d43d
mov eax, dword [esp + 0x24]
add eax, 0x110
cmp dword [esp + 0x14], eax
jg 0x40d3a1
mov eax, dword [esp + 0x3c]
add eax, 0x44d4
cmp dword [esp + 0x20], eax
jg 0x40d338
mov eax, dword [0x58f134]
cmp dword [eax + 0xb4], 0x6097
ja 0x40d323
mov eax, dword [0x5af470]
xor eax, dword [0x5af4f4]
xor eax, dword [0x5af498]
add dword [0x5af4c0], eax
jmp 0x40d338
mov eax, dword [0x5af4f4]
xor eax, dword [0x5af548]
xor eax, 0x12762c
mov dword [0x5af548], eax
mov eax, dword [esp + 0x1c]
xor eax, 0x7fbb
cmp dword [esp + 0x10], eax
je 0x40d36b
cmp dword [0x5af518], 0x10d8f
jbe 0x40d387
mov ecx, dword [0x5af53c]
mov eax, dword [0x5af44c]
add ecx, 0xffff5386
add eax, ecx
mov dword [0x5af53c], eax
mov ecx, dword [0x5af548]
mov eax, dword [0x5af464]
xor eax, ecx
xor eax, 0x4ded6
mov dword [0x5af548], eax
jmp 0x40d43d
mov eax, dword [0x5af500]
sub eax, dword [0x5af4b4]
mov ecx, dword [0x5af548]
add eax, 0x24e489
xor ecx, eax
jmp 0x40d371
mov eax, dword [0x58f134]
mov ebx, dword [eax + 0x80]
jmp 0x40d42b
mov eax, dword [esp + 0x18]
xor eax, dword [0x5af57c]
imul eax, dword [0x5af4d4]
cmp dword [esp + 0x3c], eax
jae 0x40d428
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
sub edi, 0x46c1
and esi, dword [esp + 0x1c]
mov eax, dword [0x58f134]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x100]
mov eax, dword [0x5af500]
sub eax, dword [0x5af534]
or edx, dword [0x5af4a0]
or ecx, eax
push ecx
push edx
push esi
push 0x5af440
push edi
call fcn.00408aa0
mov dword [esp + 0x34], eax
add esp, 0x14
mov eax, dword [0x58f134]
mov ecx, dword [eax + 0x6c]
mov eax, dword [0x5af4ac]
add eax, ecx
mov ecx, dword [esp + 0x10]
imul ecx, eax
mov dword [esp + 0x10], ecx
add ebx, 2
mov eax, dword [0x5af4b4]
add eax, 0xffffbc3b
cmp ebx, eax
ja 0x40d3ae
mov eax, dword [esp + 0x1c]
add eax, 0x75f
cmp dword [esp + 0x20], eax
je 0x40d4f0
mov eax, dword [esp + 0x18]
add eax, 0x238
cmp dword [esp + 0x24], eax
je 0x40d49c
mov eax, dword [esp + 0x24]
add eax, 0xfffffd01
cmp dword [esp + 0x14], eax
jl 0x40d49c
mov ecx, dword [0x58f134]
mov eax, dword [0x5af464]
cmp eax, dword [ecx + 0x60]
ja 0x40d492
mov eax, dword [ecx + 0x38]
sub eax, dword [0x5af53c]
xor eax, 0x71606
sub dword [0x5af46c], eax
xor dword [ecx + 0x108], 0x1e3c8
mov eax, dword [esp + 0x24]
xor eax, 0x7c2a
cmp dword [esp + 0x18], eax
jle 0x40d4b5
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
jmp 0x40d4f0
mov eax, dword [esp + 0x14]
imul eax, dword [0x5af4e8]
cmp dword [esp + 0x3c], eax
jne 0x40d4f0
mov eax, dword [0x5af518]
add eax, 0xffffb93f
or eax, ebp
cmp dword [0x5af4d4], eax
jne 0x40d4f0
mov eax, dword [esp + 0x10]
sub eax, 0x416d
imul eax, dword [0x5af4f0]
or dword [0x5af484], eax
mov eax, dword [esp + 0x18]
add eax, 0x238
cmp dword [esp + 0x14], eax
jge 0x40d55f
mov ecx, dword [0x58f134]
mov eax, dword [ecx + 4]
xor eax, 0x2ceb1e84
mov dword [0x5af440], eax
mov eax, dword [0x5af4e4]
add eax, 0x31396725
mov dword [0x5af448], eax
mov eax, dword [ecx + 0xb4]
cmp eax, dword [0x5af560]
jne 0x40d548
mov eax, dword [ecx + 0xc0]
add eax, 0x18842
imul eax, dword [0x5af4cc]
mov dword [0x5af4cc], eax
jmp 0x40d5c6
mov eax, dword [0x5af478]
xor eax, dword [0x5af464]
xor eax, 0x8768
mov dword [0x5af4b8], eax
jmp 0x40d5c6
mov esi, dword [0x5af528]
jmp 0x40d5b2
mov eax, dword [0x58f134]
mov eax, dword [eax + 0xf4]
add eax, dword [0x5af444]
cmp dword [0x5af534], eax
jae 0x40d5af
mov edx, dword [esp + 0x3c]
jmp 0x40d5a2
mov ecx, dword [esp + 0x14]
mov eax, dword [0x58f134]
add ecx, dword [0x5af53c]
mov eax, dword [eax + 0xb0]
or eax, ecx
add dword [esp + 0x1c], eax
inc edx
mov eax, dword [esp + 0x3c]
add eax, 0x422b
cmp edx, eax
jl 0x40d586
add esi, 2
mov ecx, dword [esp + 0x18]
xor ecx, dword [0x5af46c]
mov eax, dword [esp + 0x14]
or eax, ecx
cmp esi, eax
jae 0x40d567
mov eax, dword [esp + 0x10]
add eax, 0xfffffc72
cmp dword [esp + 0x3c], eax
je 0x40d773
mov eax, dword [esp + 0x10]
add eax, 0xffffff08
cmp dword [esp + 0x18], eax
je 0x40d6f0
mov esi, dword [0x58f134]
mov ecx, dword [0x5af4b0]
mov edx, dword [esi + 0x7c]
sub edx, dword [0x5af44c]
add edx, 0x3f665891
cmp dword [0x5af44c], 0xb71
mov dword [0x5af4d0], edx
je 0x40d62b
mov eax, dword [0x5af568]
xor eax, ecx
add eax, 0xe85df
xor dword [0x5af444], eax
cmp ecx, 0x6b05
je 0x40d647
mov edi, dword [0x5af4b4]
add edi, 0xffea17ea
mov dword [0x5af544], edi
jmp 0x40d64d
mov edi, dword [0x5af544]
mov eax, dword [0x5af4cc]
cmp eax, dword [esi + 0xa4]
jb 0x40d676
add dword [esi + 0x104], 0xfffffaff
mov edi, dword [0x5af544]
mov edx, dword [0x5af4d0]
mov esi, dword [0x58f134]
mov ebx, dword [esi + 0x78]
cmp ebx, edx
ja 0x40d6c2
mov ebp, dword [0x5af538]
mov ecx, dword [esi + 0xfc]
mov eax, 0xfff54e18
xor ecx, ebp
sub eax, ecx
add dword [0x5af53c], eax
mov eax, dword [0x5af550]
sub eax, dword [0x5af478]
add eax, 0xffe8aa04
add ebp, eax
mov eax, ebx
imul eax, ebx
mov dword [0x5af538], ebp
add edi, eax
inc ebx
mov dword [0x5af544], edi
cmp ebx, edx
jbe 0x40d683
mov eax, dword [0x5af484]
mov ecx, dword [0x5af550]
xor eax, 0x151e3e
imul eax, edi
mov dword [0x5af544], eax
cmp ecx, dword [0x5af444]
jbe 0x40dab6
mov dword [0x5af508], eax
jmp 0x40dab6
mov eax, dword [esp + 0x1c]
sub eax, dword [0x5af4e0]
cmp dword [0x5af454], eax
ja 0x40dab6
mov edx, dword [0x5af4f8]
jmp 0x40d755
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
and ecx, eax
mov eax, dword [0x58f134]
mov eax, dword [eax + 0xe4]
xor eax, ecx
mov ecx, 0xffffbfd7
add dword [0x5af4ec], eax
mov eax, dword [esp + 0x20]
xor eax, dword [0x5af524]
sub ecx, eax
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
sub ecx, dword [0x5af4f8]
mov eax, dword [esp + 0x24]
or eax, ecx
add dword [esp + 0x20], eax
inc edx
mov eax, dword [0x58f134]
mov ecx, dword [esp + 0x10]
and ecx, dword [eax + 0x124]
mov eax, dword [esp + 0x14]
or eax, ecx
cmp edx, eax
je 0x40d70e
jmp 0x40dab6
mov eax, dword [0x58f134]
imul ecx, dword [eax + 0x38], 0x3d31
mov eax, dword [esp + 0x1c]
sub ecx, eax
cmp dword [esp + 0x3c], ecx
je 0x40d7f1
mov ecx, dword [esp + 0x18]
mov eax, dword [0x58f134]
and ecx, dword [eax + 4]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
xor eax, ecx
add dword [0x5af4d4], eax
mov eax, dword [0x58f134]
xor esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
xor esi, 0x4442
mov ecx, dword [esp + 0x1c]
sub edx, 0x476b
mov edi, dword [eax + 4]
and ecx, ebp
imul eax, dword [esp + 0x14], 0x46c1
imul edi, dword [0x5af568]
and edx, dword [0x5af4b4]
add eax, ebp
push eax
push ecx
push edx
sub edi, 0x44d4
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ebp, dword [esp + 0x3c]
mov eax, dword [0x58f134]
mov eax, dword [eax + 0x74]
jmp 0x40d8d0
mov edx, dword [esp + 0x3c]
mov ecx, dword [0x58f134]
mov eax, dword [0x5af574]
and eax, 0x476b
mov dword [esp + 0x2c], edx
add eax, dword [ecx + 0xd8]
cmp edx, eax
jbe 0x40d8ca
mov ebp, edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
imul esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
mov eax, dword [0x5af484]
xor eax, dword [0x5af518]
imul edx, dword [0x5af4bc]
xor eax, 0x41df
add dword [0x5af4b4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [0x5af478]
xor edi, dword [0x5af53c]
xor ecx, 0x3c66
add ebx, dword [0x5af518]
sub edx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x4673
and eax, dword [esp + 0x24]
push eax
push ecx
push edx
push esi
push edi
push 0x5af440
push ebx
call fcn.004097b2
mov ecx, dword [0x58f134]
add ebp, 4
mov dword [esp + 0x34], eax
add esp, 0x1c
mov eax, dword [0x5af574]
and eax, 0x476b
add eax, dword [ecx + 0xd8]
cmp ebp, eax
ja 0x40d82a
mov ebp, dword [esp + 0x28]
mov eax, dword [ecx + 0x74]
add ebp, 3
sub eax, 0x4029
mov dword [esp + 0x28], ebp
cmp ebp, eax
ja 0x40d802
jmp 0x40dab6
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x24]
mov eax, dword [0x58f134]
or ecx, dword [0x5af4f0]
add dword [eax + 0x68], ecx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
and eax, dword [0x5af444]
mov ecx, dword [0x5af478]
and edx, eax
mov eax, dword [esp + 0x18]
or ecx, 0x416d
or eax, dword [0x5af4d4]
sub ecx, dword [0x5af524]
mov edi, dword [0x5af4bc]
mov esi, dword [0x5af57c]
or edi, 0x3e1c
add edi, dword [0x5af4ac]
xor esi, 0x4673
push eax
push ecx
push 0x5af440
push edx
push esi
push edi
call fcn.0040e4ed
mov ecx, dword [0x5af444]
push 0x12
push 0x1d0a
push 0x2e39
push 0x37a5
push 0xc5c
push 0x2735
push 0x76
mov dword [esp + 0x58], eax
and ecx, ebp
mov eax, dword [esp + 0x50]
push 0x3e53
imul eax, ecx
push 0x35ca
push 0x227
push 0x2b
add dword [0x5af504], eax
call fcn.0041bfd8
mov ebp, dword [esp + 0x54]
add esp, 0x44
mov edi, dword [esp + 0x24]
sub ebp, 0x3c66
or edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
or esi, 0x43c5
mov ebx, dword [0x5af484]
xor esi, 0x4489
or edx, dword [0x5af534]
imul ebx, dword [0x5af534]
mov dword [0x5afd24], eax
mov eax, dword [0x5af57c]
or eax, dword [0x5af4c4]
add eax, dword [0x5af524]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
imul eax, eax, 0x43dd
and ecx, eax
mov eax, dword [esp + 0x3c]
and eax, 0x4673
push eax
push ecx
push edx
push esi
push edi
push ebx
push ebp
push dword [esp + 0x48]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edi, dword [0x5af574]
mov ebx, 0x411b
mov esi, dword [0x5af498]
xor edi, ebx
add esi, dword [0x5af53c]
mov eax, dword [0x58f134]
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 0x14]
mov ecx, dword [0x5af464]
imul esi, dword [eax + 0x70]
xor ecx, 0x422b
mov eax, dword [esp + 0x10]
or eax, ecx
push eax
push edx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub ecx, ebx
or edx, dword [0x5af518]
add eax, 0x4029
or ecx, dword [0x5af560]
or eax, 0x46c1
xor esi, dword [0x5af444]
sub edx, 0x41df
push eax
push 0x5af440
push ecx
push edx
sub esi, 0x43dd
push esi
call fcn.0040144b
add esp, 0x14
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov ecx, 0x27a
xor eax, ecx
cmp dword [esp + 0x3c], eax
je 0x40e0bb
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x14], eax
je 0x40e0bb
mov eax, dword [esp + 0x20]
xor eax, 0x44d4
cmp dword [esp + 0x3c], eax
jge 0x40ded8
mov eax, dword [esp + 0x14]
xor eax, ecx
cmp dword [esp + 0x3c], eax
jg 0x40e0bb
mov eax, dword [0x5af4d4]
cmp eax, dword [0x5af500]
je 0x40db16
mov eax, dword [0x5af440]
sub dword [0x5af508], eax
jmp 0x40db2c
mov eax, dword [0x5af540]
add eax, 0x4e48
imul eax, dword [0x5af4bc]
mov dword [0x5af4bc], eax
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
add esi, 0x3c3
mov eax, dword [0x5af544]
mov ecx, dword [esp + 0x20]
mov dword [0x5af520], eax
xor ecx, 0x3e1c
mov eax, dword [esp + 0x10]
xor eax, 0x6b4
push eax
push ecx
push edx
push 0x5af440
push esi
call fcn.00408aa0
add esp, 0x14
mov dword [esp + 0x3c], eax
xor edi, edi
mov esi, edi
mov eax, dword [0x5af568]
sub dword [0x5af4c0], eax
mov ecx, dword [0x58f134]
push 0x61
pop eax
sub eax, dword [ecx + 0x38]
add dword [ecx + 0x134], eax
mov eax, dword [0x5af510]
mov ecx, dword [0x5af568]
mov ebx, dword [esi + eax]
add esi, 4
mov eax, dword [0x5af498]
sub eax, ecx
imul ebx, dword [0x5af4d8]
inc eax
imul eax, dword [0x5af4f4]
mov edx, ebx
shr edx, 0x18
mov dword [0x5af4f4], eax
mov eax, dword [0x5af4c0]
xor eax, dword [0x5af478]
sub eax, 0x61
or dword [0x5af4c4], eax
mov eax, dword [0x5af444]
sub eax, dword [0x5af53c]
sub eax, 0xe85df
xor ecx, eax
mov eax, dword [0x58f134]
mov dword [0x5af568], ecx
mov ecx, dword [eax + 0x74]
add ecx, dword [eax + 0x58]
mov eax, dword [0x5af44c]
add eax, 0xffea12e9
add eax, ecx
mov ecx, dword [0x5af4fc]
mov dword [0x5af44c], eax
mov eax, dword [0x5af500]
sub eax, dword [0x5af484]
xor eax, 0xffeae1c9
sub dword [0x5af574], eax
mov eax, dword [0x5af514]
mov byte [ecx + eax], dl
mov edx, ebx
inc dword [0x5af4fc]
mov ecx, dword [0x58f134]
shr edx, 0x10
mov eax, dword [ecx + 0xa4]
add dword [0x5af464], eax
mov ecx, dword [ecx + 0xbc]
mov eax, dword [0x5af514]
mov byte [eax + ecx], dl
mov edx, ebx
mov eax, dword [0x58f134]
shr edx, 8
inc dword [eax + 0xbc]
mov eax, dword [0x5af4c0]
mov ecx, dword [0x5af470]
add eax, 0x17565d
sub ecx, dword [0x5af550]
add eax, ecx
mov dword [0x5af4c0], eax
mov eax, dword [0x58f134]
mov ecx, dword [eax + 0xd4]
mov eax, dword [eax + 0xbc]
mov byte [ecx + eax], dl
mov eax, dword [0x58f134]
inc dword [eax + 0xbc]
mov eax, dword [0x5af518]
xor eax, dword [0x5af4c4]
xor eax, 0x11
imul eax, dword [0x5af444]
mov dword [0x5af444], eax
mov eax, dword [0x58f134]
mov ecx, dword [eax + 0xd4]
mov eax, dword [eax + 0xbc]
mov byte [ecx + eax], bl
mov eax, dword [0x58f134]
inc dword [eax + 0xbc]
cmp esi, 0xeb68
jl 0x40db70
mov edx, dword [0x58f134]
mov eax, dword [0x5af560]
cmp eax, dword [edx + 0x2c]
jne 0x40dd0e
mov eax, dword [0x5af478]
mov ecx, dword [0x5af4d8]
add eax, 0x1751d
xor dword [0x5af550], eax
jmp 0x40dd20
mov ecx, dword [0x5af4b4]
add ecx, dword [0x5af4b0]
xor ecx, 0x1472b3
mov eax, dword [0x5af4e4]
add eax, 0x3f9a2
xor ecx, eax
mov eax, dword [esp + 0x14]
xor ecx, 0xe6b67a5d
add eax, 0x6b8
mov dword [0x5af4d8], ecx
mov dword [edx + 0xd0], 0x42c2b0
cmp dword [esp + 0x24], eax
jg 0x40e0bd
mov edx, dword [0x58f134]
mov esi, edi
mov eax, dword [0x5af510]
push 2
mov ebx, dword [esi + eax]
add esi, 4
mov eax, dword [0x5af4cc]
sub eax, dword [0x5af53c]
add eax, 2
imul eax, dword [0x5af470]
mov dword [0x5af470], eax
mov eax, dword [edx + 0xc0]
xor eax, dword [0x5af4bc]
xor eax, 0x7745b
or dword [edx + 0x70], eax
mov eax, dword [0x5af524]
imul ebx, dword [0x5af4d8]
xor eax, 0x74ad7
imul eax, dword [0x5af4cc]
mov ecx, dword [0x5af4fc]
mov edx, ebx
mov dword [0x5af4cc], eax
pop eax
sub eax, dword [0x5af4b0]
add dword [0x5af4dc], eax
mov eax, dword [0x5af514]
shr edx, 8
mov byte [ecx + eax], dl
mov eax, dword [0x5af44c]
inc dword [0x5af4fc]
add eax, 0xffffd0f6
imul eax, dword [0x5af518]
mov ecx, dword [0x58f134]
mov dword [0x5af518], eax
mov eax, dword [0x5af524]
sub eax, dword [ecx + 0x60]
xor eax, 0xffee7488
add dword [0x5af4c0], eax
mov eax, dword [0x5af444]
add eax, 0xfff17a20
xor dword [ecx + 0xe8], eax
mov ecx, dword [0x5af4fc]
mov eax, dword [0x5af514]
mov byte [ecx + eax], bl
mov eax, dword [0x5af4d4]
mov ecx, dword [0x5af464]
add eax, 0xffffffe2
mov edx, dword [0x58f134]
add eax, ecx
or dword [0x5af44c], eax
inc dword [0x5af4fc]
mov eax, dword [edx + 0x2c]
sub eax, 0x858ad
imul eax, dword [0x5af540]
mov dword [0x5af540], eax
mov eax, dword [0x5af498]
xor ecx, dword [edx + 0x80]
add eax, dword [0x5af518]
add dword [0x5af4b4], eax
mov dword [0x5af464], ecx
cmp esi, 0x273c0
jl 0x40dd5d
cmp dword [0x5af528], 0x1577e
ja 0x40dea8
mov eax, dword [0x5af4b0]
add eax, 0x1946
add eax, dword [edx + 0x94]
mov dword [0x5af4d8], eax
add dword [esp + 0x18], 0xffffff3c
mov eax, 0x157e7f
sub eax, dword [0x5af54c]
add dword [0x5af4d8], eax
mov dword [0x5af510], 0x58f138
add dword [esp + 0x14], 0x6b8
jmp 0x40e0bd
mov eax, dword [esp + 0x20]
xor eax, 0x44d4
cmp dword [esp + 0x3c], eax
je 0x40e0bb
imul edi, dword [esp + 0x10], 0x4673
mov ebx, 0x43c5
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov esi, dword [0x5af4a4]
mov ecx, dword [esp + 0x10]
sub esi, eax
mov eax, dword [esp + 0x20]
add esi, 0x44d4
and ecx, dword [0x5af4f8]
sub ebx, eax
mov eax, dword [esp + 0x10]
and ecx, 0x4442
or edx, dword [0x5af444]
add eax, ebx
push eax
push ecx
push edx
push esi
sub edi, 0x46c1
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov edx, dword [0x5af53c]
or eax, dword [0x5af560]
and edx, 0x4029
sub edx, dword [0x5af470]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
imul eax, dword [esp + 0x3c], 0xffffbdd5
add dword [0x5af540], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [esp + 0x10]
mov ecx, 0x44d4
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub edi, 0x422b
mov esi, dword [esp + 0x3c]
or eax, ecx
imul edx, dword [esp + 0x1c], 0x3dd
add esi, eax
mov eax, dword [esp + 0x20]
mov ebp, dword [0x5af53c]
and eax, 0x3e1c
imul ebx, dword [0x5af504]
or ebp, ecx
mov ecx, dword [esp + 0x24]
add ecx, eax
and edx, 0x3d31
mov eax, dword [esp + 0x3c]
add eax, dword [0x5af480]
push eax
push ecx
push edx
push esi
push edi
add ebx, ebx
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_CallNamedPipeA]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
sub edi, 0x87dc
mov eax, dword [0x58f134]
imul esi, dword [0x5af4c0]
xor ebx, dword [0x5af518]
mov edx, dword [eax + 0xf8]
mov eax, dword [esp + 0x10]
and edx, dword [0x5af528]
mov ecx, dword [esp + 0x24]
sub edx, eax
mov eax, dword [0x5af53c]
sub eax, dword [0x5af528]
sub esi, dword [0x5af540]
add ecx, eax
mov eax, dword [0x5af550]
or eax, 0x43dd
add eax, dword [0x5af56c]
push eax
imul eax, dword [0x5af560], 0x44d4
push eax
push ecx
push edx
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
xor ecx, dword [0x5af4c0]
sub ecx, eax
mov eax, dword [esp + 0x14]
imul eax, ecx
mov ecx, dword [0x58f134]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc0]
sub ecx, eax
mov eax, dword [0x5af4c8]
xor eax, 0x422b
push eax
mov eax, dword [0x58f134]
imul eax, dword [eax + 0xfc], 0x476b
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov ecx, dword [0x58f134]
mov eax, dword [esp + 0x20]
xor eax, dword [ecx + 0x7c]
mov dword [0x5af478], eax
xor edi, edi
mov eax, dword [esp + 0x10]
add eax, 0xfffff4fb
cmp dword [esp + 0x1c], eax
jg 0x40e4dd
mov eax, dword [esp + 0x10]
add eax, 0xfffff5c6
cmp dword [esp + 0x24], eax
jl 0x40e471
mov eax, dword [esp + 0x3c]
add eax, 0xfffffd52
cmp dword [esp + 0x20], eax
jge 0x40e4dd
mov ebp, edi
mov ecx, dword [0x5af4b0]
sub ecx, dword [0x5af444]
mov eax, dword [0x5af560]
add eax, 0xe85de
add eax, ecx
mov ecx, dword [0x58f134]
mov dword [0x5af560], eax
mov eax, 0x17565d
sub eax, dword [0x5af550]
add dword [ecx + 0x2c], eax
mov eax, dword [0x5af510]
mov edx, dword [0x58f134]
mov esi, dword [eax + ebp]
add ebp, 4
mov eax, dword [0x5af518]
dec eax
add eax, dword [edx + 0x134]
xor dword [edx + 0x70], eax
mov eax, dword [0x58f134]
mov ebx, dword [eax + 0x98]
mov ecx, dword [eax + 0xd4]
mov eax, dword [eax + 0xbc]
imul ebx, esi
mov edx, ebx
shr edx, 0x18
mov byte [ecx + eax], dl
mov edx, ebx
mov eax, dword [0x58f134]
shr edx, 0x10
inc dword [eax + 0xbc]
mov ecx, dword [0x58f134]
mov eax, dword [0x5af444]
add eax, 0xfff17a20
or dword [ecx + 0x84], eax
mov eax, dword [0x5af4c4]
sub eax, dword [0x5af538]
mov ecx, dword [0x5af478]
xor eax, 0xab1f7
or ecx, dword [0x5af4c0]
sub ecx, eax
mov eax, dword [0x5af514]
mov dword [0x5af478], ecx
mov ecx, dword [0x5af4fc]
mov byte [ecx + eax], dl
mov ecx, ebx
mov edx, dword [0x5af4fc]
mov eax, dword [0x5af514]
inc edx
shr ecx, 8
mov dword [0x5af4fc], edx
mov byte [edx + eax], cl
mov ecx, dword [0x58f134]
inc dword [0x5af4fc]
mov eax, dword [0x5af53c]
sub eax, dword [ecx + 0x120]
or dword [0x5af500], eax
mov eax, dword [0x5af4c0]
sub dword [0x5af444], eax
mov eax, dword [0x5af540]
add eax, 0xffe458b1
xor dword [0x5af4b0], eax
mov eax, dword [0x5af514]
mov ecx, dword [ecx + 0xbc]
mov byte [eax + ecx], bl
mov eax, dword [0x58f134]
inc dword [eax + 0xbc]
cmp ebp, 0x1137c
jl 0x40e0f8
mov eax, dword [0x5af518]
cmp eax, dword [0x5af4c0]
jne 0x40e256
mov eax, dword [0x58f134]
mov dword [eax + 0x98], 0xaac
mov edx, dword [0x58f134]
mov eax, dword [edx + 0x70]
cmp eax, dword [0x5af46c]
jae 0x40e27e
mov eax, dword [edx + 0xd8]
add eax, dword [0x5af54c]
xor eax, 0x159d7d
sub dword [0x5af4d8], eax
mov ecx, 0x5a0778
mov esi, edi
mov dword [0x5af510], ecx
mov ecx, dword [esi + ecx]
add esi, 4
mov eax, dword [0x5af538]
sub eax, dword [0x5af4d4]
xor eax, 0xfff54e09
or dword [edx + 0x30], eax
mov eax, dword [0x58f134]
mov ebx, dword [eax + 0x98]
mov eax, dword [0x5af514]
imul ebx, ecx
mov ecx, dword [0x5af4fc]
mov edx, ebx
shr edx, 0x18
mov byte [ecx + eax], dl
mov ecx, ebx
mov eax, dword [0x5af568]
xor eax, dword [0x5af538]
mov edx, dword [0x5af4fc]
xor eax, 0xfff54e19
mov dword [0x5af568], eax
inc edx
mov eax, dword [0x5af514]
shr ecx, 0x10
mov dword [0x5af4fc], edx
mov byte [edx + eax], cl
mov eax, 0x1597d6
sub eax, dword [0x5af54c]
mov edx, ebx
inc dword [0x5af4fc]
mov ecx, dword [0x58f134]
shr edx, 8
add dword [ecx + 0x70], eax
mov ecx, dword [0x5af524]
sub ecx, dword [0x5af484]
mov eax, dword [0x5af46c]
add eax, 0xdd362
add eax, ecx
mov dword [0x5af46c], eax
mov eax, dword [0x5af4bc]
add eax, 0xfff88ba7
imul eax, dword [0x5af524]
mov dword [0x5af524], eax
mov eax, dword [0x58f134]
mov ecx, dword [eax + 0xd4]
mov eax, dword [0x5af4fc]
mov byte [eax + ecx], dl
mov ecx, dword [0x5af4fc]
mov eax, dword [0x58f134]
inc ecx
mov dword [0x5af4fc], ecx
mov eax, dword [eax + 0xd4]
mov byte [ecx + eax], bl
inc dword [0x5af4fc]
mov edx, dword [0x58f134]
cmp esi, 0xea6c
jge 0x40e393
mov ecx, dword [0x5af510]
jmp 0x40e28b
mov dword [0x5af554], 0x5af440
mov eax, dword [0x5af524]
add eax, 0xfff8b52a
add dword [edx + 0x8c], eax
mov eax, dword [0x58f134]
mov ecx, dword [0x5af51c]
mov eax, dword [eax + 0xc8]
xor dword [edi + ecx], eax
add edi, 4
mov eax, dword [0x5af520]
add dword [0x5af508], eax
mov ecx, dword [0x58f134]
mov eax, dword [0x5af484]
add eax, 0xffeae1c8
add dword [ecx + 0xc0], eax
mov edx, dword [0x58f134]
mov eax, dword [0x5af498]
mov ecx, dword [0x5af4cc]
add eax, 0xfff54e19
sub ecx, dword [edx + 0xf8]
add eax, ecx
mov dword [0x5af498], eax
cmp edi, 0x1e530
jl 0x40e39d
mov eax, dword [0x5af51c]
mov dword [edx + 0xcc], eax
mov ecx, dword [0x5af4c0]
cmp ecx, 0x134a4
jb 0x40e446
mov eax, dword [0x5af540]
xor eax, dword [0x5af4bc]
xor eax, 0xad83
imul eax, ecx
mov dword [0x5af4c0], eax
jmp 0x40e4dd
mov eax, dword [0x58f134]
push dword [0x5af55c]
mov eax, dword [eax + 0x118]
add eax, dword [0x5af514]
push eax
push dword [0x5af554]
call dword [0x5af50c]
mov dword [0x5af548], eax
jmp 0x40e4dd
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
imul edx, dword [0x5af4a4]
add ecx, 0x4029
mov eax, dword [esp + 0x3c]
mov esi, dword [0x5af578]
add eax, ecx
or esi, dword [0x5af464]
or esi, dword [0x5af444]
push eax
push edx
push esi
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
mov ecx, dword [esp + 0x10]
mov eax, dword [0x58f134]
or ecx, dword [eax + 0x10c]
mov eax, dword [esp + 0x20]
xor eax, ecx
imul eax, dword [0x5af4bc]
mov dword [0x5af4bc], eax
mov eax, dword [esp + 0x3c]
imul ecx, eax, 0x411b
mov eax, dword [0x58f134]
or dword [eax + 0xa0], ecx
push dword [0x5af548]
call dword [sym.imp.KERNEL32.dll_ExitProcess]