Function at 0x4057e0
Capabilities:
Create thread

Disassembly:
push 0xffffffffffffffff
push 0x4235db
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 0x40af00
push esi
push esi
mov ebp, 0x51
mov byte [0x432bd5], 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 [0x432be0]
xor ebx, ebx
cmp eax, esi
mov dword [esp + 0x3dc], esi
jle 0x405ad6
mov ecx, dword [0x432bd8]
mov eax, dword [ecx + ebx*4]
dec eax
je 0x405a0d
dec eax
jne 0x405ac8
mov edx, ebp
inc ebp
cmp edx, 0x5a
jge 0x405873
mov eax, ebp
inc ebp
jmp 0x405878
mov eax, 0x5a
push eax
mov ecx, 0x432418
call fcn.00401160
mov ecx, dword [0x432410]
lea eax, [esp + 0x28]
push eax
push ebx
push ecx
mov dword [esp + 0x34], 0x1c
call fcn.00416775
mov ecx, dword [0x432410]
lea edx, [esp + 0xac]
lea eax, [esp + 0x28]
push edx
push eax
push ecx
mov dword [esp + 0xb8], 0x128
call fcn.004168f8
test eax, eax
je 0x40592b
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
or ch, 8
mov edi, 0x4324a8
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 [0x432410]
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.004168c5
xor esi, esi
lea ecx, [esp + 0x1d4]
push esi
push 0x100
lea edx, [esp + 0x50]
push ecx
mov ecx, dword [0x432410]
push edx
lea eax, [esp + 0x38]
push 1
push eax
push ecx
call fcn.00416735
mov eax, dword [0x432410]
push esi
push esi
push esi
lea edx, [esp + 0x34]
push esi
push edx
push eax
call fcn.00416888
sub esp, 8
lea edx, [esp + 0x1dc]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00413e2e
lea ecx, [esp + 0x1c]
call fcn.0040ec20
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1d4]
push eax
push 1
push 0x4324a8
push ecx
push esi
mov dword [esp + 0x24], esi
call fcn.0041684e
cmp dword [esp + 0x10], esi
je 0x4059c0
mov eax, dword [0x432bd0]
mov dword [0x432bcc], 1
or al, 2
mov dword [0x432bd0], eax
mov edx, ebp
inc ebp
cmp edx, 0x50
jge 0x4059cd
mov eax, ebp
inc ebp
jmp 0x4059d2
mov eax, 0x50
push eax
mov ecx, 0x432418
call fcn.00401160
mov ecx, dword [0x432410]
lea eax, [esp + 0x28]
push 4
push eax
push ecx
call fcn.0040b450
add esp, 0xc
mov edx, ebp
inc ebp
cmp edx, 0x50
jge 0x405a03
mov eax, ebp
inc ebp
jmp 0x405abd
mov eax, 0x50
jmp 0x405abd
mov eax, ebp
inc ebp
cmp eax, 0x5a
jge 0x405a1a
mov eax, ebp
inc ebp
jmp 0x405a1f
mov eax, 0x5a
push eax
mov ecx, 0x432418
call fcn.00401160
mov edx, dword [0x432410]
lea ecx, [esp + 0x90]
push ecx
push ebx
push edx
mov dword [esp + 0x9c], 0x1c
call fcn.00416775
mov ecx, dword [0x432410]
lea eax, [esp + 0x90]
push 4
push eax
push ecx
call fcn.0040b450
add esp, 0xc
lea edx, [esp + 0x2d4]
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x90]
push esi
push 0x100
push edx
mov edx, dword [0x432410]
push eax
push 1
push ecx
push edx
call fcn.00416735
sub esp, 8
lea eax, [esp + 0x2dc]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.00413e2e
lea ecx, [esp + 0x1c]
call fcn.0040ec20
mov ecx, ebp
inc ebp
cmp ecx, 0x5a
jge 0x405ab8
mov eax, ebp
inc ebp
jmp 0x405abd
mov eax, 0x5a
push eax
mov ecx, 0x432418
call fcn.00401160
mov eax, dword [0x432be0]
inc ebx
cmp ebx, eax
jl 0x40584f
push esi
call fcn.00410e77
and eax, 0xff
mov ebx, esi
je 0x405c2c
jmp 0x405aed
xor esi, esi
lea edx, [esp + 0x50]
push 0x40
push edx
push str.PnP_Id
push eax
call fcn.00410fa4
lea edi, [esp + 0x50]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x405c1a
lea eax, [esp + 0x50]
push 0x42a8c8
push eax
call fcn.0041a878
add esp, 8
test eax, eax
jne 0x405b97
lea ecx, [esp + 0x50]
push str.PNP0F0B
push ecx
call fcn.0041a878
add esp, 8
test eax, eax
jne 0x405b97
lea edx, [esp + 0x50]
push str.PNP0F0E
push edx
call fcn.0041a878
add esp, 8
test eax, eax
jne 0x405b97
lea eax, [esp + 0x50]
push str.PNP0F12
push eax
call fcn.0041a878
add esp, 8
test eax, eax
jne 0x405b97
lea ecx, [esp + 0x50]
push 0x42a8a8
push ecx
call fcn.0041a878
add esp, 8
test eax, eax
jne 0x405b97
lea edx, [esp + 0x50]
push str.IBM3780
push edx
call fcn.0041a878
add esp, 8
test eax, eax
je 0x405bad
mov eax, dword [0x432bd0]
mov dword [0x432bcc], 1
or al, 0x10
mov dword [0x432bd0], eax
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x405bd3
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
lea ecx, [ecx + esi*8]
call fcn.0041419c
test eax, eax
jne 0x405c1a
mov eax, dword [esp + 0x18]
inc esi
cmp esi, eax
jl 0x405bb5
push 4
lea edx, [esp + 0x54]
push str.UPD
push edx
call fcn.00422e00
add esp, 0xc
test eax, eax
jne 0x405bfa
lea eax, [esp + 0x50]
push eax
call fcn.00405000
add esp, 4
jmp 0x405c1a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x50]
push ecx
push 1
push 0x4324a8
push edx
push 0
mov dword [esp + 0x24], 0
call fcn.0041684e
inc ebx
push ebx
call fcn.00410e77
and eax, 0xff
jne 0x405aeb
call fcn.0040b4e0
mov eax, ebp
inc ebp
cmp eax, 0x5a
mov byte [0x432bd5], 0
jl 0x405c45
mov ebp, 0x5a
push ebp
mov ecx, 0x432418
call fcn.00401160
mov esi, dword [esp + 0x14]
mov dword [esp + 0x3dc], 0xffffffff
test esi, esi
je 0x405c87
mov eax, dword [esp + 0x18]
test eax, eax
je 0x405c7e
lea edi, [eax]
mov ecx, esi
call fcn.00413e8c
add esi, 8
dec edi
jne 0x405c6d
mov esi, dword [esp + 0x14]
push esi
call fcn.00419f48
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