Function at 0x405c70
Capabilities:
Create thread

Disassembly:
push 0xffffffffffffffff
push 0x43e97b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c4
push ebx
push ebp
push esi
lea eax, [esp + 0x40]
push edi
xor esi, esi
push eax
push esi
push esi
push 0x40bce0
push esi
push esi
mov ebp, 0x51
mov byte [0x454881], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
mov eax, dword [0x45488c]
xor ebx, ebx
cmp eax, esi
mov dword [esp + 0x3dc], esi
jle 0x405f66
mov ecx, dword [0x454884]
mov eax, dword [ecx + ebx*4]
dec eax
je 0x405e9d
dec eax
jne 0x405f58
mov edx, ebp
inc ebp
cmp edx, 0x5a
jge 0x405d03
mov eax, ebp
inc ebp
jmp 0x405d08
mov eax, 0x5a
push eax
mov ecx, 0x4540c0
call fcn.004011a0
mov ecx, dword [0x4540b8]
lea eax, [esp + 0x28]
push eax
push ebx
push ecx
mov dword [esp + 0x34], 0x1c
call fcn.00418e03
mov ecx, dword [0x4540b8]
lea edx, [esp + 0xac]
lea eax, [esp + 0x28]
push edx
push eax
push ecx
mov dword [esp + 0xb8], 0x128
call fcn.00418f86
test eax, eax
je 0x405dbb
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
or ch, 8
mov edi, 0x454150
mov dword [esp + 0xb4], ecx
or ecx, 0xffffffff
xor eax, eax
or edx, 0x1810800
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0xb0], edx
lea edx, [esp + 0xd0]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x4540b8]
and ecx, 3
lea edx, [esp + 0x28]
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xac]
push ecx
push edx
push eax
call fcn.00418f53
xor esi, esi
lea ecx, [esp + 0x1d4]
push esi
push pe_nt_image_headers32
lea edx, [esp + 0x50]
push ecx
mov ecx, dword [0x4540b8]
push edx
lea eax, [esp + 0x38]
push 1
push eax
push ecx
call fcn.00418dc3
mov eax, dword [0x4540b8]
push esi
push esi
push esi
lea edx, [esp + 0x34]
push esi
push edx
push eax
call fcn.00418f16
sub esp, 8
lea edx, [esp + 0x1dc]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00416cb2
lea ecx, [esp + 0x1c]
call fcn.004111e0
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1d4]
push eax
push 1
push 0x454150
push ecx
push esi
mov dword [esp + 0x24], esi
call fcn.00418edc
cmp dword [esp + 0x10], esi
je 0x405e50
mov eax, dword [0x45487c]
mov dword [0x454878], 1
or al, 2
mov dword [0x45487c], eax
mov edx, ebp
inc ebp
cmp edx, 0x50
jge 0x405e5d
mov eax, ebp
inc ebp
jmp 0x405e62
mov eax, 0x50
push eax
mov ecx, 0x4540c0
call fcn.004011a0
mov ecx, dword [0x4540b8]
lea eax, [esp + 0x28]
push 4
push eax
push ecx
call fcn.0040c230
add esp, 0xc
mov edx, ebp
inc ebp
cmp edx, 0x50
jge 0x405e93
mov eax, ebp
inc ebp
jmp 0x405f4d
mov eax, 0x50
jmp 0x405f4d
mov eax, ebp
inc ebp
cmp eax, 0x5a
jge 0x405eaa
mov eax, ebp
inc ebp
jmp 0x405eaf
mov eax, 0x5a
push eax
mov ecx, 0x4540c0
call fcn.004011a0
mov edx, dword [0x4540b8]
lea ecx, [esp + 0x90]
push ecx
push ebx
push edx
mov dword [esp + 0x9c], 0x1c
call fcn.00418e03
mov ecx, dword [0x4540b8]
lea eax, [esp + 0x90]
push 4
push eax
push ecx
call fcn.0040c230
add esp, 0xc
lea edx, [esp + 0x2d4]
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x90]
push esi
push pe_nt_image_headers32
push edx
mov edx, dword [0x4540b8]
push eax
push 1
push ecx
push edx
call fcn.00418dc3
sub esp, 8
lea eax, [esp + 0x2dc]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00416cb2
lea ecx, [esp + 0x1c]
call fcn.004111e0
mov ecx, ebp
inc ebp
cmp ecx, 0x5a
jge 0x405f48
mov eax, ebp
inc ebp
jmp 0x405f4d
mov eax, 0x5a
push eax
mov ecx, 0x4540c0
call fcn.004011a0
mov eax, dword [0x45488c]
inc ebx
cmp ebx, eax
jl 0x405cdf
push esi
call fcn.00413b1f
and eax, 0xff
mov ebx, esi
je 0x4060bc
jmp 0x405f7d
xor esi, esi
lea edx, [esp + 0x50]
push 0x40
push edx
push str.PnP_Id
push eax
call fcn.00413c6a
lea edi, [esp + 0x50]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4060aa
lea eax, [esp + 0x50]
push 0x44a8f0
push eax
call fcn.00433d08
add esp, 8
test eax, eax
jne 0x406027
lea ecx, [esp + 0x50]
push str.PNP0F0B
push ecx
call fcn.00433d08
add esp, 8
test eax, eax
jne 0x406027
lea edx, [esp + 0x50]
push str.PNP0F0E
push edx
call fcn.00433d08
add esp, 8
test eax, eax
jne 0x406027
lea eax, [esp + 0x50]
push str.PNP0F12
push eax
call fcn.00433d08
add esp, 8
test eax, eax
jne 0x406027
lea ecx, [esp + 0x50]
push 0x44a8d0
push ecx
call fcn.00433d08
add esp, 8
test eax, eax
jne 0x406027
lea edx, [esp + 0x50]
push str.IBM3780
push edx
call fcn.00433d08
add esp, 8
test eax, eax
je 0x40603d
mov eax, dword [0x45487c]
mov dword [0x454878], 1
or al, 0x10
mov dword [0x45487c], eax
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x406063
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
lea ecx, [ecx + esi*8]
call fcn.00417020
test eax, eax
jne 0x4060aa
mov eax, dword [esp + 0x18]
inc esi
cmp esi, eax
jl 0x406045
push 4
lea edx, [esp + 0x54]
push str.UPD
push edx
call fcn.0043d090
add esp, 0xc
test eax, eax
jne 0x40608a
lea eax, [esp + 0x50]
push eax
call fcn.00405490
add esp, 4
jmp 0x4060aa
lea ecx, [esp + 0x10]
lea edx, [esp + 0x50]
push ecx
push 1
push 0x454150
push edx
push 0
mov dword [esp + 0x24], 0
call fcn.00418edc
inc ebx
push ebx
call fcn.00413b1f
and eax, 0xff
jne 0x405f7b
push 0x454760
call fcn.0040c2c0
add esp, 4
mov eax, ebp
inc ebp
cmp eax, 0x5a
mov byte [0x454881], 0
jl 0x4060dd
mov ebp, 0x5a
push ebp
mov ecx, 0x4540c0
call fcn.004011a0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x3dc], 0xffffffff
test esi, esi
je 0x40611f
mov eax, dword [esp + 0x18]
test eax, eax
je 0x406116
lea edi, [eax]
mov ecx, esi
call fcn.00416d10
add esi, 8
dec edi
jne 0x406105
mov esi, dword [esp + 0x14]
push esi
call fcn.00433020
add esp, 4
mov ecx, dword [esp + 0x3d4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x3d0
ret