Function at 0x43cae0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x479b69
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x4a4eb0]
xor eax, esp
mov dword [esp + 0x284], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a4eb0]
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.00403140
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
add esp, 4
mov ecx, 0x4a540c
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 1
cmp eax, ebp
jne 0x43cb7b
push 0x80004003
call fcn.00465c30
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 [0x47f47c]
cmp edx, ebp
je 0x43cbc1
mov eax, edx
lea esi, [eax + 2]
jmp 0x43cba0
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43cba0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x34]
call fcn.00402880
mov ecx, dword [esp + 0x5c]
push ecx
call ebx
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a540c
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 0x43cbf9
push 0x80004003
call fcn.00465c30
push str.DRIVE
lea ecx, [esp + 0x24]
call fcn.00406720
mov eax, dword [eax]
mov byte [esp + 0x2a4], 3
cmp eax, ebp
je 0x43cc19
mov eax, dword [eax]
jmp 0x43cc1b
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 0x43cc6f
mov esi, eax
add eax, 8
push eax
call dword [0x47f1f8]
cmp eax, ebp
jne 0x43cc6f
cmp esi, ebp
je 0x43cc6f
mov eax, dword [esi]
cmp eax, ebp
je 0x43cc56
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x43cc66
push eax
call fcn.004746d4
add esp, 4
push esi
call fcn.004746d4
add esp, 4
mov edx, dword [esp + 0x34]
cmp edx, ebp
je 0x43cca9
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x43cc80
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x30]
call fcn.00402880
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 0x43ccb8
push 0x80070057
call fcn.00401120
movzx ebx, word [edi]
push ebx
mov dword [esp + 0x44], ebx
call fcn.00427880
movzx esi, ax
add esp, 4
cmp si, bp
je 0x43d300
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43cce9
push 0x80004003
call fcn.00465c30
mov edx, dword [eax]
push 3
push eax
mov eax, dword [edx + 0x78]
call eax
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a540c
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
movzx ecx, si
push ecx
lea edx, [esp + 0x28]
push 0x48526c
push edx
mov byte [esp + 0x2b0], 4
call fcn.00402e50
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebp
call fcn.004274e0
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
je 0x43d260
xor edi, edi
mov dword [esp + 0x1c], edi
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a8], 5
call fcn.00407030
mov edx, dword [esp + 0x1c]
mov ebp, dword [0x47f444]
lea ecx, [esp + 0x18]
push ecx
push 1
push edx
call ebp
cmp eax, edi
jl 0x43ce76
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
push 1
push ecx
call dword [0x47f448]
test eax, eax
jl 0x43ce76
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
inc eax
cmp edi, eax
jae 0x43d234
push edi
lea ecx, [esp + 0x20]
call fcn.004069d0
mov esi, dword [eax]
push esi
mov ecx, 0x4a50f8
call fcn.00449080
cmp eax, 0x4000
je 0x43cdca
cmp eax, 0x8000000
jne 0x43ce5f
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.0040dd70
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jne 0x43ce17
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 0x43ce53
xor ecx, ecx
cmp dword [esp + 0x24], ecx
setne cl
test ecx, ecx
je 0x43ce7c
mov ecx, dword [esp + 0x24]
push ecx
push eax
call dword [0x47f3b0]
add esp, 8
test eax, eax
je 0x43ce86
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 0x43ce5f
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 0x43cd76
push eax
call fcn.00401120
push 0x80004005
call fcn.00401120
lea eax, [esp + 0x30]
push eax
push str.ENTIREDRIVE
push esi
call fcn.0040dd70
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp dword [eax - 0xc], 0
jl 0x43cec2
mov ecx, dword [esp + 0x28]
push ecx
push eax
call dword [0x47f37c]
add esp, 8
test eax, eax
je 0x43cec2
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43d20c
lea edx, [esp + 0x18]
push ebx
push edx
call fcn.004274b0
add esp, 8
push ebx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2a8], 7
call fcn.00449f30
mov eax, dword [esp + 0x18]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b0], 8
call fcn.0040d9c0
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
add esp, 0xc
mov ecx, 0x4a540c
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a540c
mov byte [esp + 0x2a4], 9
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a540c
mov byte [esp + 0x2a4], 0xa
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a540c
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.0040dd70
lea edx, [esp + 0x48]
push edx
push str.MMC2Drive
push esi
call fcn.0040dd70
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.0044a4e0
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 0x43d046
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.0044ab30
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 0x43d0f0
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.0040d9c0
mov ebx, dword [esp + 0x2c]
push ebx
push str.MMC2Drive
push esi
call fcn.0040d9c0
push ebx
push str.ExternalDrive
push esi
call fcn.0040d9c0
add esp, 0x24
cmp dword [edi - 0xc], 0
jne 0x43d12c
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x43d12d
push edi
push str.InternalDrive
push esi
call fcn.0040d9c0
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 0x43d163
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 0x43d18b
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 0x43d1af
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 0x43d1d3
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.00449e00
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 0x43d20c
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 0x43d234
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 0x43d260
mov esi, dword [0x47f43c]
push ebx
call esi
mov edi, dword [0x47f45c]
test eax, eax
jl 0x43d256
push ebx
call edi
test eax, eax
jge 0x43d260
push ebx
call esi
test eax, eax
jl 0x43d260
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 0x43d288
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 0x43d2b0
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 0x43d2d8
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 0x43d2f6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x10
jmp 0x43e556
mov eax, dword [0x4a540c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4a540c
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x2ac]
mov byte [esp + 0x2a4], 0x13
cmp esi, ebp
jne 0x43d333
push 0x80004003
call fcn.00465c30
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
call fcn.00406720
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x14
cmp eax, ebp
je 0x43d353
mov eax, dword [eax]
jmp 0x43d355
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.00407c20
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43d395
push eax
lea ecx, [esp + 0x20]
call fcn.00403450
mov ecx, dword [esp + 0x34]
push ecx
call dword [0x47f47c]
mov dword [esp + 0x34], ebp
cmp dword [edi - 0xc], ebp
jne 0x43d43a
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 0x43d3c6
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 0x43d3ea
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 0x43d412
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 0x43d430
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 3
jmp 0x43e556
mov ecx, dword [0x480dc4]
mov eax, dword [str..X:]
mov edx, dword [0x480dc8]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x480db8]
mov dword [esp + 0x80], edx
mov edx, dword [0x480dbc]
mov dword [esp + 0x78], eax
mov ax, word [0x480dcc]
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 [0x47f1f4]
push ebx
lea ecx, [esp + 0x50]
call fcn.00449f30
mov edi, dword [0x47f0b0]
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 0x43d4fd
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 0x43da53
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a120
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 0x43d547
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.0044a1a0
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 0x43d58f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, ebp
je 0x43da53
lea ecx, [esp + 0x1c]
push 0x4808f8
push ecx
call fcn.004040c0
add esp, 8
test al, al
jne 0x43da53
mov edx, dword [edi]
cmp dword [edx - 0xc], ebp
jne 0x43da53
push ebx
call fcn.00427880
movzx esi, ax
add esp, 4
cmp si, bp
jne 0x43d84c
lea ecx, [esp + 0x18]
call fcn.004023c0
mov esi, dword [esp + 0x2ac]
mov bl, 0x2a
mov byte [esp + 0x2a4], bl
cmp esi, ebp
jne 0x43d5f8
push 0x80004003
call fcn.00465c30
push str.NOMMDA
lea ecx, [esp + 0x18]
call fcn.00406720
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x2b
cmp eax, ebp
je 0x43d618
mov eax, dword [eax]
jmp 0x43d61a
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.00407c20
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x43d659
push eax
lea ecx, [esp + 0x1c]
call fcn.00403450
mov ecx, dword [esp + 0x34]
push ecx
call dword [0x47f47c]
mov dword [esp + 0x34], ebp
lea edx, [esp + 0x18]
push 0x4808f8
push edx
call fcn.004040c0
add esp, 8
test al, al
je 0x43d792
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43d688
push 0x80004003
call fcn.00465c30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43d6a7
push 0x80004003
call fcn.00465c30
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406720
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2c
call fcn.00406720
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2d
cmp ecx, ebp
je 0x43d6df
mov ecx, dword [ecx]
jmp 0x43d6e1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43d6eb
mov eax, dword [eax]
jmp 0x43d6ed
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.00407c20
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], bl
call fcn.00407c20
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.00426340
call fcn.0043bc30
add esp, 0xc
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.0044e330
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43d78b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x43e556
mov esi, dword [esp + 0x2ac]
cmp esi, ebp
jne 0x43d7a7
push 0x80004003
call fcn.00465c30
push 0x4808f8
lea ecx, [esp + 0x24]
call fcn.00406720
mov edi, eax
push str.NOMMDA
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x2e
call fcn.00406720
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x2f
cmp ecx, ebp
je 0x43d7df
mov ecx, dword [ecx]
jmp 0x43d7e1
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43d7eb
mov eax, dword [eax]
jmp 0x43d7ed
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.00407c20
lea ecx, [esp + 0x20]
call fcn.00407c20
lea ecx, [esp + 0x18]
call fcn.0044e330
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jmp 0x43dd94
mov eax, dword [esp + 0x2ac]
cmp eax, ebp
jne 0x43d861
push 0x80004003
call fcn.00465c30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
push 3
push eax
call edx
lea ecx, [esp + 0x18]
call fcn.004023c0
movzx eax, si
push eax
lea ecx, [esp + 0x1c]
push 0x48526c
push ecx
mov byte [esp + 0x2b0], 0x30
call fcn.00402e50
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x30], ebp
call fcn.004274e0
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, ebp
je 0x43d9f2
mov dword [esp + 0x24], ebp
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x2a8], 0x31
call fcn.00407030
push ebp
lea ecx, [esp + 0x28]
xor edi, edi
call fcn.00406580
test eax, eax
jbe 0x43d9e0
mov ebp, dword [esp + 0x18]
mov bl, 0x32
lea esp, [esp]
push edi
lea ecx, [esp + 0x28]
call fcn.004069d0
mov esi, dword [eax]
push esi
mov ecx, 0x4a50f8
call fcn.00449080
cmp eax, 0x4000
je 0x43d905
cmp eax, 0x8000000
jne 0x43d956
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.0040dd70
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp dword [ecx - 0xc], 0
lea ecx, [esp + 0x30]
je 0x43d949
push ebp
call fcn.004068f0
test eax, eax
je 0x43d96c
lea ecx, [esp + 0x30]
mov byte [esp + 0x2a4], 0x31
call fcn.0044e330
push 0
lea ecx, [esp + 0x28]
inc edi
call fcn.00406580
cmp edi, eax
jb 0x43d8e0
jmp 0x43d9de
lea edx, [esp + 0x30]
push edx
push str.ENTIREDRIVE
push esi
call fcn.0040dd70
add esp, 0xc
test ebp, ebp
je 0x43d9a4
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0
jl 0x43d9a4
push ebp
push eax
call dword [0x47f37c]
add esp, 8
test eax, eax
je 0x43d9a4
sub eax, dword [esp + 0x30]
sar eax, 1
jns 0x43d9d5
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.004274b0
mov eax, dword [eax]
push eax
push str.ENTIREDRIVE
push esi
mov byte [esp + 0x2b8], 0x33
call fcn.0040d9c0
add esp, 0x14
lea ecx, [esp + 0x14]
call fcn.0044e330
lea ecx, [esp + 0x30]
call fcn.0044e330
xor ebp, ebp
lea ecx, [esp + 0x24]
call fcn.00406a60
lea ecx, [esp + 0x24]
call fcn.00407000
lea ecx, [esp + 0x18]
call fcn.0044e330
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
cmp eax, ebp
je 0x43d2f6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 0x10
jmp 0x43e556
mov ebp, dword [0x47f224]
call ebp
mov esi, eax
push esi
push str.CDeviceManager::MmdaUMSIdentify
push str._s_GetLastError__d_
call fcn.00403140
add esp, 0xc
cmp esi, 3
jne 0x43db10
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
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 0x43dab2
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 0x43dada
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 0x43db02
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 0x43d41b
mov ecx, 0x4a4fd0
call fcn.0044ba40
mov ebx, dword [0x47f158]
test eax, eax
jne 0x43dbad
mov ecx, 0x4a4fd0
call fcn.0044c080
test eax, eax
je 0x43dbad
push 0x17
push 0
push 0x4802f8
lea ecx, [esp + 0x24]
call fcn.00407b00
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x18
test eax, eax
je 0x43db99
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 0x43db79
push 0x80004003
call fcn.00465c30
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, 0x4a4fd0
call fcn.0044c5b0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x2a4], 0x15
test eax, eax
je 0x43dbad
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
call ebx
push eax
mov ecx, 0x4a4fd0
call fcn.0044c5b0
test eax, eax
je 0x43dbc8
mov ecx, 0x4a4fd0
call fcn.0044ba20
mov ecx, 0x4a4fd0
call fcn.0044ba40
test eax, eax
je 0x43e4fa
xor esi, esi
push esi
mov ecx, 0x4a4fd0
call fcn.0044bd20
push str.SCSI_Connect
call fcn.00403140
lea ecx, [esp + 0x7c]
push ecx
call fcn.00451e30
add esp, 8
test eax, eax
je 0x43e4b3
call fcn.004252d0
mov ebx, eax
mov dword [esp + 0x18], 0xf
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
push 0x2001f
push 0x4876d4
push 0x80000001
lea ecx, [esp + 0x50]
mov byte [esp + 0x2b0], 0x19
call fcn.0040e900
test eax, eax
jne 0x43dc54
lea edx, [esp + 0x18]
push edx
push str.DriveLoadTimeout
lea ecx, [esp + 0x4c]
call fcn.0040d210
xor edi, edi
cmp dword [esp + 0x18], edi
jbe 0x43dcb6
lea ecx, [esp + 0x4c]
call fcn.00449db0
test eax, eax
jne 0x43dd00
call ebp
mov esi, eax
push esi
push str.CDeviceManager::MmdaUMSIdentify
push str._s_GetLastError__d_
call fcn.00403140
add esp, 0xc
cmp esi, 3
je 0x43ddb3
push edi
push str.Driveloading..._d
call fcn.00403140
lea eax, [esp + 0x80]
push eax
call fcn.00451e30
add esp, 0xc
push ebx
call dword [0x47f1f4]
inc edi
cmp edi, dword [esp + 0x18]
jb 0x43dc5c
push str.SCSI_ReConnect
call fcn.00403140
lea eax, [esp + 0x7c]
push eax
call fcn.00451f50
push 0x487638
call fcn.00403140
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x43dce6
push eax
call dword [0x47f008]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
mov eax, dword [esp + 0x1c]
jmp 0x43d264
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a120
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 0x43dd4a
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 0x43ddf6
lea ecx, [esp + 0x44]
call fcn.0040d3b0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
test eax, eax
mov dword [esp + 0x2a4], 0xffffffff
je 0x43dda9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x1a
jmp 0x43e556
lea ecx, [esp + 0x44]
call fcn.0040d3b0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
test eax, eax
jmp 0x43d41b
push 0x487614
call fcn.00403140
push str.FUS
call fcn.00403140
mov ebx, dword [esp + 0x48]
add esp, 8
push ebx
mov ecx, 0x4a4fd0
call fcn.0044bd20
push str.FUS__
mov esi, eax
call fcn.00403140
push 0
push esi
push str.MMDA_LOCK_retdrive_d__retenable_d
call fcn.00403140
add esp, 0x10
test esi, esi
je 0x43de8c
push 0x4875b8
call fcn.00403140
push str.SCSI_Connect
call fcn.00403140
lea eax, [esp + 0x80]
push eax
call fcn.00451e30
push 0x487590
call fcn.00403140
push str.FUS
call fcn.00403140
add esp, 0x14
push ebx
mov ecx, 0x4a4fd0
call fcn.0044bd20
push str.FUS
call fcn.00403140
add esp, 4
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43dea1
push 0x80004003
call fcn.00465c30
push 0x4808f8
lea ecx, [esp + 0x24]
call fcn.00406720
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x1b
call fcn.00406720
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x1c
test ecx, ecx
je 0x43ded9
mov ecx, dword [ecx]
jmp 0x43dedb
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43dee5
mov eax, dword [eax]
jmp 0x43dee7
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.00407c20
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x19
call fcn.00407c20
push 0x47fd68
lea ecx, [esp + 0x28]
call fcn.004062c0
lea ecx, [esp + 0x24]
call fcn.0044e330
lea ecx, [esp + 0x44]
mov byte [esp + 0x2a4], 0x15
call fcn.0040d3b0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a120
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.0044e330
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
call fcn.0044a1a0
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.0044e330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43e00a
push 0x3e8
call dword [0x47f1f4]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x50]
call fcn.0044a120
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 0x1f
call fcn.004045b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a4], 0x15
call fcn.0044e330
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x50]
call fcn.0044a1a0
push eax
mov ecx, edi
mov byte [esp + 0x2a8], 0x20
call fcn.004045b0
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a4], 0x15
call fcn.0044e330
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x43e250
push ebx
call fcn.00427880
movzx eax, ax
add esp, 4
test ax, ax
je 0x43e0a3
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43e03c
push 0x80004003
call fcn.00465c30
push str.FALSE
lea ecx, [esp + 0x24]
call fcn.00406720
mov edi, eax
push str.FSUSBLOCKED
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x21
call fcn.00406720
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x22
test ecx, ecx
je 0x43e074
mov ecx, dword [ecx]
jmp 0x43e076
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43e080
mov eax, dword [eax]
jmp 0x43e082
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.00407c20
lea ecx, [esp + 0x20]
call fcn.00407c20
jmp 0x43dd5f
lea ecx, [esp + 0x24]
call fcn.004023c0
mov esi, dword [esp + 0x2ac]
mov bl, 0x23
mov byte [esp + 0x2a4], bl
test esi, esi
jne 0x43e0ca
push 0x80004003
call fcn.00465c30
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
call fcn.00406720
mov eax, dword [eax]
mov byte [esp + 0x2a4], 0x24
test eax, eax
je 0x43e0ea
mov eax, dword [eax]
jmp 0x43e0ec
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.00407c20
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43e12f
push eax
lea ecx, [esp + 0x28]
call fcn.00403450
mov ecx, dword [esp + 0x34]
push ecx
call dword [0x47f47c]
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x24]
cmp dword [eax - 0xc], 0
jne 0x43e167
xor eax, eax
push eax
lea eax, [esp + 0x28]
push 0x480460
push eax
call fcn.00402e50
mov esi, dword [esp + 0x2b8]
add esp, 0xc
test esi, esi
jne 0x43e1e0
push 0x80004003
call fcn.00465c30
push eax
call dword [0x47f2d0]
add esp, 4
cmp eax, 0xa
jle 0x43e13b
lea edx, [esp + 0x78]
push edx
call fcn.00452080
add esp, 4
lea ecx, [esp + 0x24]
call fcn.0044e330
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43e1d6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 4
jmp 0x43e556
mov ecx, dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
call fcn.00406720
mov edi, eax
push str.MMDAERRORCOUNT
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x25
call fcn.00406720
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x26
test ecx, ecx
je 0x43e218
mov ecx, dword [ecx]
jmp 0x43e21a
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43e224
mov eax, dword [eax]
jmp 0x43e226
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.00407c20
lea ecx, [esp + 0x20]
call fcn.00407c20
lea ecx, [esp + 0x24]
call fcn.0044e330
jmp 0x43dd5f
mov eax, dword [0x4a50f4]
cmp dword [eax - 0xc], 0
mov ebx, dword [esp + 0x28]
jl 0x43e27b
push ebx
push eax
call dword [0x47f37c]
add esp, 8
test eax, eax
je 0x43e27b
sub eax, dword [0x4a50f4]
sar eax, 1
cmp eax, 0xffffffff
jne 0x43e28a
mov eax, dword [ebx - 0xc]
push eax
push ebx
mov ecx, 0x4a50f4
call fcn.00404490
cmp dword [ebx - 0xc], 0
jge 0x43e29a
push 0x80070057
call fcn.00401120
movzx eax, word [ebx]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.004274b0
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 0x43e308
test esi, esi
jl 0x43ccae
cmp esi, eax
jg 0x43ccae
cmp dword [ebx - 0xc], 0
movzx eax, word [ecx + esi*2]
jl 0x43ccae
movzx edx, word [ebx]
cmp ax, dx
je 0x43e300
push esi
lea ecx, [esp + 0x1c]
call fcn.00406eb0
movzx ecx, ax
push ecx
call fcn.00432b00
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx - 0xc]
inc esi
cmp esi, eax
jb 0x43e2c0
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 0x43e32e
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 0x43e34b
call fcn.00429940
test eax, eax
je 0x43e360
push str.NO_SIM
mov ecx, edi
call fcn.00403450
mov esi, dword [esp + 0x2ac]
test esi, esi
jne 0x43e3b0
push 0x80004003
call fcn.00465c30
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], ebp
test eax, eax
je 0x43e3a6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, 6
jmp 0x43e556
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x24]
call fcn.00406720
mov edi, eax
push str.PhoneNumber
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a8], 0x28
call fcn.00406690
mov ecx, dword [edi]
mov byte [esp + 0x2a4], 0x29
test ecx, ecx
je 0x43e3e6
mov ecx, dword [ecx]
jmp 0x43e3e8
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x43e3f2
mov eax, dword [eax]
jmp 0x43e3f4
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.00407c20
lea ecx, [esp + 0x20]
call fcn.00407c20
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
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 0x43e448
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 0x43e46b
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 0x43e492
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 0x43e4ac
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
jmp 0x43e556
push 0x487530
call fcn.00403140
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
cmp eax, esi
jmp 0x43dd94
lea eax, [esp + 0x78]
push eax
call fcn.00452080
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a4], 0x13
call fcn.00449e00
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x28]
call fcn.0044e330
lea ecx, [esp + 0x2c]
call fcn.0044e330
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x2a4], 0xffffffff
test eax, eax
je 0x43e551
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.004747ca
add esp, 0x294
ret