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

Disassembly:
push 0xffffffffffffffff
push 0x479069
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x4a3eb0]
xor eax, esp
mov dword [esp + 0x284], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a3eb0]
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.00403120
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
add esp, 4
mov ecx, 0x4a440c
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 1
cmp eax, ebp
jne 0x43d60b
push 0x80004003
call fcn.004650f0
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 0x43d651
mov eax, edx
lea esi, [eax + 2]
jmp 0x43d630
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43d630
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x34]
call fcn.00402860
mov ecx, dword [esp + 0x5c]
push ecx
call ebx
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a440c
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 0x43d689
push 0x80004003
call fcn.004650f0
push str.DRIVE
lea ecx, [esp + 0x24]
call fcn.00406740
mov eax, dword [eax]
mov byte [esp + 0x2a4], 3
cmp eax, ebp
je 0x43d6a9
mov eax, dword [eax]
jmp 0x43d6ab
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 0x43d6ff
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x43d6ff
cmp esi, ebp
je 0x43d6ff
mov eax, dword [esi]
cmp eax, ebp
je 0x43d6e6
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x43d6f6
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 0x43d739
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43d710
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x30]
call fcn.00402860
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 0x43d748
push 0x80070057
call fcn.00401100
movzx ebx, word [edi]
push ebx
mov dword [esp + 0x44], ebx
call fcn.00428290
movzx esi, ax
add esp, 4
cmp si, bp
je 0x43dd90
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43d779
push 0x80004003
call fcn.004650f0
mov edx, dword [eax]
push 3
push eax
mov eax, dword [edx + 0x78]
call eax
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a440c
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
movzx ecx, si
push ecx
lea edx, [esp + 0x28]
push 0x48425c
push edx
mov byte [esp + 0x2b0], 4
call fcn.00402e30
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebp
call fcn.00427ef0
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
je 0x43dcf0
xor edi, edi
mov dword [esp + 0x1c], edi
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a8], 5
call fcn.00407050
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 0x43d906
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 0x43d906
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
inc eax
cmp edi, eax
jae 0x43dcc4
push edi
lea ecx, [esp + 0x20]
call fcn.004069f0
mov esi, dword [eax]
push esi
mov ecx, 0x4a40f8
call fcn.004493e0
cmp eax, 0x4000
je 0x43d85a
cmp eax, 0x8000000
jne 0x43d8ef
push str.NULL
lea ecx, [esp + 0x34]
call fcn.004062c0
lea edx, [esp + 0x30]
push edx
push str.Drive
push esi
mov byte [esp + 0x2b0], 6
call fcn.0040dd90
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x43d8a7
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 0x43d8e3
xor ecx, ecx
cmp dword [esp + 0x24], ecx
setne cl
test ecx, ecx
je 0x43d90c
mov ecx, dword [esp + 0x24]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x43d916
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 0x43d8ef
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 0x43d806
push eax
call fcn.00401100
push 0x80004005
call fcn.00401100
lea eax, [esp + 0x30]
push eax
push str.ENTIREDRIVE
push esi
call fcn.0040dd90
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jl 0x43d952
mov ecx, dword [esp + 0x28]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43d952
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43dc9c
lea edx, [esp + 0x18]
push ebx
push edx
call fcn.00427ec0
add esp, 8
push ebx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2a8], 7
call fcn.0044a280
mov eax, dword [esp + 0x18]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b0], 8
call fcn.0040d9e0
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x4a440c
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a440c
mov byte [esp + 0x2a4], 9
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a440c
mov byte [esp + 0x2a4], 0xa
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [0x4a440c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a440c
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.0040dd90
lea edx, [esp + 0x48]
push edx
push str.MMC2Drive
push esi
call fcn.0040dd90
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.0044a830
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a8], 0xf
call fcn.00404410
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 0x43dad6
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.0044ae80
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x2a8], 0x12
call fcn.00404410
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 0x43db80
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.0040d9e0
mov ebx, dword [esp + 0x2c]
push ebx
push str.MMC2Drive
push esi
call fcn.0040d9e0
push ebx
push str.ExternalDrive
push esi
call fcn.0040d9e0
add esp, 0x24
cmp dword [edi - 0xc], 0
jne 0x43dbbc
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x43dbbd
push edi
push str.InternalDrive
push esi
call fcn.0040d9e0
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 0x43dbf3
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 0x43dc1b
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 0x43dc3f
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 0x43dc63
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.0044a150
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 0x43dc9c
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 0x43dcc4
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 0x43dcf0
mov esi, dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
push ebx
call esi
mov edi, dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
test eax, eax
jl 0x43dce6
push ebx
call edi
test eax, eax
jge 0x43dcf0
push ebx
call esi
test eax, eax
jl 0x43dcf0
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 0x43dd18
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 0x43dd40
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 0x43dd68
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 0x43dd86
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x10
jmp 0x43efe6
mov eax, dword [0x4a440c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a440c
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 0x13
cmp esi, ebp
jne 0x43ddc3
push 0x80004003
call fcn.004650f0
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
call fcn.00406740
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x14
cmp eax, ebp
je 0x43dde3
mov eax, dword [eax]
jmp 0x43dde5
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.004084a0
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43de25
push eax
lea ecx, [esp + 0x20]
call fcn.00403430
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 0x43deca
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 0x43de56
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 0x43de7a
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 0x43dea2
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 0x43dec0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x43efe6
mov ecx, dword [0x47fdc4]
mov eax, dword [str..X:]
mov edx, dword [0x47fdc8]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x47fdb8]
mov dword [esp + 0x80], edx
mov edx, dword [0x47fdbc]
mov dword [esp + 0x78], eax
mov ax, word [0x47fdcc]
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.0044a280
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 0x43df8d
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 0x43e4e3
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a470
mov edi, dword [esp + 0x38]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x16
call fcn.00404410
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 0x43dfd7
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.0044a4f0
mov ecx, dword [esp + 0x3c]
push eax
mov byte [esp + 0x2a8], 0x17
call fcn.00404410
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 0x43e01f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, ebp
je 0x43e4e3
lea ecx, [esp + 0x1c]
push 0x47f8f8
push ecx
call fcn.004040c0
add esp, 8
test al, al
jne 0x43e4e3
mov edx, dword [edi]
cmp dword [edx - 0xc], ebp
jne 0x43e4e3
push ebx
call fcn.00428290
movzx esi, ax
add esp, 4
cmp si, bp
jne 0x43e2dc
lea ecx, [esp + 0x18]
call fcn.004023a0
mov esi, dword [esp + 0x2ac]
mov bl, 0x2a
mov byte [esp + 0x2a4], bl
cmp esi, ebp
jne 0x43e088
push 0x80004003
call fcn.004650f0
push str.NOMMDA
lea ecx, [esp + 0x18]
call fcn.00406740
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x2b
cmp eax, ebp
je 0x43e0a8
mov eax, dword [eax]
jmp 0x43e0aa
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.004084a0
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43e0e9
push eax
lea ecx, [esp + 0x1c]
call fcn.00403430
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x34], ebp
lea edx, [esp + 0x18]
push 0x47f8f8
push edx
call fcn.004040c0
add esp, 8
test al, al
je 0x43e222
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43e118
push 0x80004003
call fcn.004650f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43e137
push 0x80004003
call fcn.004650f0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406740
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2c
call fcn.00406740
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2d
cmp ecx, ebp
je 0x43e16f
mov ecx, dword [ecx]
jmp 0x43e171
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e17b
mov eax, dword [eax]
jmp 0x43e17d
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.004084a0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], bl
call fcn.004084a0
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.00426d30
call fcn.0043c6c0
add esp, 0xc
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00401df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43e21b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x43efe6
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43e237
push 0x80004003
call fcn.004650f0
push 0x47f8f8
lea ecx, [esp + 0x24]
call fcn.00406740
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2e
call fcn.00406740
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2f
cmp ecx, ebp
je 0x43e26f
mov ecx, dword [ecx]
jmp 0x43e271
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e27b
mov eax, dword [eax]
jmp 0x43e27d
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.004084a0
lea ecx, [esp + 0x20]
call fcn.004084a0
lea ecx, [esp + 0x18]
call fcn.00401df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jmp 0x43e824
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43e2f1
push 0x80004003
call fcn.004650f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
lea ecx, [esp + 0x18]
call fcn.004023a0
movzx eax, si
push eax
lea ecx, [esp + 0x1c]
push 0x48425c
push ecx
mov byte [esp + 0x2b0], 0x30
call fcn.00402e30
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x30], ebp
call fcn.00427ef0
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, ebp
je 0x43e482
mov dword [esp + 0x24], ebp
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2a8], 0x31
call fcn.00407050
push ebp
lea ecx, [esp + 0x28]
xor edi, edi
call fcn.004065a0
test eax, eax
jbe 0x43e470
mov ebp, dword [esp + 0x18]
mov bl, 0x32
lea esp, [esp]
push edi
lea ecx, [esp + 0x28]
call fcn.004069f0
mov esi, dword [eax]
push esi
mov ecx, 0x4a40f8
call fcn.004493e0
cmp eax, 0x4000
je 0x43e395
cmp eax, 0x8000000
jne 0x43e3e6
push str.NULL
lea ecx, [esp + 0x34]
call fcn.004062c0
lea eax, [esp + 0x30]
push eax
push str.Drive
push esi
mov byte [esp + 0x2b0], bl
call fcn.0040dd90
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp dword [ecx - 0xc], 0
lea ecx, [esp + 0x30]
je 0x43e3d9
push ebp
call fcn.00406910
test eax, eax
je 0x43e3fc
lea ecx, [esp + 0x30]
mov byte [esp + 0x2a4], 0x31
call fcn.00401df0
push 0
lea ecx, [esp + 0x28]
inc edi
call fcn.004065a0
cmp edi, eax
jb 0x43e370
jmp 0x43e46e
lea edx, [esp + 0x30]
push edx
push str.ENTIREDRIVE
push esi
call fcn.0040dd90
add esp, 0xc
test ebp, ebp
je 0x43e434
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jl 0x43e434
push ebp
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43e434
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43e465
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00427ec0
mov eax, dword [eax]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b8], 0x33
call fcn.0040d9e0
add esp, 0x14
lea ecx, [esp + 0x14]
call fcn.00401df0
lea ecx, [esp + 0x30]
call fcn.00401df0
xor ebp, ebp
lea ecx, [esp + 0x24]
call fcn.00406a80
lea ecx, [esp + 0x24]
call fcn.00407020
lea ecx, [esp + 0x18]
call fcn.00401df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43dd86
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 0x10
jmp 0x43efe6
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.00403120
add esp, 0xc
cmp esi, 3
jne 0x43e5a0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
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 0x43e542
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 0x43e56a
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 0x43e592
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 0x43deab
mov ecx, 0x4a3fd0
call fcn.0044bd90
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
test eax, eax
jne 0x43e63d
mov ecx, 0x4a3fd0
call fcn.0044c190
test eax, eax
je 0x43e63d
push 0x17
push 0
push 0x47f2f8
lea ecx, [esp + 0x24]
call fcn.00407b20
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x18
test eax, eax
je 0x43e629
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 0x43e609
push 0x80004003
call fcn.004650f0
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, 0x4a3fd0
call fcn.0044c650
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x15
test eax, eax
je 0x43e63d
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
call ebx
push eax
mov ecx, 0x4a3fd0
call fcn.0044c650
test eax, eax
je 0x43e658
mov ecx, 0x4a3fd0
call fcn.0044bd70
mov ecx, 0x4a3fd0
call fcn.0044bd90
test eax, eax
je 0x43ef8a
xor esi, esi
push esi
mov ecx, 0x4a3fd0
call fcn.0044be90
push str.SCSI_Connect
call fcn.00403120
lea ecx, [esp + 0x7c]
push ecx
call fcn.00451cc0
add esp, 8
test eax, eax
je 0x43ef43
call fcn.00425cd0
mov ebx, eax
mov dword [esp + 0x18], 0xf
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
push 0x2001f
push 0x48669c
push SysReAllocString
lea ecx, [esp + 0x50]
mov byte [esp + 0x2b0], 0x19
call fcn.0040e920
test eax, eax
jne 0x43e6e4
lea edx, [esp + 0x18]
push edx
push str.DriveLoadTimeout
lea ecx, [esp + 0x4c]
call fcn.0040d230
xor edi, edi
cmp dword [esp + 0x18], edi
jbe 0x43e746
lea ecx, [esp + 0x4c]
call fcn.0044a100
test eax, eax
jne 0x43e790
call ebp
mov esi, eax
push esi
push str.CDeviceManager::MmdaUMSIdentify
push str._s_GetLastError__d_
call fcn.00403120
add esp, 0xc
cmp esi, 3
je 0x43e843
push edi
push str.Driveloading..._d
call fcn.00403120
lea eax, [esp + 0x80]
push eax
call fcn.00451cc0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, dword [esp + 0x18]
jb 0x43e6ec
push str.SCSI_ReConnect
call fcn.00403120
lea eax, [esp + 0x7c]
push eax
call fcn.00451de0
push 0x486600
call fcn.00403120
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x43e776
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
mov eax, dword [esp + 0x1c]
jmp 0x43dcf4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a470
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1a
call fcn.00404410
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 0x43e7da
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 0x43e886
lea ecx, [esp + 0x44]
call fcn.0040d3d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
test eax, eax
mov dword [esp + 0x2a4], 0xffffffff
je 0x43e839
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x1a
jmp 0x43efe6
lea ecx, [esp + 0x44]
call fcn.0040d3d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
test eax, eax
jmp 0x43deab
push 0x4865dc
call fcn.00403120
push str.FUS
call fcn.00403120
mov ebx, dword [esp + 0x48]
add esp, 8
push ebx
mov ecx, 0x4a3fd0
call fcn.0044be90
push str.FUS__
mov esi, eax
call fcn.00403120
push 0
push esi
push str.MMDA_LOCK_retdrive_d__retenable_d
call fcn.00403120
add esp, 0x10
test esi, esi
je 0x43e91c
push 0x486580
call fcn.00403120
push str.SCSI_Connect
call fcn.00403120
lea eax, [esp + 0x80]
push eax
call fcn.00451cc0
push 0x486558
call fcn.00403120
push str.FUS
call fcn.00403120
add esp, 0x14
push ebx
mov ecx, 0x4a3fd0
call fcn.0044be90
push str.FUS
call fcn.00403120
add esp, 4
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43e931
push 0x80004003
call fcn.004650f0
push 0x47f8f8
lea ecx, [esp + 0x24]
call fcn.00406740
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x1b
call fcn.00406740
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x1c
test ecx, ecx
je 0x43e969
mov ecx, dword [ecx]
jmp 0x43e96b
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43e975
mov eax, dword [eax]
jmp 0x43e977
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.004084a0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x19
call fcn.004084a0
push 0x47ed68
lea ecx, [esp + 0x28]
call fcn.004062c0
lea ecx, [esp + 0x24]
call fcn.00401df0
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a4], 0x15
call fcn.0040d3d0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a470
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1d
call fcn.00404410
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401df0
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.0044a4f0
mov edi, dword [esp + 0x3c]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x1e
call fcn.00404410
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401df0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43ea9a
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a470
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1f
call fcn.004045b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401df0
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x50]
call fcn.0044a4f0
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x20
call fcn.004045b0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x15
call fcn.00401df0
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43ece0
push ebx
call fcn.00428290
movzx eax, ax
add esp, 4
test ax, ax
je 0x43eb33
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43eacc
push 0x80004003
call fcn.004650f0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406740
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x21
call fcn.00406740
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x22
test ecx, ecx
je 0x43eb04
mov ecx, dword [ecx]
jmp 0x43eb06
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43eb10
mov eax, dword [eax]
jmp 0x43eb12
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.004084a0
lea ecx, [esp + 0x20]
call fcn.004084a0
jmp 0x43e7ef
lea ecx, [esp + 0x24]
call fcn.004023a0
mov esi, dword [esp + 0x2ac]
mov bl, 0x23
mov byte [esp + 0x2a4], bl
test esi, esi
jne 0x43eb5a
push 0x80004003
call fcn.004650f0
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
call fcn.00406740
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x24
test eax, eax
je 0x43eb7a
mov eax, dword [eax]
jmp 0x43eb7c
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.004084a0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43ebbf
push eax
lea ecx, [esp + 0x28]
call fcn.00403430
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 0x43ebf7
xor eax, eax
push eax
lea eax, [esp + 0x28]
push 0x47f460
push eax
call fcn.00402e30
mov esi, dword [esp + 0x2b8]
add esp, 0xc
test esi, esi
jne 0x43ec70
push 0x80004003
call fcn.004650f0
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
add esp, 4
cmp eax, 0xa
jle 0x43ebcb
lea edx, [esp + 0x78]
push edx
call fcn.00451f10
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00401df0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43ec66
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 4
jmp 0x43efe6
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
call fcn.00406740
mov edi, eax
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x25
call fcn.00406740
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x26
test ecx, ecx
je 0x43eca8
mov ecx, dword [ecx]
jmp 0x43ecaa
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43ecb4
mov eax, dword [eax]
jmp 0x43ecb6
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.004084a0
lea ecx, [esp + 0x20]
call fcn.004084a0
lea ecx, [esp + 0x24]
call fcn.00401df0
jmp 0x43e7ef
mov eax, dword [0x4a40f4]
cmp dword [eax - 0xc], 0
mov ebx, dword [esp + 0x28]
jl 0x43ed0b
push ebx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43ed0b
sub eax, dword [0x4a40f4]
sar eax, 1
cmp eax, 0xffffffff
jne 0x43ed1a
mov eax, dword [ebx - 0xc]
push eax
push ebx
mov ecx, 0x4a40f4
call fcn.00404490
cmp dword [ebx - 0xc], 0
jge 0x43ed2a
push 0x80070057
call fcn.00401100
movzx eax, word [ebx]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00427ec0
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 0x43ed98
test esi, esi
jl 0x43d73e
cmp esi, eax
jg 0x43d73e
cmp dword [ebx - 0xc], 0
movzx eax, word [ecx + esi*2]
jl 0x43d73e
movzx edx, word [ebx]
cmp ax, dx
je 0x43ed90
push esi
lea ecx, [esp + 0x1c]
call fcn.00406ed0
movzx ecx, ax
push ecx
call fcn.004335d0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx - 0xc]
inc esi
cmp esi, eax
jb 0x43ed50
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 0x43edbe
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 0x43eddb
call fcn.0042a350
test eax, eax
je 0x43edf0
push str.NO_SIM
mov ecx, edi
call fcn.00403430
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43ee40
push 0x80004003
call fcn.004650f0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], ebp
test eax, eax
je 0x43ee36
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 6
jmp 0x43efe6
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x24]
call fcn.00406740
mov edi, eax
push str.PhoneNumber
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x28
call fcn.004066b0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x29
test ecx, ecx
je 0x43ee76
mov ecx, dword [ecx]
jmp 0x43ee78
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43ee82
mov eax, dword [eax]
jmp 0x43ee84
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.004084a0
lea ecx, [esp + 0x20]
call fcn.004084a0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
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 0x43eed8
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 0x43eefb
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 0x43ef22
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 0x43ef3c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x43efe6
push 0x4864f8
call fcn.00403120
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
cmp eax, esi
jmp 0x43e824
lea eax, [esp + 0x78]
push eax
call fcn.00451f10
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0044a150
lea ecx, [esp + 0x1c]
call fcn.00401df0
lea ecx, [esp + 0x28]
call fcn.00401df0
lea ecx, [esp + 0x2c]
call fcn.00401df0
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43efe1
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.00473c8a
add esp, 0x294
ret