Function at 0x40ed00
Capabilities:
Create thread
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43915d
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push esi
push edi
mov eax, dword [0x449314]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x20], 0
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x64], 0
movlpd qword [ebp - 0x5c], xmm0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x3c], 0
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40ed98
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x40ed98
test byte [ecx + 8], 2
je 0x40ed98
cmp byte [ecx + 0xf], 9
jb 0x40ed98
push 0
push 0x42
push 0x43d7ec
push 0x2b
push esi
push edx
call fcn.0041bd20
add esp, 0x18
mov eax, dword [0x44902c]
cmp eax, 0xffffffff
jne 0x40ede6
lea ecx, [ebp - 0x10]
call fcn.00435170
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0
call fcn.00435250
push 0x80
push 0x80
push 0
lea ecx, [ebp - 0x10]
call fcn.004351f0
lea ecx, [ebp - 0x10]
mov dword [0x44902c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.00435180
mov eax, dword [0x44902c]
push 0x7f00
push 0
mov dword [ebp - 0x68], 0x30
mov dword [ebp - 0x60], 0x4150e0
mov dword [ebp - 0x50], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push 0
mov dword [ebp - 0x4c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 0x40], str.CitrixRedirector
call dword [sym.imp.USER32.dll_RegisterClassExW]
test ax, ax
jne 0x40ee87
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40ee71
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x40ee71
test byte [ecx + 8], 1
je 0x40ee71
cmp byte [ecx + 0xf], 9
jb 0x40ee71
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
push 4
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [0x449ff8]
push 0x43
push 0x43d7ec
push 0x2b
push dword [eax + 4]
push dword [eax]
call fcn.0041bd20
add esp, 0x20
mov eax, 2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
push 0
push ParseURLW
push ParseURLW
push ParseURLW
push ParseURLW
push 0xcf0000
push 0x43d38c
push str.CitrixRedirector
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
test esi, esi
jne 0x40ef25
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40ef0f
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x40ef0f
test byte [ecx + 8], 1
je 0x40ef0f
cmp byte [ecx + 0xf], 9
jb 0x40ef0f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
push 4
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [0x449ff8]
push 7
push str.InitRD
push 0x44
push 0x43d7ec
push 0x2b
push dword [eax + 4]
push dword [eax]
call fcn.0041bd20
add esp, 0x28
mov eax, 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
call fcn.00406b50
mov dword [ebp - 0x10], eax
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40ef73
mov esi, dword [ecx]
mov eax, esi
mov edx, dword [ecx + 4]
or eax, edx
je 0x40ef73
test byte [ecx + 8], 2
je 0x40ef73
cmp byte [ecx + 0xf], 9
jb 0x40ef73
push 0
push 0x45
push 0x43d7ec
push 0x2b
push edx
push esi
call fcn.0041bd20
add esp, 0x18
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventW]
push str.LocalSessionAvaiable_BF9A50BC
push 0
push 1
push 0
call esi
push 0
push 0
push 1
push 0
mov dword [0x44a068], eax
mov dword [ebp - 0x14], 0
call esi
mov esi, dword [0x44a068]
mov edx, eax
mov dword [0x44a06c], edx
test edx, edx
je 0x40efb2
test esi, esi
jne 0x40eff8
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40eff8
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x40eff8
test byte [ecx + 8], 1
je 0x40eff8
cmp byte [ecx + 0xf], 9
jb 0x40eff8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x449ff8]
push 0x43d7ec
push 0x46
push dword [eax + 4]
push dword [eax]
call fcn.0041c0e0
mov esi, dword [0x44a068]
mov edx, dword [0x44a06c]
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
test edx, edx
je 0x40f058
test esi, esi
je 0x40f058
push 0
push 0
push 0
push 0x414c90
push 0
push 0
call edi
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x40f058
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40f058
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x40f058
test byte [ecx + 8], 1
je 0x40f058
cmp byte [ecx + 0xf], 9
jb 0x40f058
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x449ff8]
push 0x43d7ec
push 0x47
push dword [eax + 4]
push dword [eax]
call fcn.0041c0e0
call fcn.004100b0
test al, al
je 0x40f0b5
call fcn.0040fc30
test al, al
jne 0x40f0b5
call fcn.00410360
test eax, eax
je 0x40f0eb
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40f0a9
mov esi, dword [ecx]
mov eax, esi
mov edx, dword [ecx + 4]
or eax, edx
je 0x40f0a9
test byte [ecx + 8], 2
je 0x40f0a9
cmp byte [ecx + 0xf], 9
jb 0x40f0a9
push 0
push 0x48
push 0x43d7ec
push 0x2b
push edx
push esi
call fcn.0041bd20
add esp, 0x18
mov dword [0x44a058], 1
jmp 0x40f0eb
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40f0eb
mov esi, dword [ecx]
mov eax, esi
mov edx, dword [ecx + 4]
or eax, edx
je 0x40f0eb
test byte [ecx + 8], 2
je 0x40f0eb
cmp byte [ecx + 0xf], 9
jb 0x40f0eb
push 0
push 0x49
push 0x43d7ec
push 0x2b
push edx
push esi
call fcn.0041bd20
add esp, 0x18
push 0
push 0
push 0
push 0x4134f0
push 0
push 0
call edi
cmp dword [ebp - 0x10], 0
mov edi, eax
mov dword [ebp - 0x1c], edi
jl 0x40f156
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [ebp - 0x38]
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x40f14e
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x38]
push eax
call edi
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x38]
push eax
call esi
test eax, eax
jne 0x40f123
mov ecx, dword [0x449ff8]
mov edi, dword [ebp - 0x1c]
jmp 0x40f1ac
mov ecx, dword [0x449ff8]
jmp 0x40f1ac
mov ecx, dword [0x449ff8]
test ecx, ecx
je 0x40f1a5
mov esi, dword [ecx]
mov eax, esi
mov edx, dword [ecx + 4]
or eax, edx
je 0x40f1a5
test byte [ecx + 8], 1
je 0x40f1a5
cmp byte [ecx + 0xf], 9
jb 0x40f1a5
mov eax, dword [ebp - 0x10]
push 0
push 4
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
push 7
push str.InitRD
push 0x4a
push 0x43d7ec
push 0x2b
push edx
push esi
call fcn.0041bd20
mov ecx, dword [0x449ff8]
add esp, 0x28
mov dword [ebp - 0x18], 1
cmp dword [0x44a058], 0
je 0x40f294
cmp dword [0x44a05c], 0
je 0x40f294
cmp dword [0x44a060], 0
je 0x40f294
test ecx, ecx
je 0x40f209
mov esi, dword [ecx]
mov eax, esi
mov edx, dword [ecx + 4]
or eax, edx
je 0x40f209
test byte [ecx + 8], 2
je 0x40f209
cmp byte [ecx + 0xf], 9
jb 0x40f209
push 0
push 0x4b
push 0x43d7ec
push 0x2b
push edx
push esi
call fcn.0041bd20
mov ecx, dword [0x449ff8]
add esp, 0x18
cmp dword [0x44a064], 0
je 0x40f249
test ecx, ecx
je 0x40f242
mov esi, dword [ecx]
mov eax, esi
mov edx, dword [ecx + 4]
or eax, edx
je 0x40f242
test byte [ecx + 8], 2
je 0x40f242
cmp byte [ecx + 0xf], 9
jb 0x40f242
push 0
push 0x4c
push 0x43d7ec
push 0x2b
push edx
push esi
call fcn.0041bd20
add esp, 0x18
call fcn.0042bbb0
jmp 0x40f28a
test ecx, ecx
je 0x40f279
mov esi, dword [ecx]
mov eax, esi
mov edx, dword [ecx + 4]
or eax, edx
je 0x40f279
test byte [ecx + 8], 2
je 0x40f279
cmp byte [ecx + 0xf], 9
jb 0x40f279
push 0
push 0x4d
push 0x43d7ec
push 0x2b
push edx
push esi
call fcn.0041bd20
add esp, 0x18
push dword [0x44a060]
push dword [0x44a05c]
call fcn.0042bc90
mov dword [0x44a058], 0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x40f2a1
push edi
call esi
push dword [0x44a06c]
call esi
push dword [0x44a068]
call esi
push dword [ebp - 0x14]
call esi
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret