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

Disassembly:
push 0xffffffffffffffff
push 0x4607ae
mov eax, dword fs:[0]
push eax
sub esp, 0x154
mov eax, dword [0x480208]
xor eax, esp
mov dword [esp + 0x150], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x480208]
xor eax, esp
push eax
lea eax, [esp + 0x168]
mov dword fs:[0], eax
call fcn.00423c6d
mov eax, dword [eax + 4]
xor ebx, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ebx
call fcn.0042b725
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x40a247
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
xor eax, eax
push 0x1e80
push ebx
push 0x49afa0
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0xf8], 0
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov word [esp + 0x8c], ax
mov byte [esp + 0x8e], al
mov byte [0x49cea0], al
mov byte [0x49d868], al
mov byte [0x49ab40], al
call fcn.00442640
add esp, 0xc
cmp dword [esp + 0x178], ebx
je 0x40a2d9
mov edi, dword [0x47e184]
xor esi, esi
mov dword [0x49d8e8], ebx
mov dword [esp + 0x90], edi
jmp 0x40a2e9
mov esi, dword [esp + 0x17c]
mov edi, esi
mov dword [esp + 0x90], esi
call fcn.00407d30
cmp esi, edi
mov dword [esp + 0x28], esi
jge 0x40ba18
lea ebx, [ebx]
push 0x400
push 0
push 0x49ab90
mov dword [esp + 0x24], 0
call fcn.00442640
mov esi, dword [esp + 0x34]
xor eax, eax
lea ecx, [esp + 0xc4]
push esi
push ecx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
call fcn.004193b0
add esp, 0x14
test eax, eax
je 0x40a3a1
movzx edx, byte [esp + 0xbb]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp qword [esp + 0xa8]
fld qword [0x466dd8]
call fcn.004449e0
fdivr qword [esp + 0xa8]
call fcn.004449e0
call fcn.004448f0
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x3d0
mov byte [ecx + 0x49afc0], al
cmp dword [esi*4 + 0x49d8f0], 1
je 0x40b9fe
mov edx, dword [esp + 0x28]
push edx
call fcn.00418e40
mov ebx, eax
add esp, 4
cmp ebx, 0xffffffff
je 0x40b9fe
mov edi, dword [esp + 0x1c]
mov ebp, edi
push ebx
imul ebp, ebp, 0x3d0
call fcn.00408760
push 0x49ab90
xor esi, esi
push ebx
mov dword [ebp + 0x49afa8], eax
mov dword [ebp + 0x49afbc], esi
call fcn.004014c0
mov eax, dword [0x49ab98]
mov ecx, dword [0x49ab9c]
push 0x400
push esi
push 0x49ab90
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ecx
call fcn.00442640
push esi
push 0x49ab90
push ebx
call fcn.00408350
add esp, 0x24
neg eax
sbb eax, eax
inc eax
je 0x40aaa8
mov ecx, 0x80
mov esi, 0x49ab90
mov edi, 0x49cfa0
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
push edi
push ebx
lea eax, [ebp + 0x49b090]
push eax
lea eax, [esp + 0x30]
push eax
lea ecx, [ebp + 0x49b368]
push ecx
lea esi, [ebp + 0x49b060]
push esi
lea edx, [ebp + 0x49b054]
push edx
lea eax, [ebp + 0x49b013]
push eax
lea edi, [ebp + 0x49afc1]
push edi
push 0x49ab90
mov dword [esp + 0x4c], 0
call fcn.004095a0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
push 1
push 0
push ebx
mov dword [ebp + 0x49b068], eax
mov dword [ebp + 0x49b06c], ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
call fcn.00408d20
add esp, 0x34
test al, al
jne 0x40b9fe
cmp word [esp + 0x24], 1
jne 0x40a4e7
push str.WDC_WDS
push edi
call fcn.00442be0
add esp, 8
test eax, eax
je 0x40a4e7
mov dword [ebp + 0x49b08c], 1
jmp 0x40a4f1
mov dword [ebp + 0x49b08c], 0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 0
add ecx, 0xfa2d4590
push 0x1dcee0
adc edx, 0xffffffff
push edx
push ecx
call fcn.00444870
push 0x400
push 0
push 0x49d468
mov dword [ebp + 0x49b070], eax
mov dword [ebp + 0x49b074], edx
call fcn.00442640
push 2
push 0x49d468
push ebx
call fcn.00407f50
add esp, 0x18
test eax, eax
jne 0x40a9c9
push edi
call fcn.00408a70
add esp, 4
test al, al
mov ecx, 0x49d468
mov edx, 0x49cfa0
mov eax, 0x400
je 0x40a7c0
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40a57a
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40a562
test eax, eax
je 0x40a5d9
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40a5c9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40a5d9
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40a5c9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40a5d9
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x40a5c9
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40a5d9
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x40a5d9
xor eax, eax
cmp esi, eax
mov ecx, 1
jg 0x40a5dd
or ecx, 0xffffffff
jmp 0x40a5dd
xor ecx, ecx
xor eax, eax
cmp ecx, eax
mov esi, dword [esp + 0x1c]
jne 0x40a5f6
mov dword [ebp + 0x49b070], eax
mov dword [ebp + 0x49b074], eax
jmp 0x40a9cd
push esi
push ebx
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x124]
push ecx
push 0x49d468
call fcn.004095a0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
add esp, 0x28
cmp ax, 1
mov dword [ebp + 0x49b068], ecx
mov dword [ebp + 0x49b06c], edx
jbe 0x40a67a
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
push esi
call fcn.00408bd0
add esp, 0xc
jmp 0x40a798
jne 0x40a798
cmp word [esp + 0x18], 1
jbe 0x40a798
cmp ecx, dword [esp + 0x58]
mov byte [ebp + 0x49b078], 2
mov byte [ebp + 0x49b079], 0
jne 0x40a77b
cmp edx, dword [esp + 0x5c]
jne 0x40a77b
mov ecx, dword [ebp + 0x49afa0]
push ecx
call fcn.004054c0
push 0x400
push 0
push 0x49ab90
call fcn.00442640
push 0
push 0x49ab90
push ebx
call fcn.00408350
push esi
push ebx
lea eax, [ebp + 0x49b090]
push eax
lea edx, [esp + 0x4c]
push edx
lea edi, [ebp + 0x49b368]
push edi
lea eax, [esp + 0x80]
push eax
lea eax, [ebp + 0x49b054]
push eax
lea eax, [ebp + 0x49b013]
push eax
lea eax, [ebp + 0x49afc1]
push eax
push 0x49ab90
call fcn.004095a0
add esp, 0x44
push 0x400
push 0
push 0x49d468
call fcn.00442640
push 2
push 0x49d468
push ebx
call fcn.00407f50
push esi
push ebx
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x3c]
push edx
push edi
lea eax, [esp + 0x84]
push eax
lea eax, [ebp + 0x49b054]
push eax
lea eax, [ebp + 0x49b013]
push eax
lea eax, [ebp + 0x49afc1]
push eax
push 0x49d468
call fcn.004095a0
mov ecx, dword [ebp + 0x49afa0]
add esp, 0x40
push ecx
call fcn.004055b0
add esp, 4
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push eax
push ecx
push edx
push esi
call fcn.00408c80
add esp, 0x14
mov eax, dword [ebp + 0x49b070]
or eax, dword [ebp + 0x49b074]
jne 0x40a9cd
mov dword [ebp + 0x49b070], 1
mov dword [ebp + 0x49b074], eax
jmp 0x40a9cd
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x40a7d8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x40a7c0
test eax, eax
je 0x40a837
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40a827
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40a837
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40a827
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40a837
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x40a827
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x40a837
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x40a837
xor eax, eax
cmp esi, eax
mov ecx, 1
jg 0x40a83b
or ecx, 0xffffffff
jmp 0x40a83b
xor ecx, ecx
xor eax, eax
cmp ecx, eax
mov esi, dword [esp + 0x1c]
je 0x40a5e5
push esi
push ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xb8]
push ecx
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0x124]
push edx
push 0x49d468
call fcn.004095a0
mov eax, 1
add esp, 0x28
cmp word [esp + 0x24], ax
jne 0x40a9cd
cmp word [esp + 0x18], ax
jbe 0x40a9cd
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x6c]
mov byte [ebp + 0x49b078], 2
mov byte [ebp + 0x49b079], 0
jne 0x40a9aa
mov ecx, dword [esp + 0x54]
cmp ecx, dword [esp + 0x70]
jne 0x40a9aa
mov edx, dword [ebp + 0x49afa0]
push edx
call fcn.004054c0
push 0x400
push 0
push 0x49ab90
call fcn.00442640
push 0
push 0x49ab90
push ebx
call fcn.00408350
push esi
push ebx
lea eax, [ebp + 0x49b090]
push eax
lea eax, [esp + 0x4c]
push eax
lea edi, [ebp + 0x49b368]
push edi
lea ecx, [esp + 0x80]
push ecx
lea eax, [ebp + 0x49b054]
push eax
lea eax, [ebp + 0x49b013]
push eax
lea eax, [ebp + 0x49afc1]
push eax
push 0x49ab90
call fcn.004095a0
add esp, 0x44
push 0x400
push 0
push 0x49d468
call fcn.00442640
push 2
push 0x49d468
push ebx
call fcn.00407f50
push esi
push ebx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x3c]
push eax
push edi
lea ecx, [esp + 0x98]
push ecx
lea eax, [ebp + 0x49b054]
push eax
lea eax, [ebp + 0x49b013]
push eax
lea eax, [ebp + 0x49afc1]
push eax
push 0x49d468
call fcn.004095a0
mov edx, dword [ebp + 0x49afa0]
add esp, 0x40
push edx
call fcn.004055b0
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x54]
push ecx
push edx
push eax
push esi
call fcn.00408c80
add esp, 0x14
jmp 0x40a9cd
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0xb0]
push ecx
xor edi, edi
push 0x49ab90
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], edi
call fcn.00408420
mov eax, dword [esp + 0xbc]
shr eax, 4
add esp, 8
xor ecx, ecx
cmp eax, 0x5000cca
jne 0x40aa13
cmp ecx, edi
jne 0x40aa13
mov dword [ebp + 0x49afbc], 3
cmp dword [ebp + 0x49b368], edi
mov edx, dword [esp + 0x28]
mov dword [ebp + 0x49afa4], 1
mov dword [ebp + 0x49afa0], edx
jne 0x40aa39
mov dword [ebp + 0x49b368], 0x200
movzx edi, word [0x49ac9a]
lea eax, [ebp + 0x49afc1]
push 0x466dc8
push eax
call fcn.00442be0
add esp, 8
test eax, eax
je 0x40aa6a
test edi, 0x400
je 0x40aa6a
mov dword [ebp + 0x49afa8], 0x53
push 0x49ab90
push esi
push ebx
call fcn.00408d70
add esp, 0xc
cmp dword [esp + 0x178], 0
mov dword [esp + 0x18], 1
je 0x40ba2b
mov ecx, dword [esp + 0x28]
add ecx, 1
mov eax, 1
shl eax, cl
or dword [0x49d8e8], eax
jmp 0x40b9c9
push 8
lea ecx, [esp + 0xf0]
push str.WD
push ecx
call fcn.004447a4
add esp, 0xc
test eax, eax
jne 0x40ae0a
push ebx
call fcn.00407b70
add esp, 4
test eax, eax
je 0x40ae0a
push 0xb
lea edx, [esp + 0x7c]
push edx
push esi
push ebx
call fcn.00401540
add esp, 0x10
test byte [esp + 0x78], 0x1f
jne 0x40b9c9
push 0x49ab90
push ebx
call fcn.004014c0
push ebx
call fcn.00408760
push 8
push 0x49ab98
push 0x80
push 0x49cea0
mov dword [ebp + 0x49afa8], eax
mov dword [ebp + 0x49afa4], 6
mov dword [ebp + 0x49afac], 2
call fcn.00442b26
lea eax, [esp + 0x30]
push 0x49cea0
push eax
mov byte [0x49cea8], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov ecx, dword [esp + 0x14]
push ecx
push 0x80
push 0x49cea0
call fcn.004442a7
push 0x10
push 0x49aba0
push 0x80
push 0x49d868
call fcn.00442b26
lea edx, [esp + 0x30]
push 0x49d868
push edx
mov byte [0x49d878], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov eax, dword [esp + 0x14]
push eax
push 0x49cea0
push str._s__s
lea ecx, [ebp + 0x49afc1]
push 0x29
push ecx
call fcn.00441afb
push 0x10
push 0x49abb8
push 0x80
push 0x49d868
call fcn.00442b26
lea edx, [esp + 0x38]
push 0x49d868
push edx
mov byte [0x49d878], 0
call fcn.004033c0
add esp, 0x2c
lea ecx, [esp + 0x14]
call fcn.00409210
mov eax, dword [esp + 0x14]
push eax
lea ecx, [ebp + 0x49b013]
push 0x15
push ecx
call fcn.004442a7
push 4
push 0x49abb0
push 0x80
push 0x49cf20
call fcn.00442b26
lea edx, [esp + 0x30]
push 0x49cf20
push edx
mov byte [0x49cf24], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
mov eax, dword [esp + 0x14]
push eax
lea ecx, [ebp + 0x49b054]
push 9
push ecx
call fcn.004442a7
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x40]
xor esi, esi
push eax
push ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x80], esi
call fcn.00401660
add esp, 0x18
cmp eax, esi
je 0x40acdf
push str.ReadCapacity_failed_
lea ecx, [esp + 0xa0]
call fcn.004034c0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x2c]
push esi
push 0x465e4c
push ecx
mov ecx, dword [edx + 0x20]
mov byte [esp + 0x17c], 1
call fcn.004252d8
lea ecx, [esp + 0x9c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov byte [esp + 0x170], 0
call fcn.00402cd0
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
jne 0x40ad58
cmp dword [esp + 0x34], esi
jne 0x40ad58
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x34]
push ecx
push ebx
call fcn.00401710
add esp, 0xc
cmp eax, esi
je 0x40ad54
push str.ReadCapacity16_failed_
lea ecx, [esp + 0xa8]
call fcn.004034c0
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x20]
push esi
push 0x465e4c
push edx
mov byte [esp + 0x17c], 2
call fcn.004252d8
lea ecx, [esp + 0xa4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov byte [esp + 0x170], 0
call fcn.00402cd0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
add eax, 1
adc ecx, esi
mov dword [ebp + 0x49b064], ecx
mov edx, dword [ebp + 0x49b064]
mov ecx, eax
mov dword [ebp + 0x49b068], ecx
push 0x1a
lea ecx, [esp + 0xd4]
push ecx
mov dword [ebp + 0x49b060], eax
mov eax, dword [esp + 0x70]
push 1
push ebx
mov dword [ebp + 0x49b06c], edx
mov dword [ebp + 0x49b368], eax
call fcn.00401540
add esp, 0x10
test eax, eax
jne 0x40adbf
push 0x15
lea edx, [esp + 0xd9]
push edx
lea eax, [ebp + 0x49b09c]
push 0x15
push eax
call fcn.00442b26
add esp, 0x10
push 0x1a
lea ecx, [esp + 0x108]
push ecx
push 2
push ebx
call fcn.00401540
add esp, 0x10
test eax, eax
jne 0x40adf3
push 0x15
lea edx, [esp + 0x10d]
push edx
lea eax, [ebp + 0x49b0b1]
push 0x15
push eax
call fcn.00442b26
add esp, 0x10
push edi
push ebx
call fcn.00407bc0
add esp, 8
mov dword [esp + 0x18], 1
jmp 0x40b9c9
push 8
lea ecx, [esp + 0xf0]
push str.HP
push ecx
call fcn.004447a4
add esp, 0xc
test eax, eax
je 0x40ae44
push 8
lea edx, [esp + 0xf0]
push str.WD
push edx
call fcn.004447a4
add esp, 0xc
test eax, eax
jne 0x40b1d1
push 0x49ab90
push ebx
call fcn.00402090
add esp, 8
cmp eax, esi
mov dword [ebp + 0x49afac], eax
je 0x40b1d1
push 2
push esi
push ebx
call fcn.00408d20
add esp, 0xc
test al, al
jne 0x40b9fe
mov edx, dword [esp + 0x1c]
push edx
push ebx
lea edx, [ebp + 0x49b090]
push edx
lea edx, [esp + 0x24]
push edx
lea eax, [ebp + 0x49b368]
push eax
lea ecx, [ebp + 0x49b060]
push ecx
lea esi, [ebp + 0x49b054]
push esi
lea edi, [ebp + 0x49b013]
push edi
lea eax, [ebp + 0x49afc1]
push eax
push 0x49ab90
call fcn.004095a0
mov eax, dword [esp + 0x44]
push 0x49ab90
push eax
push ebx
call fcn.00408d70
push 0x5f
lea ecx, [esp + 0x13d]
push 0
push ecx
mov byte [esp + 0x144], 0
call fcn.00442640
add esp, 0x40
push 0x60
lea edx, [esp + 0x108]
push edx
push 0xc3
push ebx
call fcn.00401540
add esp, 0x10
test eax, eax
jne 0x40af22
push 0xa
lea eax, [esp + 0x108]
push 0x60
push eax
call fcn.00408cd0
movzx eax, ax
add esp, 0xc
cmp ax, 0x25f3
jne 0x40af22
mov dword [ebp + 0x49afbc], 2
push 0x400
push 0
push 0x49ab90
call fcn.00442640
push 0x49ab90
push ebx
call fcn.004014c0
push ebx
call fcn.00408760
xor ecx, ecx
cmp eax, 4
sete cl
push 8
push 0x49ab98
push 0x80
push 0x49cea0
mov dword [ebp + 0x49afa8], eax
mov dword [ebp + 0x49afac], 2
add ecx, 2
mov dword [ebp + 0x49afa4], ecx
call fcn.00442b26
lea edx, [esp + 0x3c]
push 0x49cea0
push edx
mov byte [0x49cea8], 0
call fcn.004033c0
add esp, 0x30
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov eax, dword [esp + 0x14]
push eax
push 0x80
push 0x49cea0
call fcn.004442a7
push 0x10
push 0x49aba0
push 0x80
push 0x49d868
call fcn.00442b26
lea ecx, [esp + 0x30]
push 0x49d868
push ecx
mov byte [0x49d878], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov edx, dword [esp + 0x14]
push edx
push 0x49cea0
push str._s__s
lea eax, [ebp + 0x49afc1]
push 0x29
push eax
call fcn.00441afb
push 0x10
push 0x49abb8
push 0x80
push 0x49d868
call fcn.00442b26
lea eax, [esp + 0x38]
push 0x49d868
push eax
mov byte [0x49d878], 0
call fcn.004033c0
add esp, 0x2c
lea ecx, [esp + 0x14]
call fcn.00409210
mov ecx, dword [esp + 0x14]
push ecx
push 0x15
push edi
call fcn.004442a7
push 4
push 0x49abb0
push 0x80
push 0x49cf20
call fcn.00442b26
lea edx, [esp + 0x30]
push 0x49cf20
push edx
mov byte [0x49cf24], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
mov eax, dword [esp + 0x14]
push eax
push 9
push esi
call fcn.004442a7
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x50]
xor esi, esi
push edx
push ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x8c], esi
call fcn.00401660
add esp, 0x18
cmp eax, esi
je 0x40b11e
push str.ReadCapacity_failed_
lea ecx, [esp + 0xa4]
call fcn.004034c0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x20]
push esi
push 0x465e4c
push eax
mov byte [esp + 0x17c], 3
call fcn.004252d8
lea ecx, [esp + 0xa0]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov byte [esp + 0x170], 0
call fcn.00402cd0
jmp 0x40b120
xor esi, esi
mov eax, dword [esp + 0x40]
cmp eax, 0xffffffff
jne 0x40b199
cmp dword [esp + 0x44], esi
jne 0x40b199
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x44]
push eax
push ebx
call fcn.00401710
add esp, 0xc
cmp eax, esi
je 0x40b195
push str.ReadCapacity16_failed_
lea ecx, [esp + 0x9c]
call fcn.004034c0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x2c]
push esi
push 0x465e4c
push ecx
mov ecx, dword [edx + 0x20]
mov byte [esp + 0x17c], 4
call fcn.004252d8
lea ecx, [esp + 0x98]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov byte [esp + 0x170], 0
call fcn.00402cd0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x74]
add eax, 1
adc ecx, esi
mov dword [ebp + 0x49b060], eax
mov dword [ebp + 0x49b064], ecx
mov dword [ebp + 0x49b068], eax
mov dword [ebp + 0x49b06c], ecx
mov dword [ebp + 0x49b368], edx
mov dword [esp + 0x18], 1
jmp 0x40b9c9
push 0x49ab90
push ebx
call fcn.00402090
add esp, 8
cmp eax, esi
mov dword [ebp + 0x49afac], eax
je 0x40b3b3
push 2
push esi
push ebx
call fcn.00408d20
add esp, 0xc
test al, al
jne 0x40b9fe
mov eax, dword [esp + 0x1c]
push eax
push ebx
lea ecx, [ebp + 0x49b090]
push ecx
lea edx, [esp + 0x24]
push edx
lea edi, [ebp + 0x49b368]
push edi
lea esi, [ebp + 0x49b060]
push esi
lea eax, [ebp + 0x49b054]
push eax
lea ecx, [ebp + 0x49b013]
push ecx
lea edx, [ebp + 0x49afc1]
push edx
push 0x49ab90
call fcn.004095a0
mov edx, dword [esp + 0x44]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
push 0x49ab90
push edx
push ebx
mov dword [ebp + 0x49b068], eax
mov dword [ebp + 0x49b06c], ecx
mov dword [ebp + 0x49afa4], 2
call fcn.00408d70
push 0x49ab90
push ebx
call fcn.004014c0
add esp, 0x3c
neg eax
sbb eax, eax
inc eax
je 0x40b39b
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x3c]
push ecx
push ebx
call fcn.00401660
add esp, 0xc
test eax, eax
je 0x40b2fa
push str.ReadCapacity_failed_
lea ecx, [esp + 0x90]
call fcn.004034c0
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x20]
push 0
push 0x465e4c
push edx
mov byte [esp + 0x17c], 5
call fcn.004252d8
xor eax, eax
lea ecx, [esp + 0x8c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov byte [esp + 0x170], al
call fcn.00402cd0
mov eax, dword [esp + 0x38]
cmp eax, 0xffffffff
jne 0x40b376
cmp dword [esp + 0x3c], 0
jne 0x40b376
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x3c]
push edx
push ebx
call fcn.00401710
add esp, 0xc
test eax, eax
je 0x40b372
push str.ReadCapacity16_failed_
lea ecx, [esp + 0x98]
call fcn.004034c0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x20]
push 0
push 0x465e4c
push eax
mov byte [esp + 0x17c], 6
call fcn.004252d8
xor eax, eax
lea ecx, [esp + 0x94]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov byte [esp + 0x170], al
call fcn.00402cd0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
add eax, 1
adc ecx, 0
mov edx, eax
mov dword [esi], eax
mov eax, ecx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x49b068], edx
mov dword [ebp + 0x49b06c], eax
mov dword [edi], ecx
cmp dword [edi], 0
jne 0x40b3a6
mov dword [edi], 0x200
cmp dword [esp + 0x178], 0
jmp 0x40b95f
push 0x49ab90
push ebx
call fcn.004014c0
add esp, 8
neg eax
sbb eax, eax
inc eax
je 0x40b983
push 2
push esi
push ebx
call fcn.00408d20
add esp, 0xc
test al, al
jne 0x40b9fe
test byte [0x49ab90], 0x1f
jne 0x40b9c9
push 0x10
push 0x49abca
push 0x80
push 0x49cea0
call fcn.00442b26
lea eax, [esp + 0x24]
push 0x49cea0
push eax
mov byte [0x49ceb0], 0
call fcn.004033c0
add esp, 0x18
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov ecx, dword [esp + 0x14]
push ecx
lea esi, [ebp + 0x49afc1]
push 0x29
push esi
call fcn.004442a7
push ebx
call fcn.00408760
mov edx, dword [esp + 0x24]
push 0x466dc8
push edx
mov edi, eax
call fcn.00442be0
add esp, 0x18
test eax, eax
je 0x40b543
mov eax, dword [esp + 0x14]
push 0x466d74
push eax
call fcn.00442be0
add esp, 8
test eax, eax
jne 0x40b543
cmp edi, 4
je 0x40b48b
cmp edi, 7
jne 0x40b543
push 0x12
push 0x49abb8
push 0x80
push 0x49d868
call fcn.00442b26
lea ecx, [esp + 0x24]
push 0x49d868
push ecx
mov byte [0x49d87a], 0
call fcn.004033c0
add esp, 0x18
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov edx, dword [esp + 0x14]
push edx
lea eax, [ebp + 0x49b013]
push 0x15
push eax
call fcn.004442a7
push 4
push 0x49abb4
push 0x80
push 0x49cf20
call fcn.00442b26
lea ecx, [esp + 0x30]
push 0x49cf20
push ecx
mov byte [0x49cf24], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
mov edx, dword [esp + 0x14]
push edx
lea eax, [ebp + 0x49b054]
push 9
push eax
call fcn.004442a7
xor ecx, ecx
add esp, 0xc
cmp edi, 4
sete cl
add ecx, 2
mov dword [ebp + 0x49afa4], ecx
jmp 0x40b838
push 8
push 0x49ab98
push 0x80
push 0x49cea0
call fcn.00442b26
lea edx, [esp + 0x24]
push 0x49cea0
push edx
mov byte [0x49cea8], 0
call fcn.004033c0
add esp, 0x18
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov eax, dword [esp + 0x14]
push eax
push 0x80
push 0x49cea0
call fcn.004442a7
push 0x10
push 0x49aba0
push 0x80
push 0x49d868
call fcn.00442b26
lea ecx, [esp + 0x30]
push 0x49d868
push ecx
mov byte [0x49d878], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov edx, dword [esp + 0x14]
push edx
push 0x49cea0
push str._s__s
push 0x29
push esi
call fcn.00441afb
push 0x45
lea eax, [esp + 0x11d]
push 0
push eax
mov byte [esp + 0x124], 0
call fcn.00442640
push 0x46
lea ecx, [esp + 0x128]
push ecx
push 0x80
push ebx
call fcn.00401540
add esp, 0x30
test eax, eax
jne 0x40b636
cmp byte [esp + 0x105], 0x80
jne 0x40b636
mov byte [esp + 0x148], al
push 0x40
lea edx, [esp + 0x10c]
push edx
push 0x80
push 0x49d868
call fcn.00442b26
lea eax, [esp + 0x24]
push 0x49d868
push eax
mov byte [0x49d8a8], 0
call fcn.004033c0
add esp, 0x18
lea ecx, [esp + 0x14]
call fcn.00409210
lea ecx, [esp + 0x14]
call fcn.00409260
mov ecx, dword [esp + 0x14]
push ecx
lea esi, [ebp + 0x49b013]
push 0x40
push esi
call fcn.004442a7
push 4
push 0x49abb0
push 0x80
push 0x49cf20
mov byte [ebp + 0x49b027], 0
call fcn.00442b26
lea edx, [esp + 0x30]
push 0x49cf20
push edx
mov byte [0x49cf24], 0
call fcn.004033c0
add esp, 0x24
lea ecx, [esp + 0x14]
call fcn.00409210
mov eax, dword [esp + 0x14]
push eax
lea ecx, [ebp + 0x49b054]
push 9
push ecx
call fcn.004442a7
add esp, 0xc
sub edi, 1
je 0x40b7d0
sub edi, 3
je 0x40b713
sub edi, 3
je 0x40b704
mov dword [ebp + 0x49afa4], 5
jmp 0x40b838
mov dword [ebp + 0x49afa4], 2
jmp 0x40b838
push str.WDIGTL
push 0x49cea0
mov dword [ebp + 0x49afa4], 3
call fcn.00442be0
add esp, 8
test eax, eax
je 0x40b775
push 0x12
push 0x49abb4
push 0x80
push 0x49d868
call fcn.00442b26
lea edx, [esp + 0x24]
push 0x49d868
push edx
mov byte [0x49d87a], 0
call fcn.004033c0
add esp, 0x18
lea ecx, [esp + 0x14]
call fcn.00409210
mov eax, dword [esp + 0x14]
push eax
jmp 0x40b82d
push 3
push 0x466d68
push 0x49abb4
call fcn.004447a4
add esp, 0xc
test eax, eax
jne 0x40b838
push 0x10
push 0x49abb8
push 0x80
push 0x49d868
call fcn.00442b26
lea ecx, [esp + 0x24]
push 0x49d868
push ecx
mov byte [0x49d878], 0
call fcn.004033c0
add esp, 0x18
lea ecx, [esp + 0x14]
call fcn.00409210
mov edx, dword [esp + 0x14]
push edx
jmp 0x40b82d
push str.SEAGATE
push 0x49cea0
mov dword [ebp + 0x49afa4], 4
call fcn.00442be0
add esp, 8
test eax, eax
je 0x40b838
push 8
push 0x49abb4
push 0x80
push 0x49d868
call fcn.00442b26
lea eax, [esp + 0x24]
push 0x49d868
push eax
mov byte [0x49d870], 0
call fcn.004033c0
add esp, 0x18
lea ecx, [esp + 0x14]
call fcn.00409210
mov ecx, dword [esp + 0x14]
push ecx
push 0x15
push esi
call fcn.004442a7
add esp, 0xc
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x4c]
xor esi, esi
push eax
push ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x70], esi
call fcn.00401660
add esp, 0xc
cmp eax, esi
je 0x40b8ac
push str.ReadCapacity_failed_
lea ecx, [esp + 0x88]
call fcn.004034c0
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x2c]
push esi
push 0x465e4c
push ecx
mov ecx, dword [edx + 0x20]
mov byte [esp + 0x17c], 7
call fcn.004252d8
lea ecx, [esp + 0x84]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov byte [esp + 0x170], 0
call fcn.00402cd0
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
jne 0x40b925
cmp dword [esp + 0x4c], esi
jne 0x40b925
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x4c]
push ecx
push ebx
call fcn.00401710
add esp, 0xc
cmp eax, esi
je 0x40b921
push str.ReadCapacity16_failed_
lea ecx, [esp + 0x8c]
call fcn.004034c0
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x20]
push esi
push 0x465e4c
push edx
mov byte [esp + 0x17c], 8
call fcn.004252d8
lea ecx, [esp + 0x88]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov byte [esp + 0x170], 0
call fcn.00402cd0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add eax, 1
adc ecx, esi
cmp dword [esp + 0x178], esi
mov dword [ebp + 0x49b064], ecx
mov edx, dword [ebp + 0x49b064]
mov ecx, eax
mov dword [ebp + 0x49b060], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x49b068], ecx
mov dword [ebp + 0x49b06c], edx
mov dword [ebp + 0x49b368], eax
mov dword [esp + 0x18], 1
je 0x40ba2b
mov ecx, dword [esp + 0x28]
add ecx, 1
mov edx, 1
shl edx, cl
or dword [0x49d8e8], edx
jmp 0x40b9c9
lea ecx, [esp + 0x60]
call fcn.00402eb0
push esi
lea eax, [esp + 0x64]
push str.Failed_on_inquiry_command__DeviceIoControl_ErrorCode___d___
push eax
mov byte [esp + 0x17c], 9
call fcn.004033c0
add esp, 0xc
cmp dword [esp + 0x178], esi
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x60]
je 0x40ba82
mov byte [esp + 0x170], 0
call fcn.00402cd0
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
cmp dword [esp + 0x18], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov word [esp + 0x80], ax
mov byte [esp + 0x82], al
je 0x40b9fe
mov ecx, dword [esp + 0x28]
add dword [esp + 0x1c], 1
mov dword [ebp + 0x49afa0], ecx
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x28], eax
jl 0x40a300
xor ebx, ebx
cmp dword [esp + 0x178], ebx
je 0x40ba2b
mov edx, dword [esp + 0x1c]
mov dword [0x59e704], edx
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x170], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ba56
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x168]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00441a71
add esp, 0x160
ret
call fcn.00402cd0
jmp 0x40ba2b