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

Disassembly:
push 0xffffffffffffffff
push 0x47b4a9
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x4a5eb0]
xor eax, esp
mov dword [esp + 0x284], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a5eb0]
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 [0x4a643c]
mov eax, dword [edx + 0xc]
add esp, 4
mov ecx, 0x4a643c
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 1
cmp eax, ebp
jne 0x43e83b
push 0x80004003
call fcn.004671f0
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 0x43e881
mov eax, edx
lea esi, [eax + 2]
jmp 0x43e860
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43e860
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 [0x4a643c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a643c
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 0x43e8b9
push 0x80004003
call fcn.004671f0
push str.DRIVE
lea ecx, [esp + 0x24]
call fcn.004068b0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 3
cmp eax, ebp
je 0x43e8d9
mov eax, dword [eax]
jmp 0x43e8db
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 0x43e92f
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x43e92f
cmp esi, ebp
je 0x43e92f
mov eax, dword [esi]
cmp eax, ebp
je 0x43e916
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x43e926
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 0x43e969
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43e940
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 0x43e978
push 0x80070057
call fcn.00401100
movzx ebx, word [edi]
push ebx
mov dword [esp + 0x44], ebx
call fcn.004293f0
movzx esi, ax
add esp, 4
cmp si, bp
je 0x43efc0
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43e9a9
push 0x80004003
call fcn.004671f0
mov edx, dword [eax]
push 3
push eax
mov eax, dword [edx + 0x78]
call eax
mov edx, dword [0x4a643c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a643c
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
movzx ecx, si
push ecx
lea edx, [esp + 0x28]
push 0x48653c
push edx
mov byte [esp + 0x2b0], 4
call fcn.00402e80
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebp
call fcn.00429050
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
je 0x43ef20
xor edi, edi
mov dword [esp + 0x1c], edi
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a8], 5
call fcn.004071e0
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 0x43eb36
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 0x43eb36
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
inc eax
cmp edi, eax
jae 0x43eef4
push edi
lea ecx, [esp + 0x20]
call fcn.00406b80
mov esi, dword [eax]
push esi
mov ecx, 0x4a6118
call fcn.0044ae50
cmp eax, 0x4000
je 0x43ea8a
cmp eax, 0x8000000
jne 0x43eb1f
push str.NULL
lea ecx, [esp + 0x34]
call fcn.00406300
lea edx, [esp + 0x30]
push edx
push str.Drive
push esi
mov byte [esp + 0x2b0], 6
call fcn.0040ee00
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x43ead7
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 0x43eb13
xor ecx, ecx
cmp dword [esp + 0x24], ecx
setne cl
test ecx, ecx
je 0x43eb3c
mov ecx, dword [esp + 0x24]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x43eb46
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 0x43eb1f
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 0x43ea36
push eax
call fcn.00401100
push 0x80004005
call fcn.00401100
lea eax, [esp + 0x30]
push eax
push str.ENTIREDRIVE
push esi
call fcn.0040ee00
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jl 0x43eb82
mov ecx, dword [esp + 0x28]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43eb82
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43eecc
lea edx, [esp + 0x18]
push ebx
push edx
call fcn.00429020
add esp, 8
push ebx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2a8], 7
call fcn.0044bd00
mov eax, dword [esp + 0x18]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b0], 8
call fcn.0040ea30
mov edx, dword [0x4a643c]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x4a643c
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov edx, dword [0x4a643c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a643c
mov byte [esp + 0x2a4], 9
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov edx, dword [0x4a643c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a643c
mov byte [esp + 0x2a4], 0xa
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [0x4a643c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a643c
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.0040ee00
lea edx, [esp + 0x48]
push edx
push str.MMC2Drive
push esi
call fcn.0040ee00
mov eax, dword [esp + 0x54]
add esp, 0x14
add eax, 0xfffffff0
mov dword [esp + 0x68], esp
mov edi, esp
push eax
call fcn.004014f0
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.004014f0
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.004014f0
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.0044c2b0
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a8], 0xf
call fcn.00404450
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 0x43ed06
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.004014f0
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.004014f0
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.004014f0
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.0044c900
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x2a8], 0x12
call fcn.00404450
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 0x43edb0
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.0040ea30
mov ebx, dword [esp + 0x2c]
push ebx
push str.MMC2Drive
push esi
call fcn.0040ea30
push ebx
push str.ExternalDrive
push esi
call fcn.0040ea30
add esp, 0x24
cmp dword [edi - 0xc], 0
jne 0x43edec
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x43eded
push edi
push str.InternalDrive
push esi
call fcn.0040ea30
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 0x43ee23
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 0x43ee4b
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 0x43ee6f
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 0x43ee93
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.0044bbd0
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 0x43eecc
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 0x43eef4
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 0x43ef20
mov esi, dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
push ebx
call esi
mov edi, dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
test eax, eax
jl 0x43ef16
push ebx
call edi
test eax, eax
jge 0x43ef20
push ebx
call esi
test eax, eax
jl 0x43ef20
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 0x43ef48
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 0x43ef70
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 0x43ef98
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 0x43efb6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x10
jmp 0x440216
mov eax, dword [0x4a643c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a643c
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 0x13
cmp esi, ebp
jne 0x43eff3
push 0x80004003
call fcn.004671f0
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
call fcn.004068b0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x14
cmp eax, ebp
je 0x43f013
mov eax, dword [eax]
jmp 0x43f015
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.00408700
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43f055
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 0x43f0fa
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 0x43f086
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 0x43f0aa
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 0x43f0d2
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 0x43f0f0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x440216
mov ecx, dword [0x482134]
mov eax, dword [str..X:]
mov edx, dword [0x482138]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x482128]
mov dword [esp + 0x80], edx
mov edx, dword [0x48212c]
mov dword [esp + 0x78], eax
mov ax, word [0x48213c]
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.0044bd00
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 0x43f1bd
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 0x43f713
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bef0
mov edi, dword [esp + 0x38]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x16
call fcn.00404450
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 0x43f207
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.0044bf70
mov ecx, dword [esp + 0x3c]
push eax
mov byte [esp + 0x2a8], 0x17
call fcn.00404450
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 0x43f24f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, ebp
je 0x43f713
lea ecx, [esp + 0x1c]
push 0x481a28
push ecx
call fcn.00404100
add esp, 8
test al, al
jne 0x43f713
mov edx, dword [edi]
cmp dword [edx - 0xc], ebp
jne 0x43f713
push ebx
call fcn.004293f0
movzx esi, ax
add esp, 4
cmp si, bp
jne 0x43f50c
lea ecx, [esp + 0x18]
call fcn.004023f0
mov esi, dword [esp + 0x2ac]
mov bl, 0x2a
mov byte [esp + 0x2a4], bl
cmp esi, ebp
jne 0x43f2b8
push 0x80004003
call fcn.004671f0
push str.NOMMDA
lea ecx, [esp + 0x18]
call fcn.004068b0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x2b
cmp eax, ebp
je 0x43f2d8
mov eax, dword [eax]
jmp 0x43f2da
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.00408700
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43f319
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 0x481a28
push edx
call fcn.00404100
add esp, 8
test al, al
je 0x43f452
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43f348
push 0x80004003
call fcn.004671f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43f367
push 0x80004003
call fcn.004671f0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.004068b0
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2c
call fcn.004068b0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2d
cmp ecx, ebp
je 0x43f39f
mov ecx, dword [ecx]
jmp 0x43f3a1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43f3ab
mov eax, dword [eax]
jmp 0x43f3ad
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.00408700
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], bl
call fcn.00408700
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.00427eb0
call fcn.0043d8f0
add esp, 0xc
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.004023d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43f44b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x440216
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43f467
push 0x80004003
call fcn.004671f0
push 0x481a28
lea ecx, [esp + 0x24]
call fcn.004068b0
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2e
call fcn.004068b0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2f
cmp ecx, ebp
je 0x43f49f
mov ecx, dword [ecx]
jmp 0x43f4a1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43f4ab
mov eax, dword [eax]
jmp 0x43f4ad
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.00408700
lea ecx, [esp + 0x20]
call fcn.00408700
lea ecx, [esp + 0x18]
call fcn.004023d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jmp 0x43fa54
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43f521
push 0x80004003
call fcn.004671f0
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 0x48653c
push ecx
mov byte [esp + 0x2b0], 0x30
call fcn.00402e80
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x30], ebp
call fcn.00429050
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, ebp
je 0x43f6b2
mov dword [esp + 0x24], ebp
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2a8], 0x31
call fcn.004071e0
push ebp
lea ecx, [esp + 0x28]
xor edi, edi
call fcn.004066f0
test eax, eax
jbe 0x43f6a0
mov ebp, dword [esp + 0x18]
mov bl, 0x32
lea esp, [esp]
push edi
lea ecx, [esp + 0x28]
call fcn.00406b80
mov esi, dword [eax]
push esi
mov ecx, 0x4a6118
call fcn.0044ae50
cmp eax, 0x4000
je 0x43f5c5
cmp eax, 0x8000000
jne 0x43f616
push str.NULL
lea ecx, [esp + 0x34]
call fcn.00406300
lea eax, [esp + 0x30]
push eax
push str.Drive
push esi
mov byte [esp + 0x2b0], bl
call fcn.0040ee00
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp dword [ecx - 0xc], 0
lea ecx, [esp + 0x30]
je 0x43f609
push ebp
call fcn.00406aa0
test eax, eax
je 0x43f62c
lea ecx, [esp + 0x30]
mov byte [esp + 0x2a4], 0x31
call fcn.004023d0
push 0
lea ecx, [esp + 0x28]
inc edi
call fcn.004066f0
cmp edi, eax
jb 0x43f5a0
jmp 0x43f69e
lea edx, [esp + 0x30]
push edx
push str.ENTIREDRIVE
push esi
call fcn.0040ee00
add esp, 0xc
test ebp, ebp
je 0x43f664
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jl 0x43f664
push ebp
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43f664
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43f695
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00429020
mov eax, dword [eax]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b8], 0x33
call fcn.0040ea30
add esp, 0x14
lea ecx, [esp + 0x14]
call fcn.004023d0
lea ecx, [esp + 0x30]
call fcn.004023d0
xor ebp, ebp
lea ecx, [esp + 0x24]
call fcn.00406c10
lea ecx, [esp + 0x24]
call fcn.004071b0
lea ecx, [esp + 0x18]
call fcn.004023d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43efb6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 0x10
jmp 0x440216
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 0x43f7d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
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 0x43f772
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 0x43f79a
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 0x43f7c2
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 0x43f0db
mov ecx, 0x4a5fe0
call fcn.0044d810
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
test eax, eax
jne 0x43f86d
mov ecx, 0x4a5fe0
call fcn.0044de80
test eax, eax
je 0x43f86d
push 0x17
push 0
push 0x481370
lea ecx, [esp + 0x24]
call fcn.00407db0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x18
test eax, eax
je 0x43f859
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 0x43f839
push 0x80004003
call fcn.004671f0
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, 0x4a5fe0
call fcn.0044e430
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x15
test eax, eax
je 0x43f86d
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
call ebx
push eax
mov ecx, 0x4a5fe0
call fcn.0044e430
test eax, eax
je 0x43f888
mov ecx, 0x4a5fe0
call fcn.0044d7f0
mov ecx, 0x4a5fe0
call fcn.0044d810
test eax, eax
je 0x4401ba
xor esi, esi
push esi
mov ecx, 0x4a5fe0
call fcn.0044db20
push str.SCSI_Connect
call fcn.00403170
lea ecx, [esp + 0x7c]
push ecx
call fcn.00453ed0
add esp, 8
test eax, eax
je 0x440173
call fcn.00426e60
mov ebx, eax
mov dword [esp + 0x18], 0xf
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
push 0x2001f
push 0x488a2c
push SysReAllocString
lea ecx, [esp + 0x50]
mov byte [esp + 0x2b0], 0x19
call fcn.004064b0
test eax, eax
jne 0x43f914
lea edx, [esp + 0x18]
push edx
push str.DriveLoadTimeout
lea ecx, [esp + 0x4c]
call fcn.0040e260
xor edi, edi
cmp dword [esp + 0x18], edi
jbe 0x43f976
lea ecx, [esp + 0x4c]
call fcn.0044bb80
test eax, eax
jne 0x43f9c0
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 0x43fa73
push edi
push str.Driveloading..._d
call fcn.00403170
lea eax, [esp + 0x80]
push eax
call fcn.00453ed0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, dword [esp + 0x18]
jb 0x43f91c
push str.SCSI_ReConnect
call fcn.00403170
lea eax, [esp + 0x7c]
push eax
call fcn.00453ff0
push 0x488990
call fcn.00403170
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x43f9a6
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
mov eax, dword [esp + 0x1c]
jmp 0x43ef24
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bef0
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1a
call fcn.00404450
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 0x43fa0a
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 0x43fab6
lea ecx, [esp + 0x44]
call fcn.00406a80
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
test eax, eax
mov dword [esp + 0x2a4], 0xffffffff
je 0x43fa69
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x1a
jmp 0x440216
lea ecx, [esp + 0x44]
call fcn.00406a80
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
test eax, eax
jmp 0x43f0db
push 0x48896c
call fcn.00403170
push str.FUS
call fcn.00403170
mov ebx, dword [esp + 0x48]
add esp, 8
push ebx
mov ecx, 0x4a5fe0
call fcn.0044db20
push str.FUS__
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 0x43fb4c
push 0x488910
call fcn.00403170
push str.SCSI_Connect
call fcn.00403170
lea eax, [esp + 0x80]
push eax
call fcn.00453ed0
push 0x4888e8
call fcn.00403170
push str.FUS
call fcn.00403170
add esp, 0x14
push ebx
mov ecx, 0x4a5fe0
call fcn.0044db20
push str.FUS
call fcn.00403170
add esp, 4
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43fb61
push 0x80004003
call fcn.004671f0
push 0x481a28
lea ecx, [esp + 0x24]
call fcn.004068b0
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x1b
call fcn.004068b0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x1c
test ecx, ecx
je 0x43fb99
mov ecx, dword [ecx]
jmp 0x43fb9b
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43fba5
mov eax, dword [eax]
jmp 0x43fba7
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.00408700
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x19
call fcn.00408700
push 0x480de0
lea ecx, [esp + 0x28]
call fcn.00406300
lea ecx, [esp + 0x24]
call fcn.004023d0
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a4], 0x15
call fcn.00406a80
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bef0
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1d
call fcn.00404450
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.004023d0
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.0044bf70
mov edi, dword [esp + 0x3c]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x1e
call fcn.00404450
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.004023d0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43fcca
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bef0
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1f
call fcn.004045f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.004023d0
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x50]
call fcn.0044bf70
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x20
call fcn.004045f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x15
call fcn.004023d0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43ff10
push ebx
call fcn.004293f0
movzx eax, ax
add esp, 4
test ax, ax
je 0x43fd63
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43fcfc
push 0x80004003
call fcn.004671f0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.004068b0
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x21
call fcn.004068b0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x22
test ecx, ecx
je 0x43fd34
mov ecx, dword [ecx]
jmp 0x43fd36
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43fd40
mov eax, dword [eax]
jmp 0x43fd42
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.00408700
lea ecx, [esp + 0x20]
call fcn.00408700
jmp 0x43fa1f
lea ecx, [esp + 0x24]
call fcn.004023f0
mov esi, dword [esp + 0x2ac]
mov bl, 0x23
mov byte [esp + 0x2a4], bl
test esi, esi
jne 0x43fd8a
push 0x80004003
call fcn.004671f0
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
call fcn.004068b0
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x24
test eax, eax
je 0x43fdaa
mov eax, dword [eax]
jmp 0x43fdac
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.00408700
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43fdef
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 0x43fe27
xor eax, eax
push eax
lea eax, [esp + 0x28]
push 0x4814d8
push eax
call fcn.00402e80
mov esi, dword [esp + 0x2b8]
add esp, 0xc
test esi, esi
jne 0x43fea0
push 0x80004003
call fcn.004671f0
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
add esp, 4
cmp eax, 0xa
jle 0x43fdfb
lea edx, [esp + 0x78]
push edx
call fcn.00454120
add esp, 4
lea ecx, [esp + 0x24]
call fcn.004023d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43fe96
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 4
jmp 0x440216
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
call fcn.004068b0
mov edi, eax
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x25
call fcn.004068b0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x26
test ecx, ecx
je 0x43fed8
mov ecx, dword [ecx]
jmp 0x43feda
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43fee4
mov eax, dword [eax]
jmp 0x43fee6
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.00408700
lea ecx, [esp + 0x20]
call fcn.00408700
lea ecx, [esp + 0x24]
call fcn.004023d0
jmp 0x43fa1f
mov eax, dword [0x4a6114]
cmp dword [eax - 0xc], 0
mov ebx, dword [esp + 0x28]
jl 0x43ff3b
push ebx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43ff3b
sub eax, dword [0x4a6114]
sar eax, 1
cmp eax, 0xffffffff
jne 0x43ff4a
mov eax, dword [ebx - 0xc]
push eax
push ebx
mov ecx, 0x4a6114
call fcn.004044d0
cmp dword [ebx - 0xc], 0
jge 0x43ff5a
push 0x80070057
call fcn.00401100
movzx eax, word [ebx]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00429020
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 0x43ffc8
test esi, esi
jl 0x43e96e
cmp esi, eax
jg 0x43e96e
cmp dword [ebx - 0xc], 0
movzx eax, word [ecx + esi*2]
jl 0x43e96e
movzx edx, word [ebx]
cmp ax, dx
je 0x43ffc0
push esi
lea ecx, [esp + 0x1c]
call fcn.00407060
movzx ecx, ax
push ecx
call fcn.00434780
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx - 0xc]
inc esi
cmp esi, eax
jb 0x43ff80
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 0x43ffee
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 0x44000b
call fcn.0042b420
test eax, eax
je 0x440020
push str.NO_SIM
mov ecx, edi
call fcn.00403480
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x440070
push 0x80004003
call fcn.004671f0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], ebp
test eax, eax
je 0x440066
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 6
jmp 0x440216
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x24]
call fcn.004068b0
mov edi, eax
push str.PhoneNumber
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x28
call fcn.00406820
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x29
test ecx, ecx
je 0x4400a6
mov ecx, dword [ecx]
jmp 0x4400a8
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x4400b2
mov eax, dword [eax]
jmp 0x4400b4
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.00408700
lea ecx, [esp + 0x20]
call fcn.00408700
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
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 0x440108
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 0x44012b
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 0x440152
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 0x44016c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x440216
push 0x488888
call fcn.00403170
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
cmp eax, esi
jmp 0x43fa54
lea eax, [esp + 0x78]
push eax
call fcn.00454120
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044bbd0
lea ecx, [esp + 0x1c]
call fcn.004023d0
lea ecx, [esp + 0x28]
call fcn.004023d0
lea ecx, [esp + 0x2c]
call fcn.004023d0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x440211
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.00475d76
add esp, 0x294
ret