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

Disassembly:
push 0xffffffffffffffff
push 0x478749
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x49ef38]
xor eax, esp
mov dword [esp + 0x284], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49ef38]
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.004031a0
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
add esp, 4
mov ecx, 0x49f4e4
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 1
cmp eax, ebp
jne 0x43d8bb
push 0x80004003
call fcn.004633e0
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 0x43d901
mov eax, edx
lea esi, [eax + 2]
jmp 0x43d8e0
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43d8e0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x34]
call fcn.004028e0
mov ecx, dword [esp + 0x5c]
push ecx
call ebx
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f4e4
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 0x43d939
push 0x80004003
call fcn.004633e0
push 0x482c2c
lea ecx, [esp + 0x24]
call fcn.00406780
mov eax, dword [eax]
mov byte [esp + 0x2a4], 3
cmp eax, ebp
je 0x43d959
mov eax, dword [eax]
jmp 0x43d95b
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 0x43d9af
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x43d9af
cmp esi, ebp
je 0x43d9af
mov eax, dword [esi]
cmp eax, ebp
je 0x43d996
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x43d9a6
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 0x43d9e9
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43d9c0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x30]
call fcn.004028e0
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 0x43d9f8
push 0x80070057
call fcn.00401120
movzx ebx, word [edi]
push ebx
mov dword [esp + 0x44], ebx
call fcn.00424970
movzx esi, ax
add esp, 4
cmp si, bp
je 0x43e040
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43da29
push 0x80004003
call fcn.004633e0
mov edx, dword [eax]
push 3
push eax
mov eax, dword [edx + 0x78]
call eax
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f4e4
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
movzx ecx, si
push ecx
lea edx, [esp + 0x28]
push 0x482c24
push edx
mov byte [esp + 0x2b0], 4
call fcn.00402eb0
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebp
call fcn.004245d0
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
je 0x43dfa0
xor edi, edi
mov dword [esp + 0x1c], edi
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a8], 5
call fcn.00406f60
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 0x43dbb6
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 0x43dbb6
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
inc eax
cmp edi, eax
jae 0x43df74
push edi
lea ecx, [esp + 0x20]
call fcn.00406a30
mov esi, dword [eax]
push esi
mov ecx, 0x49f180
call fcn.0044af60
cmp eax, 0x4000
je 0x43db0a
cmp eax, 0x8000000
jne 0x43db9f
push str.NULL
lea ecx, [esp + 0x34]
call fcn.00406330
lea edx, [esp + 0x30]
push edx
push str.Drive
push esi
mov byte [esp + 0x2b0], 6
call fcn.0040ce80
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x43db57
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 0x43db93
xor ecx, ecx
cmp dword [esp + 0x24], ecx
setne cl
test ecx, ecx
je 0x43dbbc
mov ecx, dword [esp + 0x24]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x43dbc6
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 0x43db9f
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 0x43dab6
push eax
call fcn.00401120
push 0x80004005
call fcn.00401120
lea eax, [esp + 0x30]
push eax
push str.ENTIREDRIVE
push esi
call fcn.0040ce80
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jl 0x43dc02
mov ecx, dword [esp + 0x28]
push ecx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43dc02
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43df4c
lea edx, [esp + 0x18]
push ebx
push edx
call fcn.004245a0
add esp, 8
push ebx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2a8], 7
call fcn.0044bd90
mov eax, dword [esp + 0x18]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b0], 8
call fcn.0040ccd0
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x49f4e4
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f4e4
mov byte [esp + 0x2a4], 9
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f4e4
mov byte [esp + 0x2a4], 0xa
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f4e4
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.0040ce80
lea edx, [esp + 0x48]
push edx
push str.MMC2Drive
push esi
call fcn.0040ce80
mov eax, dword [esp + 0x54]
add esp, 0x14
add eax, 0xfffffff0
mov dword [esp + 0x68], esp
mov edi, esp
push eax
call fcn.00401530
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.00401530
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.00401530
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.0044c340
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a8], 0xf
call fcn.00404480
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 0x43dd86
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.00401530
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.00401530
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.00401530
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.0044c990
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x2a8], 0x12
call fcn.00404480
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 0x43de30
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.0040ccd0
mov ebx, dword [esp + 0x2c]
push ebx
push str.MMC2Drive
push esi
call fcn.0040ccd0
push ebx
push 0x483cd0
push esi
call fcn.0040ccd0
add esp, 0x24
cmp dword [edi - 0xc], 0
jne 0x43de6c
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x43de6d
push edi
push 0x483cf4
push esi
call fcn.0040ccd0
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 0x43dea3
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 0x43decb
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 0x43deef
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 0x43df13
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.0040e5e0
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 0x43df4c
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 0x43df74
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 0x43dfa0
mov esi, dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
push ebx
call esi
mov edi, dword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
test eax, eax
jl 0x43df96
push ebx
call edi
test eax, eax
jge 0x43dfa0
push ebx
call esi
test eax, eax
jl 0x43dfa0
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 0x43dfc8
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 0x43dff0
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 0x43e018
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 0x43e036
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x10
jmp 0x43f296
mov eax, dword [0x49f4e4]
mov edx, dword [eax + 0xc]
mov ecx, 0x49f4e4
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 0x13
cmp esi, ebp
jne 0x43e073
push 0x80004003
call fcn.004633e0
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
call fcn.00406780
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x14
cmp eax, ebp
je 0x43e093
mov eax, dword [eax]
jmp 0x43e095
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.00407910
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43e0d5
push eax
lea ecx, [esp + 0x20]
call fcn.004034b0
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 0x43e17a
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 0x43e106
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 0x43e12a
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 0x43e152
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 0x43e170
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x43f296
mov ecx, dword [0x47ebb4]
mov eax, dword [str..X:]
mov edx, dword [0x47ebb8]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x47eba8]
mov dword [esp + 0x80], edx
mov edx, dword [0x47ebac]
mov dword [esp + 0x78], eax
mov ax, word [0x47ebbc]
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.0044bd90
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 0x43e23d
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 0x43e793
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bf80
mov edi, dword [esp + 0x38]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x16
call fcn.00404480
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 0x43e287
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.0044c000
mov ecx, dword [esp + 0x3c]
push eax
mov byte [esp + 0x2a8], 0x17
call fcn.00404480
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 0x43e2cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, ebp
je 0x43e793
lea ecx, [esp + 0x1c]
push 0x47e838
push ecx
call fcn.00404130
add esp, 8
test al, al
jne 0x43e793
mov edx, dword [edi]
cmp dword [edx - 0xc], ebp
jne 0x43e793
push ebx
call fcn.00424970
movzx esi, ax
add esp, 4
cmp si, bp
jne 0x43e58c
lea ecx, [esp + 0x18]
call fcn.00402420
mov esi, dword [esp + 0x2ac]
mov bl, 0x2a
mov byte [esp + 0x2a4], bl
cmp esi, ebp
jne 0x43e338
push 0x80004003
call fcn.004633e0
push str.NOMMDA
lea ecx, [esp + 0x18]
call fcn.00406780
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x2b
cmp eax, ebp
je 0x43e358
mov eax, dword [eax]
jmp 0x43e35a
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.00407910
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43e399
push eax
lea ecx, [esp + 0x1c]
call fcn.004034b0
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x34], ebp
lea edx, [esp + 0x18]
push 0x47e838
push edx
call fcn.00404130
add esp, 8
test al, al
je 0x43e4d2
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43e3c8
push 0x80004003
call fcn.004633e0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43e3e7
push 0x80004003
call fcn.004633e0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406780
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2c
call fcn.00406780
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2d
cmp ecx, ebp
je 0x43e41f
mov ecx, dword [ecx]
jmp 0x43e421
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e42b
mov eax, dword [eax]
jmp 0x43e42d
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.00407910
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], bl
call fcn.00407910
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.00423120
call fcn.0043c970
add esp, 0xc
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00401e10
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43e4cb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x43f296
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43e4e7
push 0x80004003
call fcn.004633e0
push 0x47e838
lea ecx, [esp + 0x24]
call fcn.00406780
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2e
call fcn.00406780
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2f
cmp ecx, ebp
je 0x43e51f
mov ecx, dword [ecx]
jmp 0x43e521
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43e52b
mov eax, dword [eax]
jmp 0x43e52d
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.00407910
lea ecx, [esp + 0x20]
call fcn.00407910
lea ecx, [esp + 0x18]
call fcn.00401e10
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jmp 0x43ead4
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43e5a1
push 0x80004003
call fcn.004633e0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
lea ecx, [esp + 0x18]
call fcn.00402420
movzx eax, si
push eax
lea ecx, [esp + 0x1c]
push 0x482c24
push ecx
mov byte [esp + 0x2b0], 0x30
call fcn.00402eb0
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x30], ebp
call fcn.004245d0
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, ebp
je 0x43e732
mov dword [esp + 0x24], ebp
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2a8], 0x31
call fcn.00406f60
push ebp
lea ecx, [esp + 0x28]
xor edi, edi
call fcn.00406600
test eax, eax
jbe 0x43e720
mov ebp, dword [esp + 0x18]
mov bl, 0x32
lea esp, [esp]
push edi
lea ecx, [esp + 0x28]
call fcn.00406a30
mov esi, dword [eax]
push esi
mov ecx, 0x49f180
call fcn.0044af60
cmp eax, 0x4000
je 0x43e645
cmp eax, 0x8000000
jne 0x43e696
push str.NULL
lea ecx, [esp + 0x34]
call fcn.00406330
lea eax, [esp + 0x30]
push eax
push str.Drive
push esi
mov byte [esp + 0x2b0], bl
call fcn.0040ce80
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp dword [ecx - 0xc], 0
lea ecx, [esp + 0x30]
je 0x43e689
push ebp
call fcn.00406950
test eax, eax
je 0x43e6ac
lea ecx, [esp + 0x30]
mov byte [esp + 0x2a4], 0x31
call fcn.00401e10
push 0
lea ecx, [esp + 0x28]
inc edi
call fcn.00406600
cmp edi, eax
jb 0x43e620
jmp 0x43e71e
lea edx, [esp + 0x30]
push edx
push str.ENTIREDRIVE
push esi
call fcn.0040ce80
add esp, 0xc
test ebp, ebp
je 0x43e6e4
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jl 0x43e6e4
push ebp
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43e6e4
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43e715
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.004245a0
mov eax, dword [eax]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b8], 0x33
call fcn.0040ccd0
add esp, 0x14
lea ecx, [esp + 0x14]
call fcn.00401e10
lea ecx, [esp + 0x30]
call fcn.00401e10
xor ebp, ebp
lea ecx, [esp + 0x24]
call fcn.00406ac0
lea ecx, [esp + 0x24]
call fcn.00406f30
lea ecx, [esp + 0x18]
call fcn.00401e10
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43e036
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 0x10
jmp 0x43f296
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.004031a0
add esp, 0xc
cmp esi, 3
jne 0x43e850
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
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 0x43e7f2
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 0x43e81a
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 0x43e842
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 0x43e15b
mov ecx, 0x49f058
call fcn.0044d8a0
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
test eax, eax
jne 0x43e8ed
mov ecx, 0x49f058
call fcn.0044dc40
test eax, eax
je 0x43e8ed
push 0x17
push 0
push 0x47e28c
lea ecx, [esp + 0x24]
call fcn.004077f0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x18
test eax, eax
je 0x43e8d9
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 0x43e8b9
push 0x80004003
call fcn.004633e0
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, 0x49f058
call fcn.0044e180
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x15
test eax, eax
je 0x43e8ed
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
call ebx
push eax
mov ecx, 0x49f058
call fcn.0044e180
test eax, eax
je 0x43e908
mov ecx, 0x49f058
call fcn.0044d880
mov ecx, 0x49f058
call fcn.0044d8a0
test eax, eax
je 0x43f23a
xor esi, esi
push esi
mov ecx, 0x49f058
call fcn.0044d9a0
push str.SCSI_Connect
call fcn.004031a0
lea ecx, [esp + 0x7c]
push ecx
call fcn.00451bb0
add esp, 8
test eax, eax
je 0x43f1f3
call fcn.004220c0
mov ebx, eax
mov dword [esp + 0x18], 0xf
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
push 0x2001f
push 0x4852bc
push SysReAllocStringLen
lea ecx, [esp + 0x50]
mov byte [esp + 0x2b0], 0x19
call fcn.00420e90
test eax, eax
jne 0x43e994
lea edx, [esp + 0x18]
push edx
push str.DriveLoadTimeout
lea ecx, [esp + 0x4c]
call fcn.0040da20
xor edi, edi
cmp dword [esp + 0x18], edi
jbe 0x43e9f6
lea ecx, [esp + 0x4c]
call fcn.0044bc80
test eax, eax
jne 0x43ea40
call ebp
mov esi, eax
push esi
push str.CDeviceManager::MmdaUMSIdentify
push str._s_GetLastError__d_
call fcn.004031a0
add esp, 0xc
cmp esi, 3
je 0x43eaf3
push edi
push str.Driveloading..._d
call fcn.004031a0
lea eax, [esp + 0x80]
push eax
call fcn.00451bb0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, dword [esp + 0x18]
jb 0x43e99c
push str.SCSI_ReConnect
call fcn.004031a0
lea eax, [esp + 0x7c]
push eax
call fcn.00451cd0
push 0x485220
call fcn.004031a0
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x43ea26
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
mov eax, dword [esp + 0x1c]
jmp 0x43dfa4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bf80
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1a
call fcn.00404480
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 0x43ea8a
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 0x43eb36
lea ecx, [esp + 0x44]
call fcn.0040e320
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
test eax, eax
mov dword [esp + 0x2a4], 0xffffffff
je 0x43eae9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x1a
jmp 0x43f296
lea ecx, [esp + 0x44]
call fcn.0040e320
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
test eax, eax
jmp 0x43e15b
push 0x4851fc
call fcn.004031a0
push str.FUS
call fcn.004031a0
mov ebx, dword [esp + 0x48]
add esp, 8
push ebx
mov ecx, 0x49f058
call fcn.0044d9a0
push str.FUS__
mov esi, eax
call fcn.004031a0
push 0
push esi
push str.MMDA_LOCK_retdrive_d__retenable_d
call fcn.004031a0
add esp, 0x10
test esi, esi
je 0x43ebcc
push 0x4851a0
call fcn.004031a0
push str.SCSI_Connect
call fcn.004031a0
lea eax, [esp + 0x80]
push eax
call fcn.00451bb0
push 0x485178
call fcn.004031a0
push str.FUS
call fcn.004031a0
add esp, 0x14
push ebx
mov ecx, 0x49f058
call fcn.0044d9a0
push str.FUS
call fcn.004031a0
add esp, 4
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43ebe1
push 0x80004003
call fcn.004633e0
push 0x47e838
lea ecx, [esp + 0x24]
call fcn.00406780
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x1b
call fcn.00406780
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x1c
test ecx, ecx
je 0x43ec19
mov ecx, dword [ecx]
jmp 0x43ec1b
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43ec25
mov eax, dword [eax]
jmp 0x43ec27
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.00407910
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x19
call fcn.00407910
push 0x47dd5c
lea ecx, [esp + 0x28]
call fcn.00406330
lea ecx, [esp + 0x24]
call fcn.00401e10
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a4], 0x15
call fcn.0040e320
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bf80
mov esi, dword [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1d
call fcn.00404480
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e10
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.0044c000
mov edi, dword [esp + 0x3c]
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x1e
call fcn.00404480
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e10
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43ed4a
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044bf80
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1f
call fcn.00404620
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e10
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x50]
call fcn.0044c000
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x20
call fcn.00404620
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x15
call fcn.00401e10
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43ef90
push ebx
call fcn.00424970
movzx eax, ax
add esp, 4
test ax, ax
je 0x43ede3
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43ed7c
push 0x80004003
call fcn.004633e0
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406780
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x21
call fcn.00406780
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x22
test ecx, ecx
je 0x43edb4
mov ecx, dword [ecx]
jmp 0x43edb6
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43edc0
mov eax, dword [eax]
jmp 0x43edc2
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.00407910
lea ecx, [esp + 0x20]
call fcn.00407910
jmp 0x43ea9f
lea ecx, [esp + 0x24]
call fcn.00402420
mov esi, dword [esp + 0x2ac]
mov bl, 0x23
mov byte [esp + 0x2a4], bl
test esi, esi
jne 0x43ee0a
push 0x80004003
call fcn.004633e0
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
call fcn.00406780
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x24
test eax, eax
je 0x43ee2a
mov eax, dword [eax]
jmp 0x43ee2c
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.00407910
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43ee6f
push eax
lea ecx, [esp + 0x28]
call fcn.004034b0
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 0x43eea7
xor eax, eax
push eax
lea eax, [esp + 0x28]
push 0x482a00
push eax
call fcn.00402eb0
mov esi, dword [esp + 0x2b8]
add esp, 0xc
test esi, esi
jne 0x43ef20
push 0x80004003
call fcn.004633e0
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
add esp, 4
cmp eax, 0xa
jle 0x43ee7b
lea edx, [esp + 0x78]
push edx
call fcn.00451e00
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00401e10
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43ef16
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 4
jmp 0x43f296
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
call fcn.00406780
mov edi, eax
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x25
call fcn.00406780
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x26
test ecx, ecx
je 0x43ef58
mov ecx, dword [ecx]
jmp 0x43ef5a
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43ef64
mov eax, dword [eax]
jmp 0x43ef66
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.00407910
lea ecx, [esp + 0x20]
call fcn.00407910
lea ecx, [esp + 0x24]
call fcn.00401e10
jmp 0x43ea9f
mov eax, dword [0x49f17c]
cmp dword [eax - 0xc], 0
mov ebx, dword [esp + 0x28]
jl 0x43efbb
push ebx
push eax
call dword [sym.imp.MSVCR90.dll_wcsstr]
add esp, 8
test eax, eax
je 0x43efbb
sub eax, dword [0x49f17c]
sar eax, 1
cmp eax, 0xffffffff
jne 0x43efca
mov eax, dword [ebx - 0xc]
push eax
push ebx
mov ecx, 0x49f17c
call fcn.00404500
cmp dword [ebx - 0xc], 0
jge 0x43efda
push 0x80070057
call fcn.00401120
movzx eax, word [ebx]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.004245a0
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 0x43f048
test esi, esi
jl 0x43d9ee
cmp esi, eax
jg 0x43d9ee
cmp dword [ebx - 0xc], 0
movzx eax, word [ecx + esi*2]
jl 0x43d9ee
movzx edx, word [ebx]
cmp ax, dx
je 0x43f040
push esi
lea ecx, [esp + 0x1c]
call fcn.0041f2d0
movzx ecx, ax
push ecx
call fcn.00431f30
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx - 0xc]
inc esi
cmp esi, eax
jb 0x43f000
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 0x43f06e
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 0x43f08b
call fcn.00426ad0
test eax, eax
je 0x43f0a0
push str.NO_SIM
mov ecx, edi
call fcn.004034b0
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43f0f0
push 0x80004003
call fcn.004633e0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], ebp
test eax, eax
je 0x43f0e6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 6
jmp 0x43f296
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x24]
call fcn.00406780
mov edi, eax
push str.PhoneNumber
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x28
call fcn.004066f0
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x29
test ecx, ecx
je 0x43f126
mov ecx, dword [ecx]
jmp 0x43f128
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43f132
mov eax, dword [eax]
jmp 0x43f134
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.00407910
lea ecx, [esp + 0x20]
call fcn.00407910
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
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 0x43f188
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 0x43f1ab
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 0x43f1d2
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 0x43f1ec
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x43f296
push 0x485118
call fcn.004031a0
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
cmp eax, esi
jmp 0x43ead4
lea eax, [esp + 0x78]
push eax
call fcn.00451e00
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.0040e5e0
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x28]
call fcn.00401e10
lea ecx, [esp + 0x2c]
call fcn.00401e10
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43f291
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.00471f66
add esp, 0x294
ret