Function at 0x41de00
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x47b014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
cmp word [edi + 0x11], 0
je 0x41de35
pop edi
mov eax, 2
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422009
mov esp, ebp
pop ebp
ret 0xc
test esi, esi
je 0x41e09b
push ebx
mov dword [edi + 5], 0
mov ebx, 0x7f
mov word [edi + 0xb], bx
mov byte [edi + 4], 1
mov eax, dword [esi]
mov dword [edi + 0x17], eax
mov ax, word [esi + 4]
mov word [edi + 0x1b], ax
mov eax, dword [0x481a50]
cmp dword [eax + 0x16c], 0
jne 0x41e07c
call fcn.0041ea20
mov eax, dword [esi]
xorps xmm0, xmm0
mov ecx, dword [0x481a50]
mov dword [ebp - 0x21], eax
mov ax, word [esi + 4]
mov word [ebp - 0x1d], ax
mov eax, 0x1101
cmp dword [ecx + 0x854], 0x30002
mov word [ebp - 0x50], ax
lea eax, [ebp - 8]
push 0
push eax
push 4
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], 0
push eax
push 0x35
lea eax, [ebp - 0x50]
movlpd qword [ebp - 0x4e], xmm0
push eax
sbb eax, eax
movlpd qword [ebp - 0x46], xmm0
and eax, 0xec2a0000
movlpd qword [ebp - 0x3e], xmm0
add eax, 0x2a0404
movlpd qword [ebp - 0x36], xmm0
push eax
push dword [ecx + 0x850]
movlpd qword [ebp - 0x2e], xmm0
mov word [ebp - 0x26], 1
mov dword [ebp - 8], 0
mov byte [ebp - 0x24], 0
mov word [ebp - 0x23], bx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x41df7b
cmp dword [ebp - 8], 4
jne 0x41df7b
cmp word [ebp - 0x54], 0
jne 0x41e07c
mov ax, word [ebp - 0x52]
test ax, ax
je 0x41e07c
mov word [edi + 0x11], ax
movzx eax, ax
lea ecx, [eax + eax*8]
mov eax, dword [0x481a50]
lea ecx, [ecx + 0x8a]
lea esi, [eax + ecx*4]
mov word [esi], 1
mov dword [esi + 4], 0x41dc20
mov ax, word [ebp - 0x52]
mov word [esi + 2], ax
lea eax, [ebp - 0x18]
push eax
push 0
mov dword [esi + 0x14], 0
movzx eax, word [ebp - 0x52]
push eax
push 0x41efe0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0xc], eax
xor esi, esi
jmp 0x41df97
mov eax, dword [0x481a50]
cmp dword [eax + 0x248], 1
jb 0x41df8b
call ebx
call ebx
mov esi, eax
test esi, esi
jne 0x41e081
movzx eax, word [edi + 0x11]
mov edx, dword [0x481a50]
mov ebx, eax
mov ecx, eax
test bx, bx
je 0x41dfc1
cmp ebx, 0x28
ja 0x41dfca
lea eax, [eax + eax*8]
mov dword [edx + eax*4 + 0x230], 0x41d9a0
movzx ecx, word [edi + 0x11]
test cx, cx
je 0x41e081
cmp cx, 0x28
ja 0x41e081
cmp cx, 0x14
jbe 0x41e005
movzx eax, cx
mov ecx, esi
lea eax, [eax + eax*8]
mov dword [edx + eax*4 + 0x238], 0x3ffff
call fcn.0041dc50
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422009
mov esp, ebp
pop ebp
ret 0xc
push 0
lea eax, [ebp - 0xc]
mov word [ebp - 0x14], cx
push eax
push 0
push 0
mov dword [ebp - 0x12], 0x3ffff
lea eax, [ebp - 0x14]
mov dword [ebp - 0xc], 0
cmp dword [edx + 0x854], 0x30002
push 6
push eax
sbb eax, eax
and eax, 0xec2a0000
add eax, 0x2a0408
push eax
push dword [edx + 0x850]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x41e081
mov eax, dword [0x481a50]
cmp dword [eax + 0x248], 1
jb 0x41e081
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
call fcn.0041dc50
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422009
mov esp, ebp
pop ebp
ret 0xc
mov esi, 1
mov ecx, esi
call fcn.0041dc50
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422009
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp - 4]
mov eax, 0xb
pop edi
xor ecx, ebp
pop esi
call fcn.00422009
mov esp, ebp
pop ebp
ret 0xc