Function at 0x40f150
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f0425
mov eax, dword fs:[0]
push eax
mov eax, 0x17b0
call fcn.004cb570
mov eax, dword [0x542c54]
xor eax, esp
mov dword [esp + 0x17ac], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x542c54]
xor eax, esp
push eax
lea eax, [esp + 0x17c4]
mov dword fs:[0], eax
mov eax, dword [esp + 0x17ec]
mov edx, dword [esp + 0x17f4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
xor ebp, ebp
cmp dword [ecx + 0xc], 0x30
mov dword [esp + 0x17cc], ebp
jge 0x411a9b
push 0x1fe
lea edx, [esp + 0x46]
xor ecx, ecx
push ebp
push edx
mov word [esp + 0x4c], cx
call fcn.004cb5a0
push 0x200
lea eax, [esp + 0x250]
push ebp
push eax
call fcn.004cb5a0
push 0x200
lea ecx, [esp + 0x45c]
push ebp
push ecx
call fcn.004cb5a0
push 0x168
lea edx, [esp + 0x668]
push ebp
push edx
call fcn.004cb5a0
push 0x168
lea eax, [esp + 0x7dc]
push ebp
push eax
call fcn.004cb5a0
push 0x180
lea ecx, [esp + 0x950]
push ebp
push ecx
call fcn.004cb5a0
add esp, 0x48
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f24f
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xa90], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f27c
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xa94], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f2a9
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xa98], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f2d6
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xa9c], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f303
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xaa0], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f330
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xaa4], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f35d
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xaa8], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f38a
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xaac], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f3b7
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xab0], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f3e4
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xab4], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f411
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xab8], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f43e
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xabc], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f46b
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xac0], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f498
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xac4], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f4c5
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xac8], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f4f2
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xacc], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f51f
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xad0], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f54c
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xad4], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f579
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xad8], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f5a6
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xadc], eax
push 0x1fe
lea edx, [esp + 0xae6]
xor ecx, ecx
push ebp
push edx
mov byte [esp + 0x17d8], 1
mov word [esp + 0xaec], cx
call fcn.004cb5a0
push 0x200
lea eax, [esp + 0xcf0]
push ebp
push eax
call fcn.004cb5a0
push 0x200
lea ecx, [esp + 0xefc]
push ebp
push ecx
call fcn.004cb5a0
push 0x168
lea edx, [esp + 0x1108]
push ebp
push edx
call fcn.004cb5a0
push 0x168
lea eax, [esp + 0x127c]
push ebp
push eax
call fcn.004cb5a0
push 0x180
lea ecx, [esp + 0x13f0]
push ebp
push ecx
call fcn.004cb5a0
add esp, 0x48
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f65a
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1530], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f687
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1534], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f6b4
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1538], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f6e1
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x153c], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f70e
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1540], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f73b
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1544], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f768
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1548], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f795
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x154c], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f7c2
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1550], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f7ef
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1554], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f81c
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1558], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f849
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x155c], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f876
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1560], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f8a3
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1564], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f8d0
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1568], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f8fd
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x156c], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f92a
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1570], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f957
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1574], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f984
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1578], eax
call fcn.004bfb80
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40f9b1
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x157c], eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x17e0]
mov eax, dword [esp + 0x17d8]
mov ebx, dword [esp + 0x17e8]
mov ecx, 0x80
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x17d4]
mov dword [esp + 0x96c], ecx
mov ecx, dword [esp + 0x17dc]
mov dword [esp + 0x978], edx
mov edx, dword [esp + 0x17f0]
push ebp
mov dword [esp + 0x978], ecx
push 0x4f4b88
lea ecx, [esp + 0xad8]
mov byte [esp + 0x17d4], 2
mov dword [esp + 0x978], eax
mov dword [esp + 0x984], edx
mov dword [esp + 0xa38], ebx
mov dword [esp + 0x14d8], ebx
call fcn.004030d0
cmp dword [esp + 0x2c], ebp
je 0x40fa60
mov esi, dword [esp + 0x2c]
mov ecx, 0x10
lea edi, [esp + 0xa4e]
rep movsd dword es:[edi], dword [esi]
cmp ebx, ebp
je 0x40fa84
cmp ebx, 3
jl 0x40fa6e
cmp ebx, 9
jle 0x40fa84
mov eax, dword [ebx*4 + 0x53a0a4]
push eax
lea ecx, [esp + 0xad0]
call fcn.004037c0
jmp 0x40fac2
cmp byte [esp + 0x17e4], 0xb0
jne 0x40faa5
mov ecx, dword [ebx*4 + 0x53a0a4]
push ecx
push 0x4f5df4
lea edx, [esp + 0xad4]
push edx
jmp 0x40faba
mov eax, dword [ebx*4 + 0x53a0a4]
push eax
push 0x4f5df0
lea ecx, [esp + 0xad4]
push ecx
call fcn.00403410
add esp, 0xc
lea eax, [esp + 0x7a8]
mov edx, 0x1e
mov edi, edi
xor ecx, ecx
mov dword [eax - 0x168], ecx
mov dword [eax - 0x164], ecx
mov dword [eax - 0x160], ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
add eax, 0xc
sub edx, 1
jne 0x40fad0
xor eax, eax
jmp 0x40fb00
mov byte [esp + eax + 0x240], 0
mov byte [esp + eax + 0x440], 0
inc eax
cmp eax, 0x200
jl 0x40fb00
fld1
mov dl, byte [esp + 0x17e4]
or edi, 0xffffffff
fstp qword [esp + 0x9f0]
push ebp
push 0x4f4b88
lea ecx, [esp + 0xa98]
mov dword [esp + 0x918], ebp
mov dword [esp + 0x91c], ebp
mov dword [esp + 0x920], ebp
mov dword [esp + 0x924], ebp
mov dword [esp + 0x92c], ebp
mov dword [esp + 0x930], ebp
mov dword [esp + 0x928], ebp
mov dword [esp + 0x934], ebp
mov dword [esp + 0x938], ebp
mov dword [esp + 0x93c], ebp
mov dword [esp + 0x940], ebp
mov dword [esp + 0x944], ebp
mov dword [esp + 0x948], ebp
mov dword [esp + 0x95c], ebp
mov dword [esp + 0x94c], ebp
mov dword [esp + 0x950], ebp
mov dword [esp + 0x954], ebp
mov dword [esp + 0x958], ebp
mov dword [esp + 0x960], ebp
mov dword [esp + 0x964], ebp
mov dword [esp + 0x968], ebp
mov dword [esp + 0x96c], ebp
mov dword [esp + 0x970], ebp
mov dword [esp + 0x988], ebp
mov dword [esp + 0x98c], ebp
mov dword [esp + 0x990], ebp
mov dword [esp + 0x994], ebp
mov dword [esp + 0x998], ebp
mov dword [esp + 0x9a0], ebp
mov dword [esp + 0x9a4], ebp
mov dword [esp + 0x9a8], ebp
mov dword [esp + 0x9ac], ebp
mov dword [esp + 0x9b0], ebp
mov dword [esp + 0x9b4], ebp
mov dword [esp + 0x9b8], ebp
mov dword [esp + 0x9bc], ebp
mov dword [esp + 0x9c0], ebp
mov dword [esp + 0x9c8], ebp
mov dword [esp + 0x9cc], ebp
mov dword [esp + 0x9d0], ebp
mov dword [esp + 0x9d4], ebp
mov dword [esp + 0x9d8], ebp
mov dword [esp + 0x9dc], ebp
mov dword [esp + 0x9e0], edi
mov dword [esp + 0x9e4], edi
mov dword [esp + 0x9e8], edi
mov dword [esp + 0x9ec], edi
mov dword [esp + 0x9f0], ebp
mov dword [esp + 0x9f4], ebp
mov dword [esp + 0xa00], ebp
mov dword [esp + 0xa18], edi
mov dword [esp + 0xa04], edi
mov dword [esp + 0xa08], edi
mov dword [esp + 0xa0c], edi
mov dword [esp + 0xa10], edi
mov dword [esp + 0xa14], edi
mov dword [esp + 0xa1c], ebp
mov dword [esp + 0xa20], ebp
mov dword [esp + 0xa24], ebp
mov dword [esp + 0xa28], ebp
mov dword [esp + 0xa2c], ebp
mov dword [esp + 0xa34], ebp
mov dword [esp + 0xa3c], ebp
mov dword [esp + 0xa40], ebp
mov dword [esp + 0xa44], ebp
mov dword [esp + 0xa48], ebp
mov byte [esp + 0xa4c], dl
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xaa0]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xaa8]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xaac]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xab0]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xab4]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xab8]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xabc]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xac0]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xac4]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xac8]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xacc]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xad0]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xadc]
call fcn.004030d0
mov ecx, dword [esp + 0x17f8]
mov esi, dword [esp + 0xad8]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40fe63
cmp dword [esi + 0xc], ebp
lea ebx, [esi + 0xc]
jl 0x40fe52
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40fe52
push eax
call fcn.00404e60
add esp, 4
mov dword [esp + 0x28], eax
lock xadd dword [ebx], edi
dec edi
test edi, edi
jg 0x40fe42
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x28]
add eax, 0x10
mov dword [esp + 0xad8], eax
jmp 0x40fe63
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0xae0]
call fcn.004030d0
push ebp
push 0x4f4b88
lea ecx, [esp + 0xac8]
call fcn.004030d0
mov esi, dword [esp + 0x18]
mov ecx, 0x80
lea edi, [esp + 0x15c0]
xor dl, dl
rep movsd dword es:[edi], dword [esi]
xor eax, eax
jmp 0x40fe90
add dl, byte [esp + eax + 0x15c0]
inc eax
cmp eax, 0x200
jl 0x40fe90
test dl, dl
je 0x40feae
mov dword [esp + 0x920], 1
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
push 0x14
lea edi, [esi + 0x14]
push edi
mov ecx, ebx
call fcn.00404370
test eax, eax
jne 0x411a7b
lea eax, [esi + 0x2e]
push 8
push eax
mov ecx, ebx
mov dword [esp + 0x28], eax
call fcn.00404370
test eax, eax
jne 0x411a7b
lea eax, [esi + 0x36]
push 0x28
push eax
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00404370
test eax, eax
jne 0x411a7b
push 0x14
push edi
lea ecx, [esp + 0x1588]
push 0x40
push ecx
call fcn.004ccc69
lea eax, [esp + 0x1590]
add esp, 0x10
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ff20
sub eax, edx
push eax
lea edx, [esp + 0x1584]
push edx
lea ecx, [esp + 0xa9c]
call fcn.004030d0
lea ecx, [esp + 0xa94]
call fcn.00407d20
lea ecx, [esp + 0xa94]
call fcn.0040adf0
mov eax, dword [esp + 0x20]
push 8
push eax
lea ecx, [esp + 0x1588]
push 0x40
push ecx
call fcn.004ccc69
lea eax, [esp + 0x1590]
add esp, 0x10
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ff80
sub eax, esi
push eax
lea edx, [esp + 0x1584]
push edx
lea ecx, [esp + 0xaa4]
call fcn.004030d0
lea ecx, [esp + 0xa9c]
call fcn.00407d20
lea ecx, [esp + 0xa9c]
call fcn.0040adf0
mov eax, dword [esp + 0x1c]
push 0x28
push eax
lea ecx, [esp + 0x1588]
push 0x40
push ecx
call fcn.004ccc69
lea eax, [esp + 0x1590]
add esp, 0x10
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ffe0
sub eax, esi
push eax
lea edx, [esp + 0x1584]
push edx
lea ecx, [esp + 0xaac]
call fcn.004030d0
lea ecx, [esp + 0xaa4]
call fcn.00407d20
lea ecx, [esp + 0xaa4]
call fcn.0040adf0
push 0x14
push edi
mov ecx, ebx
call fcn.00404340
mov eax, dword [esp + 0x20]
push 8
push eax
mov ecx, ebx
call fcn.00404340
mov ecx, dword [esp + 0x1c]
push 0x28
push ecx
mov ecx, ebx
call fcn.00404340
push 0x14
push edi
lea edx, [esp + 0x1588]
push 0x40
push edx
call fcn.004ccc69
lea eax, [esp + 0x1590]
add esp, 0x10
lea esi, [eax + 1]
jmp 0x410060
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410060
sub eax, esi
push eax
lea eax, [esp + 0x1584]
push eax
lea ecx, [esp + 0xa98]
call fcn.004030d0
lea ecx, [esp + 0xa90]
call fcn.00407d20
lea ecx, [esp + 0xa90]
call fcn.0040adf0
mov ecx, dword [esp + 0x20]
push 8
push ecx
lea edx, [esp + 0x1588]
push 0x40
push edx
call fcn.004ccc69
lea eax, [esp + 0x1590]
add esp, 0x10
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4100c0
sub eax, esi
push eax
lea eax, [esp + 0x1584]
push eax
lea ecx, [esp + 0xaa0]
call fcn.004030d0
lea ecx, [esp + 0xa98]
call fcn.00407d20
lea ecx, [esp + 0xa98]
call fcn.0040adf0
mov ecx, dword [esp + 0x1c]
push 0x28
push ecx
lea edx, [esp + 0x1588]
push 0x40
push edx
call fcn.004ccc69
lea eax, [esp + 0x1590]
add esp, 0x10
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410120
sub eax, edx
push eax
lea eax, [esp + 0x1584]
push eax
lea ecx, [esp + 0xaa8]
call fcn.004030d0
lea ecx, [esp + 0xaa0]
call fcn.00407d20
lea ecx, [esp + 0xaa0]
call fcn.0040adf0
mov ecx, dword [esp + 0xaa0]
cmp dword [ecx - 0xc], ebp
je 0x411a62
mov edx, dword [esp + 0xa98]
cmp dword [edx - 0xc], ebp
je 0x411a62
xor edi, edi
cmp dword [ebx + 0xc], ebp
mov dword [esp + 0x28], 0xffffffff
jle 0x410270
mov ebp, dword [esp + 0x24]
xor esi, esi
or ebx, 0xffffffff
test esi, esi
jl 0x41035c
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov eax, dword [ebp + 8]
add eax, esi
mov eax, dword [eax + 0xa60]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40f245
push eax
mov eax, dword [esp + 0xaa4]
push eax
call fcn.004cb8b7
add esp, 8
test eax, eax
jne 0x41025a
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov eax, dword [ebp + 8]
add eax, esi
mov eax, dword [eax + 0xa50]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40f245
mov ecx, dword [esp + 0xa90]
push eax
push ecx
call fcn.004cb8b7
add esp, 8
test eax, eax
jne 0x41025a
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov eax, dword [ebp + 8]
add eax, esi
cmp dword [eax + 0x92c], ebx
je 0x4102a8
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov eax, dword [ebp + 8]
mov edx, dword [eax + esi + 0xa68]
add eax, esi
cmp dword [edx - 0xc], 0
jne 0x410249
mov dword [esp + 0x28], edi
jmp 0x41025a
mov eax, dword [esp + 0xaa8]
cmp dword [eax - 0xc], 0
je 0x410361
inc edi
add esi, 0xaa0
cmp edi, dword [ebp + 0xc]
jl 0x410192
mov ebx, dword [esp + 0x24]
xor ebp, ebp
mov esi, dword [esp + 0xa98]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
call eax
cmp dword [esi + 0xc], ebp
lea ecx, [esi + 0xc]
jl 0x410396
cmp eax, dword [esi]
jne 0x410396
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x4103cb
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x96c]
mov esi, edi
imul esi, esi, 0xaa0
add eax, esi
mov dword [eax + 0x92c], ecx
cmp dword [ebp + 0x11c], 1
jne 0x410361
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.vars_i_.CommandType__CMD_TYPE_CSMI_PHYSICAL_DRIVE
mov dword [esp + 0x30], edi
call fcn.00403830
call fcn.004056f0
add esp, 4
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov eax, dword [ebp + 8]
add eax, esi
mov dword [eax + 0x9f0], 0xb
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov eax, dword [ebp + 8]
add eax, esi
cmp edi, dword [ebp + 0xc]
jge 0x41035c
mov edx, dword [eax + 0x9f0]
mov ebp, dword [ebp + 8]
mov edx, dword [edx*4 + 0x53a0a4]
add ebp, esi
lea ecx, [ebp + 0xa8c]
test edx, edx
jne 0x410342
xor eax, eax
push eax
push edx
call fcn.004030d0
jmp 0x41026a
mov eax, edx
lea esi, [eax + 1]
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x410347
sub eax, esi
push eax
push edx
call fcn.004030d0
jmp 0x41026a
call fcn.004bfa15
lea ecx, [esp + 0xae0]
call fcn.00405720
lea ecx, [esp + 0x40]
call fcn.00405720
mov eax, dword [esp + 0x17f8]
add eax, 0xfffffff0
mov dword [esp + 0x17cc], ebx
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebx
dec ebx
test ebx, ebx
jmp 0x411abd
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebp
jne 0x4103af
call fcn.004029a0
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.004cc447
add esp, 0x10
add edi, 0x10
mov dword [esp + 0x20], edi
push 0x4f4b88
push 0x4f4958
lea ecx, [esp + 0x28]
mov byte [esp + 0x17d4], 3
call fcn.00407ac0
lea edx, [esp + 0xa90]
push edx
lea eax, [esp + 0xaa4]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebx
call fcn.0040b680
mov ecx, dword [eax]
mov esi, dword [esp + 0xaac]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
mov byte [esp + 0x17cc], 4
cmp eax, esi
je 0x410476
cmp dword [esi + 0xc], ebp
lea edi, [esi + 0xc]
jl 0x410465
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x410465
push eax
call fcn.00404e60
mov dword [esp + 0x20], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x410455
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x1c]
add ecx, 0x10
mov dword [esp + 0xaac], ecx
jmp 0x410476
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0xab4]
call fcn.004030d0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x17cc], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41049e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x18]
movzx edx, word [esi + 0xa0]
lea ecx, [esp + 0xabc]
push ecx
push edx
mov ecx, ebx
call fcn.0040d170
movzx ecx, word [esi + 0xa2]
mov dword [esp + 0xa14], eax
lea eax, [esp + 0xac0]
push eax
push ecx
mov ecx, ebx
call fcn.0040d2a0
lea edx, [esp + 0xa2c]
push edx
lea eax, [esp + 0xac8]
push eax
movzx eax, word [esi + 0xb0]
lea ecx, [esp + 0xabc]
push ecx
movzx ecx, word [esi + 0x9a]
lea edx, [esp + 0xac4]
push edx
movzx edx, word [esi + 0x98]
push eax
movzx eax, word [esi + 0x7e]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.0040ced0
mov ecx, dword [esp + 0xa14]
mov esi, dword [esp + 0xa98]
push eax
push ecx
mov dword [esp + 0x9d0], eax
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x20], esp
mov dword [esp + 0x28], esp
call eax
cmp dword [esi + 0xc], ebp
lea edx, [esi + 0xc]
jl 0x410561
cmp eax, dword [esi]
jne 0x410561
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x410596
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebp
jne 0x41057a
call fcn.004029a0
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.004cc447
add esp, 0x10
mov edx, dword [esp + 0x28]
add edi, 0x10
mov dword [edx], edi
mov esi, dword [esp + 0xaac]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov byte [esp + 0x17dc], 5
mov dword [esp + 0x40], esp
mov dword [esp + 0x2c], esp
call edx
cmp dword [esi + 0xc], ebp
lea edx, [esi + 0xc]
jl 0x4105dd
cmp eax, dword [esi]
jne 0x4105dd
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x410612
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebp
jne 0x4105f6
call fcn.004029a0
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.004cc447
add esp, 0x10
mov edx, dword [esp + 0x2c]
add edi, 0x10
mov dword [edx], edi
mov ecx, ebx
mov byte [esp + 0x17dc], 3
call fcn.0040a730
mov dword [esp + 0x9cc], eax
cmp eax, 6
jne 0x41063f
mov dword [esp + 0x9d0], eax
jmp 0x41064b
cmp eax, 5
jne 0x41064b
mov dword [esp + 0x9d0], eax
mov edx, dword [esp + 0xa14]
mov esi, 1
cmp edx, 3
jb 0x41068f
test byte [esp + 0xe4], 1
je 0x41066d
mov dword [esp + 0x93c], esi
test byte [esp + 0xe6], 8
je 0x41068f
test byte [esp + 0xec], 8
mov dword [esp + 0x948], esi
je 0x41068f
mov dword [esp + 0x950], esi
cmp edx, 5
jb 0x4106cb
mov eax, dword [esp + 0xe6]
test eax, 0x200
je 0x4106bd
test dword [esp + 0xec], 0x200
mov dword [esp + 0x944], esi
je 0x4106bd
mov dword [esp + 0x94c], esi
test eax, 0x400
je 0x4106cb
mov dword [esp + 0x940], esi
mov edi, 0x100
cmp edx, 6
jb 0x4106e5
test dword [esp + 0xd8], edi
je 0x4106e5
mov dword [esp + 0x954], esi
cmp edx, 7
jb 0x41079c
test byte [esp + 0x1ec], 1
je 0x4106ff
mov dword [esp + 0x958], esi
test byte [esp + 0x192], 1
je 0x410710
mov dword [esp + 0x968], esi
mov ax, word [esp + 0x1f2]
cmp ax, si
jne 0x41072b
mov dword [esp + 0x964], esi
mov dword [esp + 0x9f8], esi
mov ecx, dword [esp + 0x1f2]
add ecx, 0xfffffbff
mov ebx, 0xfbfd
cmp cx, bx
ja 0x41074c
movzx eax, ax
mov dword [esp + 0x9f8], eax
mov eax, dword [esp + 0x190]
mov ecx, eax
and ecx, 0xf
jbe 0x410787
cmp cx, 5
ja 0x410787
and eax, 0xf
mov ecx, dword [eax*4 + 0x53a11c]
push ecx
lea edx, [esp + 0xad8]
push 0x4f5db8
push edx
call fcn.00403410
mov edx, dword [esp + 0xa20]
add esp, 0xc
cmp edx, 7
jb 0x41079c
test dword [esp + 0xdc], edi
je 0x41079c
mov dword [esp + 0x95c], esi
mov esi, dword [esp + 0xaa0]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
call edx
cmp dword [esi + 0xc], ebp
lea ecx, [esi + 0xc]
jl 0x4107cb
cmp eax, dword [esi]
jne 0x4107cb
mov ebx, 1
mov edi, esi
mov eax, ebx
lock xadd dword [ecx], eax
jmp 0x410804
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
mov ebx, 1
push ebx
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebp
jne 0x4107e8
call fcn.004029a0
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.004cc447
add esp, 0x10
lea esi, [edi + 0x10]
mov dword [esp + 0x1c], esi
mov edi, dword [esi - 0xc]
mov eax, dword [esi - 8]
mov ecx, ebx
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
mov byte [esp + 0x17cc], 6
jge 0x410832
push edi
lea ecx, [esp + 0x20]
call fcn.00402c90
mov esi, dword [esp + 0x1c]
lea edx, [edi + 1]
push edx
push esi
call fcn.004ccc52
push eax
call fcn.00403e70
add esp, 0xc
cmp edi, ebp
jl 0x411a58
cmp edi, dword [esi - 8]
jg 0x411a58
mov dword [esi - 0xc], edi
mov byte [edi + esi], 0
cmp dword [esi - 0xc], ebp
jl 0x410889
push str.MAXTOR
push esi
call fcn.004ccf7c
add esp, 8
cmp eax, ebp
je 0x410889
sub eax, esi
jne 0x410889
cmp dword [esp + 0x9cc], 2
jne 0x410889
mov dword [esp + 0x960], ebx
mov eax, dword [esp + 0x18]
mov ecx, 0x3fff
cmp word [eax + 2], cx
jbe 0x4108a5
mov edx, ecx
mov word [eax + 2], dx
mov dword [esp + 0x914], ebx
cmp word [eax + 6], 0x10
jbe 0x4108bc
mov ecx, 0x10
mov word [eax + 6], cx
mov dword [esp + 0x914], ebx
cmp word [eax + 0xc], 0x3f
jbe 0x4108d3
mov edx, 0x3f
mov word [eax + 0xc], dx
mov dword [esp + 0x914], ebx
movzx ecx, word [eax + 2]
mov edx, dword [eax + 0xc8]
movzx esi, cx
mov dword [esp + 0x34], ecx
movzx ecx, word [eax + 6]
movzx edi, cx
mov dword [esp + 0x38], ecx
movzx ecx, word [eax + 0xc]
movzx ebp, cx
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x78]
movzx eax, word [eax + 0xcc]
mov ebx, ecx
and ebx, 0xfffffff
mov dword [esp + 0x984], esi
mov dword [esp + 0x988], edi
mov dword [esp + 0x98c], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x990], ebx
mov dword [esp + 0x998], edx
mov dword [esp + 0x99c], eax
cmp ecx, 0x1100003
jne 0x41094d
mov dword [esp + 0x934], 1
cmp word [esp + 0x34], 0
je 0x411a06
cmp word [esp + 0x38], 0
je 0x411a06
cmp word [esp + 0x30], 0
je 0x411a06
mov eax, ebp
imul eax, edi
imul eax, esi
push 0
shl eax, 9
cdq
push 0x3e8
push edx
push eax
call fcn.004cd340
push 0
push 0x3e8
push edx
push eax
call fcn.004cd340
test edx, edx
ja 0x4109a4
cmp eax, 0x3e8
jbe 0x4109fc
mov eax, ebp
cdq
mov ecx, eax
mov ebp, edx
mov eax, edi
cdq
push edx
push eax
push ebp
push ecx
call fcn.004cd0f0
mov ecx, eax
mov edi, edx
mov eax, esi
cdq
push edx
push eax
push edi
push ecx
call fcn.004cd0f0
push 0
push 0x200
mov edi, edx
mov esi, eax
push edi
push esi
call fcn.004cd0f0
push 0
push 0x3e8
push edx
push eax
call fcn.004cd340
push 0
push 0x3e8
push edx
push eax
call fcn.004cd340
mov ebp, eax
sub ebp, 0x31
jmp 0x410a4f
mov eax, ebp
cdq
mov ecx, eax
mov ebp, edx
mov eax, edi
cdq
push edx
push eax
push ebp
push ecx
call fcn.004cd0f0
mov ecx, eax
mov edi, edx
mov eax, esi
cdq
push edx
push eax
push edi
push ecx
call fcn.004cd0f0
push 0
push 0x200
mov edi, edx
mov esi, eax
push edi
push esi
call fcn.004cd0f0
push 0
push 0x3e8
push edx
push eax
call fcn.004cd340
push 0
push 0x3e8
push edx
push eax
call fcn.004cd340
mov ebp, eax
mov dword [esp + 0x9a8], ebp
mov dword [esp + 0x9a0], esi
mov dword [esp + 0x9a4], edi
test ebx, ebx
jbe 0x410aad
xor esi, esi
push esi
push 0x200
push esi
push ebx
call fcn.004cd0f0
push esi
push 0x3e8
push edx
push eax
call fcn.004cd340
push esi
push 0x3e8
push edx
push eax
call fcn.004cd340
test edx, edx
ja 0x410a9a
cmp eax, 0x31
jbe 0x410aad
lea edi, [eax - 0x31]
mov dword [esp + 0x9a0], ebx
mov dword [esp + 0x9a4], esi
jmp 0x410aaf
xor edi, edi
cmp dword [esp + 0x940], 0
mov dword [esp + 0x9ac], edi
je 0x410b14
mov ebx, dword [esp + 0x99c]
mov esi, dword [esp + 0x998]
push 0
push 0x200
push ebx
push esi
call fcn.004cd0f0
push 0
push 0x3e8
push edx
push eax
call fcn.004cd340
push 0
push 0x3e8
push edx
push eax
call fcn.004cd340
test edx, edx
ja 0x410b01
cmp eax, 0x31
jbe 0x410b14
add eax, 0xffffffcf
mov dword [esp + 0x9a0], esi
mov dword [esp + 0x9a4], ebx
jmp 0x410b16
xor eax, eax
mov ecx, dword [esp + 0x18]
movzx edx, word [ecx + 0x2a]
shl edx, 9
mov dword [esp + 0x9b8], edx
xor edx, edx
mov dword [esp + 0x9b0], eax
cmp dword [esp + 0x958], edx
je 0x410b51
mov ecx, dword [ecx + 0x1ae]
shl ecx, 9
mov dword [esp + 0x9c0], ecx
mov dword [esp + 0x9c4], edx
mov ecx, dword [esp + 0x14]
cmp ecx, 0xfffffff
jbe 0x410b66
mov dword [esp + 0x980], edx
jmp 0x410b92
cmp ebp, edx
jne 0x410b73
mov dword [esp + 0x980], edx
jmp 0x410b92
cmp eax, edi
jbe 0x410b80
mov dword [esp + 0x980], eax
jmp 0x410b92
mov dword [esp + 0x980], edi
cmp edi, ebp
ja 0x410b92
mov dword [esp + 0x980], ebp
cmp dword [esp + 0x940], edx
je 0x410bae
cmp ecx, 0xfffffff
jae 0x410bae
cmp edi, eax
je 0x410bae
mov dword [esp + 0x9b0], edx
call fcn.004bfb80
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x410bc8
push 0x80004005
call fcn.00402700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ecx, [eax + 0x10]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x93c], 0
mov byte [esp + 0x17cc], 7
jne 0x410c07
cmp dword [esp + 0x934], 0
jne 0x410c07
mov esi, dword [esp + 0x24]
cmp dword [esi + 0xe4], 0
je 0x411678
jmp 0x410c0b
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0xa30]
cmp eax, 0xc
ja case.0x410c1b.9
jmp dword [eax*4 + 0x411af8]
mov edi, dword [esp + 0x17d4]
push edi
lea ecx, [esp + 0x1c]
push str.GetSmartAttributePd__d____1
push ecx
call fcn.00403410
mov eax, dword [esp + 0x24]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov ebx, esp
push eax
call fcn.00404e60
add eax, 0x10
add esp, 4
mov dword [ebx], eax
call fcn.004056f0
mov eax, dword [esp + 0xa48]
add esp, 4
lea edx, [esp + 0x40]
push edx
push eax
push edi
mov ecx, esi
call fcn.0040ea40
test eax, eax
je 0x410d05
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
mov eax, dword [esp + 0xa44]
lea edx, [esp + 0xae0]
push edx
push eax
push edi
mov ecx, esi
call fcn.0040ea40
lea ecx, [esp + 0xae0]
push ecx
lea edx, [esp + 0x44]
push edx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x410cd6
push edi
lea eax, [esp + 0x1c]
push str.GetSmartAttributePd__d____1A
push eax
call fcn.00403410
add esp, 0xc
mov dword [esp + 0x918], 1
mov edx, dword [esp + 0xa44]
lea ecx, [esp + 0x40]
push ecx
push edx
push edi
mov ecx, esi
call fcn.0040ebe0
test eax, eax
je 0x410cfa
mov dword [esp + 0x91c], 1
mov dword [esp + 0x910], 1
cmp dword [esp + 0x918], 0
jne 0x410e01
mov eax, dword [esp + 0xa44]
push 0xd8
push eax
push edi
mov ecx, esi
call fcn.0040ed80
test eax, eax
je 0x410e01
push edi
lea ecx, [esp + 0x1c]
push str.GetSmartAttributePd__d____2
push ecx
call fcn.00403410
add esp, 8
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00407350
call fcn.004056f0
mov ecx, dword [esp + 0xa48]
add esp, 4
lea eax, [esp + 0x40]
push eax
push ecx
push edi
mov ecx, esi
call fcn.0040ea40
test eax, eax
je 0x410e01
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.0040d7c0
mov ecx, dword [esp + 0xa44]
lea eax, [esp + 0xae0]
push eax
push ecx
push edi
mov ecx, esi
call fcn.0040ea40
lea edx, [esp + 0xae0]
push edx
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x410dd5
push edi
lea ecx, [esp + 0x1c]
push str.GetSmartAttributePd__d____2A
push ecx
call fcn.00403410
mov ebx, 1
add esp, 0xc
mov dword [esp + 0x918], ebx
jmp 0x410dda
mov ebx, 1
mov eax, dword [esp + 0xa44]
lea edx, [esp + 0x40]
push edx
push eax
push edi
mov ecx, esi
call fcn.0040ebe0
test eax, eax
je 0x410dfa
mov dword [esp + 0x91c], ebx
mov dword [esp + 0x910], ebx
mov eax, 0x200
lea ecx, [esp + 0x440]
lea ecx, [ecx]
mov edx, dword [ecx - 0x200]
cmp edx, dword [ecx]
jne 0x411678
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x410e10
cmp dword [esp + 0xa38], 3
je 0x411678
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.asi.SmartReadData__asi.SmartReadThreshold
call fcn.00403830
call fcn.004056f0
add esp, 4
xor eax, eax
mov dword [esp + 0x918], eax
mov dword [esp + 0x91c], eax
mov dword [esp + 0x910], eax
jmp 0x411678
mov edi, dword [esp + 0x17dc]
mov ebx, dword [esp + 0x17d8]
lea eax, [esp + 0x40]
push eax
push edi
push ebx
mov ecx, esi
call fcn.00409160
test eax, eax
je 0x410eef
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
lea edx, [esp + 0xae0]
push edx
push edi
push ebx
mov ecx, esi
call fcn.00409160
lea eax, [esp + 0xae0]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.0040e740
mov ebp, 1
test eax, eax
je 0x410ecd
mov dword [esp + 0x918], ebp
lea edx, [esp + 0x40]
push edx
push edi
push ebx
mov ecx, esi
call fcn.00409370
test eax, eax
je 0x410ee6
mov dword [esp + 0x91c], ebp
mov dword [esp + 0x910], ebp
jmp 0x410ef4
mov ebp, 1
cmp dword [esp + 0x918], 0
jne 0x411678
push 0xd8
push edi
push ebx
mov ecx, esi
call fcn.00409580
test eax, eax
je 0x411678
lea eax, [esp + 0x40]
push eax
push edi
push ebx
mov ecx, esi
call fcn.00409160
test eax, eax
je 0x411678
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
lea edx, [esp + 0xae0]
push edx
push edi
push ebx
mov ecx, esi
call fcn.00409160
lea eax, [esp + 0xae0]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x410f6a
mov dword [esp + 0x918], ebp
lea edx, [esp + 0x40]
push edx
push edi
push ebx
mov ecx, esi
call fcn.00409370
test eax, eax
je 0x410f83
mov dword [esp + 0x91c], ebp
mov dword [esp + 0x910], ebp
jmp 0x411678
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.GetSmartAttributeSi_physicalDriveId__asi_
call fcn.00403830
call fcn.004056f0
mov edi, dword [esp + 0x17d8]
add esp, 4
lea eax, [esp + 0x40]
push eax
push edi
mov ecx, esi
call fcn.0040eec0
test eax, eax
je 0x411678
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.GetSmartAttributeSi_physicalDriveId__asiCheck_
call fcn.00403830
call fcn.004056f0
add esp, 4
lea edx, [esp + 0xae0]
push edx
push edi
mov ecx, esi
call fcn.0040eec0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.CheckSmartAttributeCorrect_asi__asiCheck____1
call fcn.00403830
call fcn.004056f0
add esp, 4
lea eax, [esp + 0xae0]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.0040e740
mov ebx, 1
test eax, eax
je 0x4110b2
lea edx, [esp + 0xae0]
push edx
push 0xa0
push edi
mov ecx, esi
mov dword [esp + 0x924], ebx
call fcn.0040ea40
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.CheckSmartAttributeCorrect_asi__asiCheck____2
call fcn.00403830
call fcn.004056f0
add esp, 4
lea eax, [esp + 0xae0]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x4110b2
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.GetSmartThresholdPd
call fcn.00403830
call fcn.004056f0
add esp, 4
lea edx, [esp + 0x40]
push edx
push 0xa0
push edi
mov ecx, esi
call fcn.0040ebe0
mov dword [esp + 0x91c], ebx
mov dword [esp + 0x910], ebx
jmp 0x411678
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x17d8]
lea eax, [esp + 0x40]
push eax
push edi
push ebx
mov ecx, esi
call fcn.0040ef80
test eax, eax
je 0x41113e
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
lea edx, [esp + 0xae0]
push edx
push edi
push ebx
mov ecx, esi
call fcn.0040ef80
lea eax, [esp + 0xae0]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.0040e740
mov ebp, 1
test eax, eax
je 0x41111c
mov dword [esp + 0x918], ebp
lea edx, [esp + 0x40]
push edx
push edi
push ebx
mov ecx, esi
call fcn.0040f000
test eax, eax
je 0x411135
mov dword [esp + 0x91c], ebp
mov dword [esp + 0x910], ebp
jmp 0x411143
mov ebp, 1
cmp dword [esp + 0x918], 0
jne 0x411678
push 0xd8
push edi
push ebx
mov ecx, esi
call fcn.0040f080
test eax, eax
je 0x411678
lea eax, [esp + 0x40]
push eax
push edi
push ebx
mov ecx, esi
call fcn.0040ef80
test eax, eax
je 0x411678
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
lea edx, [esp + 0xae0]
push edx
push edi
push ebx
mov ecx, esi
call fcn.0040ef80
lea eax, [esp + 0xae0]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x4111b9
mov dword [esp + 0x918], ebp
lea edx, [esp + 0x40]
push edx
push edi
push ebx
mov ecx, esi
call fcn.0040f000
jmp 0x410f78
mov ebx, dword [esp + 0x17d4]
push ebx
lea eax, [esp + 0x1c]
push str.GetSmartAttributePd__d____1_CSMI
push eax
call fcn.00403410
mov eax, dword [esp + 0x24]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov edi, esp
push eax
call fcn.00404e60
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.004056f0
mov edx, dword [esp + 0xa48]
add esp, 4
lea ecx, [esp + 0x40]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.0040ea40
test eax, eax
je 0x4112b1
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.0040d7c0
mov edx, dword [esp + 0xa44]
lea ecx, [esp + 0xae0]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.0040ea40
lea eax, [esp + 0xae0]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x411283
push ebx
lea edx, [esp + 0x1c]
push str.GetSmartAttributePd__d____1A_CSMI
push edx
call fcn.00403410
mov edi, 1
add esp, 0xc
mov dword [esp + 0x918], edi
jmp 0x411288
mov edi, 1
mov ecx, dword [esp + 0xa44]
lea eax, [esp + 0x40]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.0040ebe0
test eax, eax
je 0x4112a8
mov dword [esp + 0x91c], edi
mov dword [esp + 0x910], edi
jmp 0x4112bb
cmp dword [esp + 0x910], 0
je 0x4112d3
cmp dword [esp + 0x918], 0
je 0x4112d3
cmp dword [esp + 0x91c], 0
jne 0x411678
push ebx
lea edx, [esp + 0x1c]
push str.GetSmartAttributeCsmi___1_CSMI
push edx
call fcn.00403410
add esp, 8
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00407350
call fcn.004056f0
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x17dc]
add esp, 4
lea ecx, [esp + 0x40]
push ecx
push ebx
push edi
mov ecx, esi
call fcn.0040ef80
mov ebp, 0xa
test eax, eax
je 0x41138a
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.0040d7c0
lea eax, [esp + 0xae0]
push eax
push ebx
push edi
mov ecx, esi
call fcn.0040ef80
lea ecx, [esp + 0xae0]
push ecx
lea edx, [esp + 0x44]
push edx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x411360
mov dword [esp + 0x918], 1
lea eax, [esp + 0x40]
push eax
push ebx
push edi
mov ecx, esi
call fcn.0040f000
test eax, eax
je 0x41137d
mov dword [esp + 0x91c], 1
mov dword [esp + 0x910], 1
jmp 0x411394
cmp dword [esp + 0x910], 0
je 0x4113af
cmp dword [esp + 0x918], 0
je 0x4113bd
cmp dword [esp + 0x91c], 0
je 0x4113af
mov dword [esp + 0xa30], ebp
cmp dword [esp + 0x918], 0
jne 0x411678
push 0xd8
push ebx
push edi
mov ecx, esi
call fcn.0040f080
test eax, eax
je 0x411678
lea ecx, [esp + 0x40]
push ecx
push ebx
push edi
mov ecx, esi
call fcn.0040ef80
test eax, eax
je 0x411678
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.0040d7c0
lea eax, [esp + 0xae0]
push eax
push ebx
push edi
mov ecx, esi
call fcn.0040ef80
lea ecx, [esp + 0xae0]
push ecx
lea edx, [esp + 0x44]
push edx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x411429
mov dword [esp + 0x918], 1
lea eax, [esp + 0x40]
push eax
push ebx
push edi
mov ecx, esi
call fcn.0040f000
test eax, eax
je 0x411446
mov dword [esp + 0x91c], 1
mov dword [esp + 0xa30], ebp
jmp 0x41166d
mov ecx, dword [eax*4 + 0x53a0a4]
mov ebx, dword [esp + 0x17d4]
push ecx
push ebx
lea edx, [esp + 0x20]
push str.GetSmartAttributeSat__d____1___s_
push edx
call fcn.00403410
mov eax, dword [esp + 0x28]
add esp, 0xc
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov edi, esp
push eax
call fcn.00404e60
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.004056f0
mov ecx, dword [esp + 0xa48]
add esp, 4
lea eax, [esp + 0x40]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.00409a10
test eax, eax
je 0x41153e
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.0040d7c0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.GetSmartAttributeSat___1A
call fcn.00403830
call fcn.004056f0
mov ecx, dword [esp + 0xa48]
add esp, 4
lea eax, [esp + 0xae0]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.00409a10
lea edx, [esp + 0xae0]
push edx
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call fcn.0040e740
mov edi, 1
test eax, eax
je 0x411515
mov dword [esp + 0x918], edi
mov edx, dword [esp + 0xa44]
lea ecx, [esp + 0x40]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.00409cd0
test eax, eax
je 0x411535
mov dword [esp + 0x91c], edi
mov dword [esp + 0x910], edi
jmp 0x411543
mov edi, 1
cmp dword [esp + 0x918], 0
jne 0x411678
mov eax, dword [esp + 0xa30]
mov ecx, dword [esp + 0xa44]
push eax
push 0xd8
push ecx
push ebx
mov ecx, esi
call fcn.00409f80
test eax, eax
je 0x411678
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.GetSmartAttributeSat___2
call fcn.00403830
call fcn.004056f0
mov eax, dword [esp + 0xa48]
add esp, 4
lea edx, [esp + 0x40]
push edx
push eax
push ebx
mov ecx, esi
call fcn.00409a10
test eax, eax
je 0x411678
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.GetSmartAttributeSat___2A
call fcn.00403830
call fcn.004056f0
mov eax, dword [esp + 0xa48]
add esp, 4
lea edx, [esp + 0xae0]
push edx
push eax
push ebx
mov ecx, esi
call fcn.00409a10
lea ecx, [esp + 0xae0]
push ecx
lea edx, [esp + 0x44]
push edx
mov ecx, esi
call fcn.0040e740
test eax, eax
je 0x411608
mov dword [esp + 0x918], edi
mov ecx, dword [esp + 0xa44]
lea eax, [esp + 0x40]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.00409cd0
test eax, eax
je 0x411628
mov dword [esp + 0x91c], edi
mov dword [esp + 0x910], edi
jmp 0x411678
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.0040ce90
mov dword [esp + 0x918], eax
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.0040cea0
cmp dword [esp + 0x918], 0
mov dword [esp + 0x91c], eax
je 0x411678
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040d7c0
mov dword [esp + 0x910], 1
xor ebx, ebx
cmp dword [esp + 0xa38], 7
jne 0x411728
mov eax, dword [esp + 0xaa0]
cmp dword [eax - 0xc], ebx
jl 0x4116da
push str.OCZ_VERTEX3
push eax
call fcn.004ccf7c
add esp, 8
cmp eax, ebx
je 0x4116da
sub eax, dword [esp + 0xaa0]
jne 0x4116da
mov eax, dword [esp + 0xa98]
cmp dword [eax - 0xc], ebx
jl 0x4116da
push str.2.02
push eax
call fcn.004ccf7c
add esp, 8
cmp eax, ebx
je 0x4116da
sub eax, dword [esp + 0xa98]
je 0x411776
mov eax, dword [esp + 0xaa0]
cmp dword [eax - 0xc], ebx
jl 0x411728
push str.OCZ_VERTEX2
push eax
call fcn.004ccf7c
add esp, 8
cmp eax, ebx
je 0x411728
sub eax, dword [esp + 0xaa0]
jne 0x411728
mov eax, dword [esp + 0xa98]
cmp dword [eax - 0xc], ebx
jl 0x411728
push str.1.27
push eax
call fcn.004ccf7c
add esp, 8
cmp eax, ebx
je 0x411728
sub eax, dword [esp + 0xa98]
je 0x411776
mov eax, dword [esp + 0xaa0]
cmp dword [eax - 0xc], ebx
jl 0x411781
push str.SSD_G2_Series
push eax
call fcn.004ccf7c
add esp, 8
cmp eax, ebx
je 0x411781
sub eax, dword [esp + 0xaa0]
jne 0x411781
mov eax, dword [esp + 0xa98]
cmp dword [eax - 0xc], ebx
jl 0x411781
push str.3.6.5
push eax
call fcn.004ccf7c
add esp, 8
cmp eax, ebx
je 0x411781
sub eax, dword [esp + 0xa98]
jne 0x411781
mov dword [esp + 0x938], 1
mov edx, dword [esp + 0x9e0]
or edi, 0xffffffff
mov dword [esp + 0x9e4], edx
cmp dword [esp + 0x918], ebx
jne 0x4117cc
mov dword [esp + 0x9d8], edi
mov dword [esp + 0x9dc], edi
mov dword [esp + 0x9e0], edi
mov dword [esp + 0x9e4], edi
mov dword [esp + 0x9e8], ebx
mov dword [esp + 0x9ec], ebx
mov dword [esp + 0xa1c], ebx
mov eax, dword [esp + 0xaa0]
cmp dword [eax - 0xc], ebx
jl 0x411816
push str.Intel
push eax
call fcn.004ccf7c
add esp, 8
cmp eax, ebx
je 0x411816
sub eax, dword [esp + 0xaa0]
jne 0x411816
mov eax, 0xda753
cmp dword [esp + 0x9dc], eax
jle 0x411816
sub dword [esp + 0x9e0], eax
sub dword [esp + 0x9d8], eax
sub dword [esp + 0x9dc], eax
cmp dword [esp + 0x914], ebx
je 0x4118e3
cmp dword [esi + 0xe4], ebx
je 0x411839
cmp dword [esp + 0x17e8], 3
jl 0x4118e3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov edx, edi
lea ecx, [eax + 0xc]
mov byte [esp + 0x17cc], 6
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411860
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov edx, edi
lea ecx, [eax + 0xc]
mov byte [esp + 0x17cc], 3
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411887
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov edx, edi
lea ecx, [eax + 0xc]
mov byte [esp + 0x17cc], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4118ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xae0]
call fcn.00405720
lea ecx, [esp + 0x40]
call fcn.00405720
mov eax, dword [esp + 0x17f8]
add eax, 0xfffffff0
mov dword [esp + 0x17cc], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jmp 0x411abd
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x411903
cmp dword [esp + 0x918], ebx
je 0x411839
push 1
push eax
lea ecx, [esi + 4]
call fcn.00407fc0
sub esp, 0xaa0
lea edx, [esp + 0xae0]
mov ecx, esp
mov dword [esp + 0xab4], esp
push edx
call fcn.00407370
lea ecx, [esi + 4]
call fcn.0040f0d0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x17cc], 6
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41194e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x17cc], 3
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411975
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x17cc], 2
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41199c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xae0]
call fcn.00405720
lea ecx, [esp + 0x40]
call fcn.00405720
mov eax, dword [esp + 0x17f8]
add eax, 0xfffffff0
mov dword [esp + 0x17cc], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x4119d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x411acb
lea eax, [ecx - 0x10]
mov byte [esp + 0x17cc], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411a06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x17cc], 3
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411a2e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x17cc], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411a86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x411a86
push 0x80070057
call fcn.00402700
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str.asi.Model.IsEmpty____asi.FirmwareRev.IsEmpty__
call fcn.00403830
call fcn.004056f0
add esp, 4
mov dword [esp + 0x914], 1
lea ecx, [esp + 0xae0]
call fcn.00405720
lea ecx, [esp + 0x40]
call fcn.00405720
mov eax, dword [esp + 0x17f8]
add eax, 0xfffffff0
mov dword [esp + 0x17cc], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411ac9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x17c4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x17ac]
xor ecx, esp
call fcn.004cb553
add esp, 0x17bc
ret 0x28