Function at 0x43f6e0
Capabilities:
Get disk information
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x47bcd9
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x4a6eb0]
xor eax, esp
mov dword [esp + 0x284], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a6eb0]
xor eax, esp
push eax
lea eax, [esp + 0x29c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x2b0]
mov ecx, dword [esp + 0x2b4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
xor ebp, ebp
push str.CONNECTION_TYPE_UMS_MMDA
mov dword [esp + 0x2a8], ebp
call fcn.00403170
mov edx, dword [0x4a743c]
mov eax, dword [edx + 0xc]
add esp, 4
mov ecx, 0x4a743c
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 1
cmp eax, ebp
jne 0x43f77b
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
lea edx, [esp + 0x5c]
push edx
push eax
mov eax, dword [ecx + 0x3c]
call eax
mov edx, dword [esp + 0x5c]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp edx, ebp
je 0x43f7c1
mov eax, edx
lea esi, [eax + 2]
jmp 0x43f7a0
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43f7a0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x34]
call fcn.004028b0
mov ecx, dword [esp + 0x5c]
push ecx
call ebx
mov edx, dword [0x4a743c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a743c
mov dword [esp + 0x34], ebp
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x28], edi
mov esi, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 2
cmp esi, ebp
jne 0x43f7f9
push 0x80004003
call fcn.00467970
push str.DRIVE
lea ecx, [esp + 0x24]
call fcn.004068c0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 3
cmp eax, ebp
je 0x43f819
mov eax, dword [eax]
jmp 0x43f81b
xor eax, eax
mov ecx, dword [esi]
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0x68]
push esi
call eax
mov eax, dword [esp + 0x20]
mov byte [esp + 0x2a4], 2
cmp eax, ebp
je 0x43f86f
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x43f86f
cmp esi, ebp
je 0x43f86f
mov eax, dword [esi]
cmp eax, ebp
je 0x43f856
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x43f866
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [esp + 0x34]
cmp edx, ebp
je 0x43f8a9
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43f880
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x30]
call fcn.004028b0
mov ecx, dword [esp + 0x34]
push ecx
call ebx
mov edi, dword [esp + 0x28]
mov dword [esp + 0x34], ebp
cmp dword [edi - 0xc], ebp
jge 0x43f8b8
push 0x80070057
call fcn.00401120
movzx ebx, word [edi]
push ebx
mov dword [esp + 0x44], ebx
call fcn.0042a330
movzx esi, ax
add esp, 4
cmp si, bp
je 0x43ff00
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43f8e9
push 0x80004003
call fcn.00467970
mov edx, dword [eax]
push 3
push eax
mov eax, dword [edx + 0x78]
call eax
mov edx, dword [0x4a743c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a743c
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
movzx ecx, si
push ecx
lea edx, [esp + 0x28]
push 0x4877ec
push edx
mov byte [esp + 0x2b0], 4
call fcn.00402e80
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebp
call fcn.00429f90
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
je 0x43fe60
xor edi, edi
mov dword [esp + 0x1c], edi
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a8], 5
call fcn.00407210
mov edx, dword [esp + 0x1c]
mov ebp, dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
lea ecx, [esp + 0x18]
push ecx
push 1
push edx
call ebp
cmp eax, edi
jl 0x43fa76
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
push 1
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
test eax, eax
jl 0x43fa76
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
inc eax
cmp edi, eax
jae 0x43fe34
push edi
lea ecx, [esp + 0x20]
call fcn.00406bb0
mov esi, dword [eax]
push esi
mov ecx, 0x4a7118
call fcn.0044bd90
cmp eax, 0x4000
je 0x43f9ca
cmp eax, 0x8000000
jne 0x43fa5f
push str.NULL
lea ecx, [esp + 0x34]
call fcn.00406310
lea edx, [esp + 0x30]
push edx
push str.Drive
push esi
mov byte [esp + 0x2b0], 6
call fcn.0040f530
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x43fa17
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x43fa53
xor ecx, ecx
cmp dword [esp + 0x24], ecx
setne cl
test ecx, ecx
je 0x43fa7c
mov ecx, dword [esp + 0x24]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x43fa86
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43fa5f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
push 1
push edx
inc edi
call ebp
test eax, eax
jge 0x43f976
push eax
call fcn.00401120
push 0x80004005
call fcn.00401120
lea eax, [esp + 0x30]
push eax
push str.ENTIREDRIVE
push esi
call fcn.0040f530
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jl 0x43fac2
mov ecx, dword [esp + 0x28]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43fac2
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43fe0c
lea edx, [esp + 0x18]
push ebx
push edx
call fcn.00429f60
add esp, 8
push ebx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2a8], 7
call fcn.0044cc40
mov eax, dword [esp + 0x18]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b0], 8
call fcn.0040f160
mov edx, dword [0x4a743c]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x4a743c
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov edx, dword [0x4a743c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a743c
mov byte [esp + 0x2a4], 9
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov edx, dword [0x4a743c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a743c
mov byte [esp + 0x2a4], 0xa
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [0x4a743c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a743c
mov byte [esp + 0x2a4], 0xb
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x38]
push ecx
push str.MMC1Drive
mov bl, 0xc
push esi
mov byte [esp + 0x2b0], bl
call fcn.0040f530
lea edx, [esp + 0x48]
push edx
push str.MMC2Drive
push esi
call fcn.0040f530
mov eax, dword [esp + 0x54]
add esp, 0x14
add eax, 0xfffffff0
mov dword [esp + 0x68], esp
mov edi, esp
push eax
call fcn.00401520
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov dword [esp + 0x68], esp
mov edi, esp
push eax
mov byte [esp + 0x2b0], 0xd
call fcn.00401520
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x50], esp
mov edi, esp
push eax
mov byte [esp + 0x2b4], 0xe
call fcn.00401520
add eax, 0x10
mov dword [edi], eax
add esp, 4
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x2b4], bl
call fcn.0044d1f0
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a8], 0xf
call fcn.00404460
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fc46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x48], esp
mov edi, esp
push eax
call fcn.00401520
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov dword [esp + 0x68], esp
mov edi, esp
push eax
mov byte [esp + 0x2b0], 0x10
call fcn.00401520
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x70], esp
mov edi, esp
push eax
mov byte [esp + 0x2b4], 0x11
call fcn.00401520
add esp, 4
lea ecx, [esp + 0x20]
add eax, 0x10
push ecx
mov dword [edi], eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x2b4], bl
call fcn.0044d840
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x2a8], 0x12
call fcn.00404460
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43fcf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x40]
push edi
push str.MMC1Drive
push esi
call fcn.0040f160
mov ebx, dword [esp + 0x2c]
push ebx
push str.MMC2Drive
push esi
call fcn.0040f160
push ebx
push str.ExternalDrive
push esi
call fcn.0040f160
add esp, 0x24
cmp dword [edi - 0xc], 0
jne 0x43fd2c
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x43fd2d
push edi
push str.InternalDrive
push esi
call fcn.0040f160
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x2a4], 0xb
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43fd63
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fd8b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x2a4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fdaf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x2a4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fdd3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x68]
mov byte [esp + 0x2a4], 7
call fcn.0044cb10
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fe0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fe34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x43fe60
mov esi, dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
push ebx
call esi
mov edi, dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
test eax, eax
jl 0x43fe56
push ebx
call edi
test eax, eax
jge 0x43fe60
push ebx
call esi
test eax, eax
jl 0x43fe60
push ebx
call edi
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2a4], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fe88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2a4], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43feb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x2a4], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fed8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43fef6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x10
jmp 0x441156
mov eax, dword [0x4a743c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a743c
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 0x13
cmp esi, ebp
jne 0x43ff33
push 0x80004003
call fcn.00467970
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
call fcn.004068c0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x14
cmp eax, ebp
je 0x43ff53
mov eax, dword [eax]
jmp 0x43ff55
xor eax, eax
mov ecx, dword [esi]
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0x68]
push esi
call eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x13
call fcn.00408920
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43ff95
push eax
lea ecx, [esp + 0x20]
call fcn.00403480
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x34], ebp
cmp dword [edi - 0xc], ebp
jne 0x44003a
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43ffc6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x2a4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ffea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x440012
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
mov dword [esp + 0x2a4], 0xffffffff
je 0x440030
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x441156
mov ecx, dword [0x48337c]
mov eax, dword [str..X:]
mov edx, dword [0x483380]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x483370]
mov dword [esp + 0x80], edx
mov edx, dword [0x483374]
mov dword [esp + 0x78], eax
mov ax, word [0x483384]
mov dword [esp + 0x88], ecx
push 0x3e8
mov word [esp + 0x88], ax
mov dword [esp + 0x90], edx
mov word [esp + 0x84], bx
mov word [esp + 0x8c], bx
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
lea ecx, [esp + 0x50]
call fcn.0044cc40
mov edi, dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
push ebp
push ebp
push ebp
push ebp
push ebp
push 0x208
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0xa4]
push ecx
mov byte [esp + 0x2c4], 0x15
call edi
mov esi, eax
cmp esi, ebp
jne 0x4400fd
push ebp
push ebp
push ebp
push ebp
push ebp
push 0x208
lea edx, [esp + 0xa8]
push edx
lea eax, [esp + 0xa4]
push eax
call edi
mov esi, eax
cmp esi, ebp
je 0x440653
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044ce30
mov edi, dword [esp + 0x38]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x16
call fcn.00404460
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 0x15
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x440147
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044ceb0
mov ecx, dword [esp + 0x3c]
push eax
mov byte [esp + 0x2a8], 0x17
call fcn.00404460
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 0x15
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44018f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, ebp
je 0x440653
lea ecx, [esp + 0x1c]
push 0x482bb0
push ecx
call fcn.00404110
add esp, 8
test al, al
jne 0x440653
mov edx, dword [edi]
cmp dword [edx - 0xc], ebp
jne 0x440653
push ebx
call fcn.0042a330
movzx esi, ax
add esp, 4
cmp si, bp
jne 0x44044c
lea ecx, [esp + 0x18]
call fcn.004023f0
mov esi, dword [esp + 0x2ac]
mov bl, 0x2a
mov byte [esp + 0x2a4], bl
cmp esi, ebp
jne 0x4401f8
push 0x80004003
call fcn.00467970
push str.NOMMDA
lea ecx, [esp + 0x18]
call fcn.004068c0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x2b
cmp eax, ebp
je 0x440218
mov eax, dword [eax]
jmp 0x44021a
xor eax, eax
mov ecx, dword [esi]
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0x68]
push esi
call eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], bl
call fcn.00408920
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x440259
push eax
lea ecx, [esp + 0x1c]
call fcn.00403480
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x34], ebp
lea edx, [esp + 0x18]
push 0x482bb0
push edx
call fcn.00404110
add esp, 8
test al, al
je 0x440392
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x440288
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x4402a7
push 0x80004003
call fcn.00467970
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.004068c0
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2c
call fcn.004068c0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2d
cmp ecx, ebp
je 0x4402df
mov ecx, dword [ecx]
jmp 0x4402e1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x4402eb
mov eax, dword [eax]
jmp 0x4402ed
xor eax, eax
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push esi
call eax
lea ecx, [esp + 0x14]
call fcn.00408920
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], bl
call fcn.00408920
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
push ecx
lea eax, [esp + 0x2b8]
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00428dd0
call fcn.0043e830
add esp, 0xc
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00450df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x44038b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x441156
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x4403a7
push 0x80004003
call fcn.00467970
push 0x482bb0
lea ecx, [esp + 0x24]
call fcn.004068c0
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2e
call fcn.004068c0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2f
cmp ecx, ebp
je 0x4403df
mov ecx, dword [ecx]
jmp 0x4403e1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x4403eb
mov eax, dword [eax]
jmp 0x4403ed
xor eax, eax
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push esi
call eax
lea ecx, [esp + 0x14]
call fcn.00408920
lea ecx, [esp + 0x20]
call fcn.00408920
lea ecx, [esp + 0x18]
call fcn.00450df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jmp 0x440994
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x440461
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
lea ecx, [esp + 0x18]
call fcn.004023f0
movzx eax, si
push eax
lea ecx, [esp + 0x1c]
push 0x4877ec
push ecx
mov byte [esp + 0x2b0], 0x30
call fcn.00402e80
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x30], ebp
call fcn.00429f90
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, ebp
je 0x4405f2
mov dword [esp + 0x24], ebp
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2a8], 0x31
call fcn.00407210
push ebp
lea ecx, [esp + 0x28]
xor edi, edi
call fcn.00406700
test eax, eax
jbe 0x4405e0
mov ebp, dword [esp + 0x18]
mov bl, 0x32
lea esp, [esp]
push edi
lea ecx, [esp + 0x28]
call fcn.00406bb0
mov esi, dword [eax]
push esi
mov ecx, 0x4a7118
call fcn.0044bd90
cmp eax, 0x4000
je 0x440505
cmp eax, 0x8000000
jne 0x440556
push str.NULL
lea ecx, [esp + 0x34]
call fcn.00406310
lea eax, [esp + 0x30]
push eax
push str.Drive
push esi
mov byte [esp + 0x2b0], bl
call fcn.0040f530
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp dword [ecx - 0xc], 0
lea ecx, [esp + 0x30]
je 0x440549
push ebp
call fcn.00406ad0
test eax, eax
je 0x44056c
lea ecx, [esp + 0x30]
mov byte [esp + 0x2a4], 0x31
call fcn.00450df0
push 0
lea ecx, [esp + 0x28]
inc edi
call fcn.00406700
cmp edi, eax
jb 0x4404e0
jmp 0x4405de
lea edx, [esp + 0x30]
push edx
push str.ENTIREDRIVE
push esi
call fcn.0040f530
add esp, 0xc
test ebp, ebp
je 0x4405a4
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jl 0x4405a4
push ebp
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x4405a4
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x4405d5
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00429f60
mov eax, dword [eax]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b8], 0x33
call fcn.0040f160
add esp, 0x14
lea ecx, [esp + 0x14]
call fcn.00450df0
lea ecx, [esp + 0x30]
call fcn.00450df0
xor ebp, ebp
lea ecx, [esp + 0x24]
call fcn.00406c40
lea ecx, [esp + 0x24]
call fcn.004071e0
lea ecx, [esp + 0x18]
call fcn.00450df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43fef6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 0x10
jmp 0x441156
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebp
mov esi, eax
push esi
push str.CDeviceManager::MmdaUMSIdentify
push str._s_GetLastError__d_
call fcn.00403170
add esp, 0xc
cmp esi, 3
jne 0x440710
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4406b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4406da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x440702
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2ac]
test eax, eax
jmp 0x44001b
mov ecx, 0x4a6fe0
call fcn.0044e750
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
test eax, eax
jne 0x4407ad
mov ecx, 0x4a6fe0
call fcn.0044eb30
test eax, eax
je 0x4407ad
push 0x17
push 0
push 0x4823c8
lea ecx, [esp + 0x24]
call fcn.00407de0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x18
test eax, eax
je 0x440799
mov esi, dword [eax]
mov edi, eax
add esi, 0x24
call ebx
push eax
mov eax, dword [esi]
push edi
call eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x440779
push 0x80004003
call fcn.00467970
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
mov eax, dword [ecx + 0x3c]
call eax
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, 0x4a6fe0
call fcn.0044f070
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x15
test eax, eax
je 0x4407ad
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
call ebx
push eax
mov ecx, 0x4a6fe0
call fcn.0044f070
test eax, eax
je 0x4407c8
mov ecx, 0x4a6fe0
call fcn.0044e730
mov ecx, 0x4a6fe0
call fcn.0044e750
test eax, eax
je 0x4410fa
xor esi, esi
push esi
mov ecx, 0x4a6fe0
call fcn.0044e830
push str.SCSI_Connect
call fcn.00403170
lea ecx, [esp + 0x7c]
push ecx
call fcn.00454460
add esp, 8
test eax, eax
je 0x4410b3
call fcn.00427d80
mov ebx, eax
mov dword [esp + 0x18], 0xf
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
push 0x2001f
push 0x489d74
push SysReAllocString
lea ecx, [esp + 0x50]
mov byte [esp + 0x2b0], 0x19
call fcn.004064c0
test eax, eax
jne 0x440854
lea edx, [esp + 0x18]
push edx
push str.DriveLoadTimeout
lea ecx, [esp + 0x4c]
call fcn.0040e990
xor edi, edi
cmp dword [esp + 0x18], edi
jbe 0x4408b6
lea ecx, [esp + 0x4c]
call fcn.0044cac0
test eax, eax
jne 0x440900
call ebp
mov esi, eax
push esi
push str.CDeviceManager::MmdaUMSIdentify
push str._s_GetLastError__d_
call fcn.00403170
add esp, 0xc
cmp esi, 3
je 0x4409b3
push edi
push str.Driveloading..._d
call fcn.00403170
lea eax, [esp + 0x80]
push eax
call fcn.00454460
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, dword [esp + 0x18]
jb 0x44085c
push str.SCSI_ReConnect
call fcn.00403170
lea eax, [esp + 0x7c]
push eax
call fcn.00454580
push 0x489cbc
call fcn.00403170
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x4408e6
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
mov eax, dword [esp + 0x1c]
jmp 0x43fe64
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044ce30
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1a
call fcn.00404460
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 0x19
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44094a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x4409f6
lea ecx, [esp + 0x44]
call fcn.00406a90
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
test eax, eax
mov dword [esp + 0x2a4], 0xffffffff
je 0x4409a9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x1a
jmp 0x441156
lea ecx, [esp + 0x44]
call fcn.00406a90
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
test eax, eax
jmp 0x44001b
push 0x489c90
call fcn.00403170
push str.FUS__
call fcn.00403170
mov ebx, dword [esp + 0x48]
add esp, 8
push ebx
mov ecx, 0x4a6fe0
call fcn.0044e830
push 0x489c38
mov esi, eax
call fcn.00403170
push 0
push esi
push str.MMDA_LOCK_retdrive_d__retenable_d
call fcn.00403170
add esp, 0x10
test esi, esi
je 0x440a8c
push str.FUS___
call fcn.00403170
push str.SCSI_Connect
call fcn.00403170
lea eax, [esp + 0x80]
push eax
call fcn.00454460
push 0x489bcc
call fcn.00403170
push str.FUS__
call fcn.00403170
add esp, 0x14
push ebx
mov ecx, 0x4a6fe0
call fcn.0044e830
push str.FUS__
call fcn.00403170
add esp, 4
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x440aa1
push 0x80004003
call fcn.00467970
push 0x482bb0
lea ecx, [esp + 0x24]
call fcn.004068c0
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x1b
call fcn.004068c0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x1c
test ecx, ecx
je 0x440ad9
mov ecx, dword [ecx]
jmp 0x440adb
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x440ae5
mov eax, dword [eax]
jmp 0x440ae7
xor eax, eax
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push esi
call eax
lea ecx, [esp + 0x14]
call fcn.00408920
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x19
call fcn.00408920
push 0x481de0
lea ecx, [esp + 0x28]
call fcn.00406310
lea ecx, [esp + 0x24]
call fcn.00450df0
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a4], 0x15
call fcn.00406a90
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044ce30
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1d
call fcn.00404460
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00450df0
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.0044ceb0
mov edi, dword [esp + 0x3c]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x1e
call fcn.00404460
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00450df0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x440c0a
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044ce30
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1f
call fcn.00404600
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00450df0
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x50]
call fcn.0044ceb0
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x20
call fcn.00404600
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x15
call fcn.00450df0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x440e50
push ebx
call fcn.0042a330
movzx eax, ax
add esp, 4
test ax, ax
je 0x440ca3
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x440c3c
push 0x80004003
call fcn.00467970
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.004068c0
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x21
call fcn.004068c0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x22
test ecx, ecx
je 0x440c74
mov ecx, dword [ecx]
jmp 0x440c76
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x440c80
mov eax, dword [eax]
jmp 0x440c82
xor eax, eax
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push esi
call eax
lea ecx, [esp + 0x14]
call fcn.00408920
lea ecx, [esp + 0x20]
call fcn.00408920
jmp 0x44095f
lea ecx, [esp + 0x24]
call fcn.004023f0
mov esi, dword [esp + 0x2ac]
mov bl, 0x23
mov byte [esp + 0x2a4], bl
test esi, esi
jne 0x440cca
push 0x80004003
call fcn.00467970
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
call fcn.004068c0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x24
test eax, eax
je 0x440cea
mov eax, dword [eax]
jmp 0x440cec
xor eax, eax
mov ecx, dword [esi]
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0x68]
push esi
call eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], bl
call fcn.00408920
mov eax, dword [esp + 0x34]
test eax, eax
je 0x440d2f
push eax
lea ecx, [esp + 0x28]
call fcn.00403480
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], 0
jne 0x440d67
xor eax, eax
push eax
lea eax, [esp + 0x28]
push 0x482650
push eax
call fcn.00402e80
mov esi, dword [esp + 0x2b8]
add esp, 0xc
test esi, esi
jne 0x440de0
push 0x80004003
call fcn.00467970
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
add esp, 4
cmp eax, 0xa
jle 0x440d3b
lea edx, [esp + 0x78]
push edx
call fcn.004546b0
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00450df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x440dd6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 4
jmp 0x441156
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
call fcn.004068c0
mov edi, eax
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x25
call fcn.004068c0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x26
test ecx, ecx
je 0x440e18
mov ecx, dword [ecx]
jmp 0x440e1a
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x440e24
mov eax, dword [eax]
jmp 0x440e26
xor eax, eax
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push esi
call eax
lea ecx, [esp + 0x14]
call fcn.00408920
lea ecx, [esp + 0x20]
call fcn.00408920
lea ecx, [esp + 0x24]
call fcn.00450df0
jmp 0x44095f
mov eax, dword [0x4a7114]
cmp dword [eax - 0xc], 0
mov ebx, dword [esp + 0x28]
jl 0x440e7b
push ebx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x440e7b
sub eax, dword [0x4a7114]
sar eax, 1
cmp eax, 0xffffffff
jne 0x440e8a
mov eax, dword [ebx - 0xc]
push eax
push ebx
mov ecx, 0x4a7114
call fcn.004044e0
cmp dword [ebx - 0xc], 0
jge 0x440e9a
push 0x80070057
call fcn.00401120
movzx eax, word [ebx]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00429f60
add esp, 8
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
xor esi, esi
mov byte [esp + 0x2a4], 0x27
test eax, eax
jbe 0x440f08
test esi, esi
jl 0x43f8ae
cmp esi, eax
jg 0x43f8ae
cmp dword [ebx - 0xc], 0
movzx eax, word [ecx + esi*2]
jl 0x43f8ae
movzx edx, word [ebx]
cmp ax, dx
je 0x440f00
push esi
lea ecx, [esp + 0x1c]
call fcn.00407090
movzx ecx, ax
push ecx
call fcn.004356c0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx - 0xc]
inc esi
cmp esi, eax
jb 0x440ec0
lea eax, [ecx - 0x10]
or ebp, 0xffffffff
mov byte [esp + 0x2a4], 0x15
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x440f2e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi]
cmp dword [ecx - 0xc], 0
jne 0x440f4b
call fcn.0042c360
test eax, eax
je 0x440f60
push str.NO_SIM
mov ecx, edi
call fcn.00403480
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x440fb0
push 0x80004003
call fcn.00467970
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], ebp
test eax, eax
je 0x440fa6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 6
jmp 0x441156
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x24]
call fcn.004068c0
mov edi, eax
push str.PhoneNumber
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x28
call fcn.00406830
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x29
test ecx, ecx
je 0x440fe6
mov ecx, dword [ecx]
jmp 0x440fe8
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x440ff2
mov eax, dword [eax]
jmp 0x440ff4
xor eax, eax
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push esi
call eax
lea ecx, [esp + 0x14]
call fcn.00408920
lea ecx, [esp + 0x20]
call fcn.00408920
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 2
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441048
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x2a4], 1
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44106b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x2a4], 0
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x441092
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], ebp
test eax, eax
je 0x4410ac
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x441156
push 0x489b60
call fcn.00403170
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
cmp eax, esi
jmp 0x440994
lea eax, [esp + 0x78]
push eax
call fcn.004546b0
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044cb10
lea ecx, [esp + 0x1c]
call fcn.00450df0
lea ecx, [esp + 0x28]
call fcn.00450df0
lea ecx, [esp + 0x2c]
call fcn.00450df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x441151
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x19
mov ecx, dword [esp + 0x29c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x284]
xor ecx, esp
call fcn.004764f6
add esp, 0x294
ret