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

Disassembly:
push 0xffffffffffffffff
push 0x478859
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x49eef8]
xor eax, esp
mov dword [esp + 0x284], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49eef8]
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.00403100
mov edx, dword [0x49f474]
mov eax, dword [edx + 0xc]
add esp, 4
mov ecx, 0x49f474
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 1
cmp eax, ebp
jne 0x43db8b
push 0x80004003
call fcn.004634f0
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 0x43dbd1
mov eax, edx
lea esi, [eax + 2]
jmp 0x43dbb0
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43dbb0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x34]
call fcn.00402840
mov ecx, dword [esp + 0x5c]
push ecx
call ebx
mov edx, dword [0x49f474]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f474
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 0x43dc09
push 0x80004003
call fcn.004634f0
push 0x482eb4
lea ecx, [esp + 0x24]
call fcn.00406700
mov eax, dword [eax]
mov byte [esp + 0x2a4], 3
cmp eax, ebp
je 0x43dc29
mov eax, dword [eax]
jmp 0x43dc2b
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 0x43dc7f
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x43dc7f
cmp esi, ebp
je 0x43dc7f
mov eax, dword [esi]
cmp eax, ebp
je 0x43dc66
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x43dc76
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 0x43dcb9
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43dc90
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x30]
call fcn.00402840
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 0x43dcc8
push 0x80070057
call fcn.00401120
movzx ebx, word [edi]
push ebx
mov dword [esp + 0x44], ebx
call fcn.004251f0
movzx esi, ax
add esp, 4
cmp si, bp
je 0x43e310
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43dcf9
push 0x80004003
call fcn.004634f0
mov edx, dword [eax]
push 3
push eax
mov eax, dword [edx + 0x78]
call eax
mov edx, dword [0x49f474]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f474
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
movzx ecx, si
push ecx
lea edx, [esp + 0x28]
push 0x482eac
push edx
mov byte [esp + 0x2b0], 4
call fcn.00402e10
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebp
call fcn.00424e50
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
je 0x43e270
xor edi, edi
mov dword [esp + 0x1c], edi
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a8], 5
call fcn.00406e70
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 0x43de86
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 0x43de86
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
inc eax
cmp edi, eax
jae 0x43e244
push edi
lea ecx, [esp + 0x20]
call fcn.00423480
mov esi, dword [eax]
push esi
mov ecx, 0x49f140
call fcn.0044b2e0
cmp eax, 0x4000
je 0x43ddda
cmp eax, 0x8000000
jne 0x43de6f
push str.NULL
lea ecx, [esp + 0x34]
call fcn.004062a0
lea edx, [esp + 0x30]
push edx
push str.Drive
push esi
mov byte [esp + 0x2b0], 6
call fcn.0040ce40
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x43de27
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 0x43de63
xor ecx, ecx
cmp dword [esp + 0x24], ecx
setne cl
test ecx, ecx
je 0x43de8c
mov ecx, dword [esp + 0x24]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x43de96
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 0x43de6f
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 0x43dd86
push eax
call fcn.00401120
push 0x80004005
call fcn.00401120
lea eax, [esp + 0x30]
push eax
push str.ENTIREDRIVE
push esi
call fcn.0040ce40
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jl 0x43ded2
mov ecx, dword [esp + 0x28]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43ded2
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43e21c
lea edx, [esp + 0x18]
push ebx
push edx
call fcn.00424e20
add esp, 8
push ebx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2a8], 7
call fcn.0044c190
mov eax, dword [esp + 0x18]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b0], 8
call fcn.0040cc90
mov edx, dword [0x49f474]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x49f474
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov edx, dword [0x49f474]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f474
mov byte [esp + 0x2a4], 9
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov edx, dword [0x49f474]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f474
mov byte [esp + 0x2a4], 0xa
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [0x49f474]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f474
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.0040ce40
lea edx, [esp + 0x48]
push edx
push str.MMC2Drive
push esi
call fcn.0040ce40
mov eax, dword [esp + 0x54]
add esp, 0x14
add eax, 0xfffffff0
mov dword [esp + 0x68], esp
mov edi, esp
push eax
call fcn.00401510
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.00401510
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.00401510
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.0044c740
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a8], 0xf
call fcn.004043f0
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 0x43e056
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.00401510
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.00401510
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.00401510
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.0044cd90
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x2a8], 0x12
call fcn.004043f0
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 0x43e100
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.0040cc90
mov ebx, dword [esp + 0x2c]
push ebx
push str.MMC2Drive
push esi
call fcn.0040cc90
push ebx
push 0x483ee8
push esi
call fcn.0040cc90
add esp, 0x24
cmp dword [edi - 0xc], 0
jne 0x43e13c
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x43e13d
push edi
push 0x483f0c
push esi
call fcn.0040cc90
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 0x43e173
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 0x43e19b
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 0x43e1bf
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 0x43e1e3
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.0044c060
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 0x43e21c
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 0x43e244
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 0x43e270
mov esi, dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
push ebx
call esi
mov edi, dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
test eax, eax
jl 0x43e266
push ebx
call edi
test eax, eax
jge 0x43e270
push ebx
call esi
test eax, eax
jl 0x43e270
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 0x43e298
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 0x43e2c0
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 0x43e2e8
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 0x43e306
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x10
jmp 0x43f566
mov eax, dword [0x49f474]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f474
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 0x13
cmp esi, ebp
jne 0x43e343
push 0x80004003
call fcn.004634f0
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
call fcn.00406700
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x14
cmp eax, ebp
je 0x43e363
mov eax, dword [eax]
jmp 0x43e365
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.00407820
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43e3a5
push eax
lea ecx, [esp + 0x20]
call fcn.00403410
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 0x43e44a
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 0x43e3d6
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 0x43e3fa
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 0x43e422
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 0x43e440
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x43f566
mov ecx, dword [0x47ebd4]
mov eax, dword [str..X:]
mov edx, dword [0x47ebd8]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x47ebc8]
mov dword [esp + 0x80], edx
mov edx, dword [0x47ebcc]
mov dword [esp + 0x78], eax
mov ax, word [0x47ebdc]
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.0044c190
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 0x43e50d
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 0x43ea63
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044c380
mov edi, dword [esp + 0x38]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x16
call fcn.004043f0
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 0x43e557
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.0044c400
mov ecx, dword [esp + 0x3c]
push eax
mov byte [esp + 0x2a8], 0x17
call fcn.004043f0
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 0x43e59f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, ebp
je 0x43ea63
lea ecx, [esp + 0x1c]
push 0x47e848
push ecx
call fcn.004040a0
add esp, 8
test al, al
jne 0x43ea63
mov edx, dword [edi]
cmp dword [edx - 0xc], ebp
jne 0x43ea63
push ebx
call fcn.004251f0
movzx esi, ax
add esp, 4
cmp si, bp
jne 0x43e85c
lea ecx, [esp + 0x18]
call fcn.00402380
mov esi, dword [esp + 0x2ac]
mov bl, 0x2a
mov byte [esp + 0x2a4], bl
cmp esi, ebp
jne 0x43e608
push 0x80004003
call fcn.004634f0
push str.NOMMDA
lea ecx, [esp + 0x18]
call fcn.00406700
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x2b
cmp eax, ebp
je 0x43e628
mov eax, dword [eax]
jmp 0x43e62a
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.00407820
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43e669
push eax
lea ecx, [esp + 0x1c]
call fcn.00403410
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x34], ebp
lea edx, [esp + 0x18]
push 0x47e848
push edx
call fcn.004040a0
add esp, 8
test al, al
je 0x43e7a2
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43e698
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43e6b7
push 0x80004003
call fcn.004634f0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406700
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2c
call fcn.00406700
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2d
cmp ecx, ebp
je 0x43e6ef
mov ecx, dword [ecx]
jmp 0x43e6f1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e6fb
mov eax, dword [eax]
jmp 0x43e6fd
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.00407820
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], bl
call fcn.00407820
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.00423990
call fcn.0043cc40
add esp, 0xc
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00401e00
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43e79b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x43f566
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43e7b7
push 0x80004003
call fcn.004634f0
push 0x47e848
lea ecx, [esp + 0x24]
call fcn.00406700
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2e
call fcn.00406700
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2f
cmp ecx, ebp
je 0x43e7ef
mov ecx, dword [ecx]
jmp 0x43e7f1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e7fb
mov eax, dword [eax]
jmp 0x43e7fd
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.00407820
lea ecx, [esp + 0x20]
call fcn.00407820
lea ecx, [esp + 0x18]
call fcn.00401e00
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jmp 0x43eda4
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43e871
push 0x80004003
call fcn.004634f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
lea ecx, [esp + 0x18]
call fcn.00402380
movzx eax, si
push eax
lea ecx, [esp + 0x1c]
push 0x482eac
push ecx
mov byte [esp + 0x2b0], 0x30
call fcn.00402e10
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x30], ebp
call fcn.00424e50
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, ebp
je 0x43ea02
mov dword [esp + 0x24], ebp
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2a8], 0x31
call fcn.00406e70
push ebp
lea ecx, [esp + 0x28]
xor edi, edi
call fcn.00406580
test eax, eax
jbe 0x43e9f0
mov ebp, dword [esp + 0x18]
mov bl, 0x32
lea esp, [esp]
push edi
lea ecx, [esp + 0x28]
call fcn.00423480
mov esi, dword [eax]
push esi
mov ecx, 0x49f140
call fcn.0044b2e0
cmp eax, 0x4000
je 0x43e915
cmp eax, 0x8000000
jne 0x43e966
push str.NULL
lea ecx, [esp + 0x34]
call fcn.004062a0
lea eax, [esp + 0x30]
push eax
push str.Drive
push esi
mov byte [esp + 0x2b0], bl
call fcn.0040ce40
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp dword [ecx - 0xc], 0
lea ecx, [esp + 0x30]
je 0x43e959
push ebp
call fcn.004068d0
test eax, eax
je 0x43e97c
lea ecx, [esp + 0x30]
mov byte [esp + 0x2a4], 0x31
call fcn.00401e00
push 0
lea ecx, [esp + 0x28]
inc edi
call fcn.00406580
cmp edi, eax
jb 0x43e8f0
jmp 0x43e9ee
lea edx, [esp + 0x30]
push edx
push str.ENTIREDRIVE
push esi
call fcn.0040ce40
add esp, 0xc
test ebp, ebp
je 0x43e9b4
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jl 0x43e9b4
push ebp
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43e9b4
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43e9e5
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00424e20
mov eax, dword [eax]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b8], 0x33
call fcn.0040cc90
add esp, 0x14
lea ecx, [esp + 0x14]
call fcn.00401e00
lea ecx, [esp + 0x30]
call fcn.00401e00
xor ebp, ebp
lea ecx, [esp + 0x24]
call fcn.004069b0
lea ecx, [esp + 0x24]
call fcn.004244b0
lea ecx, [esp + 0x18]
call fcn.00401e00
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43e306
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 0x10
jmp 0x43f566
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.00403100
add esp, 0xc
cmp esi, 3
jne 0x43eb20
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
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 0x43eac2
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 0x43eaea
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 0x43eb12
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 0x43e42b
mov ecx, 0x49f018
call fcn.0044dca0
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
test eax, eax
jne 0x43ebbd
mov ecx, 0x49f018
call fcn.0044e2e0
test eax, eax
je 0x43ebbd
push 0x17
push 0
push 0x47e294
lea ecx, [esp + 0x24]
call fcn.00407700
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x18
test eax, eax
je 0x43eba9
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 0x43eb89
push 0x80004003
call fcn.004634f0
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, 0x49f018
call fcn.0044e890
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x15
test eax, eax
je 0x43ebbd
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
call ebx
push eax
mov ecx, 0x49f018
call fcn.0044e890
test eax, eax
je 0x43ebd8
mov ecx, 0x49f018
call fcn.0044dc80
mov ecx, 0x49f018
call fcn.0044dca0
test eax, eax
je 0x43f50a
xor esi, esi
push esi
mov ecx, 0x49f018
call fcn.0044df80
push str.SCSI_Connect
call fcn.00403100
lea ecx, [esp + 0x7c]
push ecx
call fcn.00452260
add esp, 8
test eax, eax
je 0x43f4c3
call fcn.004228b0
mov ebx, eax
mov dword [esp + 0x18], 0xf
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
push 0x2001f
push 0x485514
push SysReAllocStringLen
lea ecx, [esp + 0x50]
mov byte [esp + 0x2b0], 0x19
call fcn.004216c0
test eax, eax
jne 0x43ec64
lea edx, [esp + 0x18]
push edx
push str.DriveLoadTimeout
lea ecx, [esp + 0x4c]
call fcn.0040d9c0
xor edi, edi
cmp dword [esp + 0x18], edi
jbe 0x43ecc6
lea ecx, [esp + 0x4c]
call fcn.0044c010
test eax, eax
jne 0x43ed10
call ebp
mov esi, eax
push esi
push str.CDeviceManager::MmdaUMSIdentify
push str._s_GetLastError__d_
call fcn.00403100
add esp, 0xc
cmp esi, 3
je 0x43edc3
push edi
push str.Driveloading..._d
call fcn.00403100
lea eax, [esp + 0x80]
push eax
call fcn.00452260
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, dword [esp + 0x18]
jb 0x43ec6c
push str.SCSI_ReConnect
call fcn.00403100
lea eax, [esp + 0x7c]
push eax
call fcn.00452380
push 0x485478
call fcn.00403100
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x43ecf6
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
mov eax, dword [esp + 0x1c]
jmp 0x43e274
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044c380
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1a
call fcn.004043f0
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 0x43ed5a
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 0x43ee06
lea ecx, [esp + 0x44]
call fcn.0040e2a0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
test eax, eax
mov dword [esp + 0x2a4], 0xffffffff
je 0x43edb9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x1a
jmp 0x43f566
lea ecx, [esp + 0x44]
call fcn.0040e2a0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
test eax, eax
jmp 0x43e42b
push 0x485454
call fcn.00403100
push str.FUS
call fcn.00403100
mov ebx, dword [esp + 0x48]
add esp, 8
push ebx
mov ecx, 0x49f018
call fcn.0044df80
push str.FUS__
mov esi, eax
call fcn.00403100
push 0
push esi
push str.MMDA_LOCK_retdrive_d__retenable_d
call fcn.00403100
add esp, 0x10
test esi, esi
je 0x43ee9c
push 0x4853f8
call fcn.00403100
push str.SCSI_Connect
call fcn.00403100
lea eax, [esp + 0x80]
push eax
call fcn.00452260
push 0x4853d0
call fcn.00403100
push str.FUS
call fcn.00403100
add esp, 0x14
push ebx
mov ecx, 0x49f018
call fcn.0044df80
push str.FUS
call fcn.00403100
add esp, 4
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43eeb1
push 0x80004003
call fcn.004634f0
push 0x47e848
lea ecx, [esp + 0x24]
call fcn.00406700
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x1b
call fcn.00406700
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x1c
test ecx, ecx
je 0x43eee9
mov ecx, dword [ecx]
jmp 0x43eeeb
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43eef5
mov eax, dword [eax]
jmp 0x43eef7
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.00407820
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x19
call fcn.00407820
push 0x47dd68
lea ecx, [esp + 0x28]
call fcn.004062a0
lea ecx, [esp + 0x24]
call fcn.00401e00
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a4], 0x15
call fcn.0040e2a0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044c380
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1d
call fcn.004043f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e00
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.0044c400
mov edi, dword [esp + 0x3c]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x1e
call fcn.004043f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e00
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43f01a
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044c380
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1f
call fcn.00404590
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e00
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x50]
call fcn.0044c400
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x20
call fcn.00404590
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e00
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43f260
push ebx
call fcn.004251f0
movzx eax, ax
add esp, 4
test ax, ax
je 0x43f0b3
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43f04c
push 0x80004003
call fcn.004634f0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406700
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x21
call fcn.00406700
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x22
test ecx, ecx
je 0x43f084
mov ecx, dword [ecx]
jmp 0x43f086
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43f090
mov eax, dword [eax]
jmp 0x43f092
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.00407820
lea ecx, [esp + 0x20]
call fcn.00407820
jmp 0x43ed6f
lea ecx, [esp + 0x24]
call fcn.00402380
mov esi, dword [esp + 0x2ac]
mov bl, 0x23
mov byte [esp + 0x2a4], bl
test esi, esi
jne 0x43f0da
push 0x80004003
call fcn.004634f0
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
call fcn.00406700
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x24
test eax, eax
je 0x43f0fa
mov eax, dword [eax]
jmp 0x43f0fc
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.00407820
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43f13f
push eax
lea ecx, [esp + 0x28]
call fcn.00403410
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 0x43f177
xor eax, eax
push eax
lea eax, [esp + 0x28]
push 0x482c88
push eax
call fcn.00402e10
mov esi, dword [esp + 0x2b8]
add esp, 0xc
test esi, esi
jne 0x43f1f0
push 0x80004003
call fcn.004634f0
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
add esp, 4
cmp eax, 0xa
jle 0x43f14b
lea edx, [esp + 0x78]
push edx
call fcn.004524b0
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00401e00
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43f1e6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 4
jmp 0x43f566
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
call fcn.00406700
mov edi, eax
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x25
call fcn.00406700
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x26
test ecx, ecx
je 0x43f228
mov ecx, dword [ecx]
jmp 0x43f22a
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43f234
mov eax, dword [eax]
jmp 0x43f236
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.00407820
lea ecx, [esp + 0x20]
call fcn.00407820
lea ecx, [esp + 0x24]
call fcn.00401e00
jmp 0x43ed6f
mov eax, dword [0x49f13c]
cmp dword [eax - 0xc], 0
mov ebx, dword [esp + 0x28]
jl 0x43f28b
push ebx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43f28b
sub eax, dword [0x49f13c]
sar eax, 1
cmp eax, 0xffffffff
jne 0x43f29a
mov eax, dword [ebx - 0xc]
push eax
push ebx
mov ecx, 0x49f13c
call fcn.00404470
cmp dword [ebx - 0xc], 0
jge 0x43f2aa
push 0x80070057
call fcn.00401120
movzx eax, word [ebx]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00424e20
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 0x43f318
test esi, esi
jl 0x43dcbe
cmp esi, eax
jg 0x43dcbe
cmp dword [ebx - 0xc], 0
movzx eax, word [ecx + esi*2]
jl 0x43dcbe
movzx edx, word [ebx]
cmp ax, dx
je 0x43f310
push esi
lea ecx, [esp + 0x1c]
call fcn.0041fb20
movzx ecx, ax
push ecx
call fcn.00431f60
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx - 0xc]
inc esi
cmp esi, eax
jb 0x43f2d0
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 0x43f33e
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 0x43f35b
call fcn.00427260
test eax, eax
je 0x43f370
push str.NO_SIM
mov ecx, edi
call fcn.00403410
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43f3c0
push 0x80004003
call fcn.004634f0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], ebp
test eax, eax
je 0x43f3b6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 6
jmp 0x43f566
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x24]
call fcn.00406700
mov edi, eax
push str.PhoneNumber
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x28
call fcn.00406670
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x29
test ecx, ecx
je 0x43f3f6
mov ecx, dword [ecx]
jmp 0x43f3f8
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43f402
mov eax, dword [eax]
jmp 0x43f404
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.00407820
lea ecx, [esp + 0x20]
call fcn.00407820
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
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 0x43f458
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 0x43f47b
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 0x43f4a2
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 0x43f4bc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x43f566
push 0x485370
call fcn.00403100
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
cmp eax, esi
jmp 0x43eda4
lea eax, [esp + 0x78]
push eax
call fcn.004524b0
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044c060
lea ecx, [esp + 0x1c]
call fcn.00401e00
lea ecx, [esp + 0x28]
call fcn.00401e00
lea ecx, [esp + 0x2c]
call fcn.00401e00
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43f561
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.00472076
add esp, 0x294
ret