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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x344
push ebx
mov ebx, ecx
cmp dword [ebx + 0x48], 0xffffffff
push esi
push edi
je 0x811668
mov eax, dword [ebp + 8]
push eax
call fcn.00813320
test al, al
jne 0x81165d
mov edx, dword [ebx]
mov eax, dword [edx + 0x78]
push str.NTV2AutoCirculateRemote_failed
mov ecx, ebx
call eax
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp + 8]
mov esi, dword [edi]
mov byte [esp + 0xf], 1
cmp esi, 0xe
ja case.default.0x811682
movzx ecx, byte [esi + 0x811ef0]
jmp dword [ecx*4 + 0x811ed0]
push 0x38
lea edx, [esp + 0x1c]
push 0
push edx
call fcn.0083d630
mov eax, dword [ebx + 0xf8]
mov ecx, dword [ebx + 0xfc]
mov edx, dword [ebx + 0x100]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x104]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 4]
add esp, 0xc
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 6
mov dword [esp + 0x2c], 2
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], esi
cmp esi, 0xa
ja case.0x8116ed.1
movzx edx, byte [esi + 0x811f14]
jmp dword [edx*4 + 0x811f00]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x38], eax
movzx eax, byte [edi + 0x20]
mov dword [esp + 0x3c], ecx
movzx ecx, byte [edi + 0x21]
mov dword [esp + 0x40], edx
movzx edx, byte [edi + 0x22]
mov byte [esp + 0x44], al
movzx eax, byte [edi + 0x23]
mov byte [esp + 0x45], cl
movzx ecx, byte [edi + 0x24]
mov byte [esp + 0x46], dl
movzx edx, byte [edi + 0x25]
mov byte [esp + 0x47], al
movzx eax, byte [edi + 0x26]
mov byte [esp + 0x48], cl
movzx ecx, byte [edi + 0x27]
mov byte [esp + 0x49], dl
mov byte [esp + 0x4a], al
mov byte [esp + 0x4b], cl
jmp case.0x8116ed.1
mov dl, byte [edi + 0x20]
mov byte [esp + 0x44], dl
jmp case.0x8116ed.1
mov eax, dword [edi + 8]
mov dword [esp + 0x38], eax
jmp case.0x8116ed.1
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
push 0
lea eax, [esp + 0x18]
push eax
mov eax, dword [ebx + 0xf0]
push 0x38
lea ecx, [esp + 0x24]
push ecx
push 0x38
mov edx, ecx
push edx
push 0x2f0003
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
setne byte [esp + 0xf]
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x70
lea ecx, [esp + 0x1c]
push 0
push ecx
call fcn.0083d630
mov edx, dword [ebx + 0xf8]
mov eax, dword [ebx + 0xfc]
mov ecx, dword [ebx + 0x100]
mov dword [esp + 0x24], edx
mov edx, dword [ebx + 0x104]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 4]
add esp, 0xc
cmp dword [edi + 0x28], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], 7
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], 4
je 0x811ebb
push 0
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [ebx + 0xf0]
push 0x70
lea edx, [esp + 0x24]
push edx
push 0x70
mov eax, edx
push eax
push 0x2f0003
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x811ebb
mov edi, dword [edi + 0x28]
mov al, byte [esp + 0xf]
mov ecx, 0x14
lea esi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xa8
lea edx, [esp + 0x1c]
push 0
push edx
call fcn.0083d630
mov eax, dword [ebx + 0xf8]
mov ecx, dword [ebx + 0xfc]
mov edx, dword [ebx + 0x100]
mov esi, dword [edi + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x104]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [edi + 8]
add esp, 0xc
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], 5
mov dword [esp + 0x38], edx
test esi, esi
je 0x811ebb
push 0
lea eax, [esp + 0x18]
push eax
mov eax, dword [ebx + 0xf0]
push 0xa8
mov ecx, 0x20
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x24]
push ecx
push 0xa8
mov edx, ecx
push edx
push 0x2f0003
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x811ebb
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x28]
mov al, byte [esp + 0xf]
mov ecx, 0x20
lea esi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xd0
lea eax, [esp + 0x1c]
push 0
push eax
call fcn.0083d630
mov ecx, dword [ebx + 0xf8]
mov edx, dword [ebx + 0xfc]
mov eax, dword [ebx + 0x100]
mov esi, dword [edi + 0x28]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x104]
mov dword [esp + 0x28], edx
mov edx, dword [edi + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 8]
add esp, 0xc
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], 0xd
mov dword [esp + 0x38], eax
test esi, esi
je 0x811ebb
mov ecx, 0x20
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0x2c]
test esi, esi
je 0x8119a7
mov ecx, 9
lea edi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
push 0
lea edx, [esp + 0x18]
push edx
mov edx, dword [ebx + 0xf0]
push 0xd0
lea eax, [esp + 0x24]
push eax
push 0xd0
mov ecx, eax
push ecx
push 0x2f0003
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x811ebb
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x28]
mov ecx, 0x20
lea esi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [eax + 0x2c]
test edi, edi
je case.default.0x811682
mov al, byte [esp + 0xf]
mov ecx, 9
lea esi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x150
lea eax, [esp + 0xec]
push 0
push eax
call fcn.0083d630
mov ecx, dword [ebx + 0xf8]
mov esi, dword [edi + 0x28]
mov edx, dword [ebx + 0xfc]
mov eax, dword [ebx + 0x100]
mov dword [esp + 0xf4], ecx
mov ecx, dword [ebx + 0x104]
add esp, 0xc
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], 9
mov dword [esp + 0xfc], 1
mov dword [esp + 0x100], 8
test esi, esi
je 0x811ebb
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x811ebb
mov ecx, 0x24
lea edi, [esp + 0x104]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x118]
test ecx, ecx
je 0x811afb
test cl, 3
je 0x811ad1
mov edx, dword [ebx]
mov eax, dword [edx + 0x78]
push str.TransferAutoCirculate_failed___audio_buffer_size_not_mod_4
mov ecx, ebx
mov byte [esp + 0x13], 0
call eax
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test byte [esp + 0x114], 3
je 0x811afb
mov edx, dword [ebx]
mov eax, dword [edx + 0x78]
push str.TransferAutoCirculate_failed___audio_buffer_address_not_mod_4
mov ecx, ebx
mov byte [esp + 0x13], 0
call eax
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, eax
mov ecx, 0x28
lea edi, [esp + 0x18]
push 0
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x18]
push ecx
push 0xa0
lea edx, [esp + 0x24]
push edx
push 0x150
lea eax, [esp + 0xfc]
mov ecx, dword [ebx + 0xf0]
push eax
push 0x2f0003
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x811b5a
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x2c]
mov al, byte [esp + 0xf]
mov ecx, 0x28
lea esi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [ebx + 0x10], 0
je 0x811ebb
push 0
push 0
lea eax, [esp + 0x18]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov ecx, dword [esp + 0x10]
push 0x10
push str.CNTV2WinDriverInterface
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [esp + 0x10]
push edx
push str.DmaTransfer_failed:__s_n
call fcn.0083e6ca
mov eax, dword [esp + 0x18]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov byte [esp + 0xf], 0
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x248
lea ecx, [esp + 0xec]
push 0
push ecx
call fcn.0083d630
mov edx, dword [ebx + 0xf8]
mov esi, dword [edi + 0x28]
mov eax, dword [ebx + 0xfc]
mov ecx, dword [ebx + 0x100]
mov dword [esp + 0xf4], edx
mov edx, dword [ebx + 0x104]
add esp, 0xc
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], 0xc
mov dword [esp + 0xfc], 1
mov dword [esp + 0x100], 0xb
test esi, esi
je 0x811ebb
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x811ebb
mov ecx, 0x24
lea edi, [esp + 0x104]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0x30]
test esi, esi
je 0x811c71
mov ecx, 0x3d
lea edi, [esp + 0x238]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x118]
test ecx, ecx
je 0x811c93
test cl, 3
jne 0x811ab1
test byte [esp + 0x114], 3
jne 0x811adb
mov esi, eax
mov ecx, 0x28
lea edi, [esp + 0x18]
push 0
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x18]
push ecx
push 0xa0
lea edx, [esp + 0x24]
push edx
push 0x248
lea eax, [esp + 0xfc]
jmp 0x811b25
push 0x268
lea ecx, [esp + 0xec]
push 0
push ecx
call fcn.0083d630
mov edx, dword [ebx + 0xf8]
mov esi, dword [edi + 0x28]
mov eax, dword [ebx + 0xfc]
mov ecx, dword [ebx + 0x100]
mov dword [esp + 0xf4], edx
mov edx, dword [ebx + 0x104]
add esp, 0xc
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], 0xe
mov dword [esp + 0xfc], 1
mov dword [esp + 0x100], 0xc
test esi, esi
je 0x811ebb
mov edx, dword [edi + 0x2c]
test edx, edx
je 0x811ebb
mov eax, dword [ebp + 8]
mov ecx, 0x24
lea edi, [esp + 0x104]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [eax + 0x30]
test esi, esi
je 0x811d6a
mov ecx, 0x3d
lea edi, [esp + 0x238]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [eax + 0x34]
test esi, esi
je 0x811d7f
mov ecx, 9
lea edi, [esp + 0x32c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x118]
test eax, eax
je 0x811dd8
test al, 3
je 0x811dae
mov eax, dword [ebx]
mov edx, dword [eax + 0x78]
push str.TransferAutoCirculate_failed___audio_buffer_size_not_mod_4
mov ecx, ebx
mov byte [esp + 0x13], 0
call edx
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test byte [esp + 0x114], 3
je 0x811dd8
mov eax, dword [ebx]
mov edx, dword [eax + 0x78]
push str.TransferAutoCirculate_failed___audio_buffer_address_not_mod_4
mov ecx, ebx
mov byte [esp + 0x13], 0
call edx
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
lea eax, [esp + 0x18]
push eax
mov eax, dword [ebx + 0xf0]
mov esi, edx
push 0xa0
mov ecx, 0x28
lea edi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x24]
push ecx
push 0x268
lea edx, [esp + 0xfc]
push edx
push 0x2f0003
push eax
jmp 0x811b32
push 0xd0
lea ecx, [esp + 0x1c]
push 0
push ecx
call fcn.0083d630
mov edx, dword [ebx + 0xf8]
mov eax, dword [ebx + 0xfc]
mov esi, dword [edi + 0x28]
mov ecx, dword [ebx + 0x100]
mov dword [esp + 0x24], edx
mov edx, dword [ebx + 0x104]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 4]
add esp, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x2c], 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], 0xe
mov dword [esp + 0x38], 0
test esi, esi
je 0x811ebb
push 0
mov ecx, 9
lea edi, [esp + 0xc4]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [ebx + 0xf0]
push 0xd0
lea edx, [esp + 0x24]
push edx
push 0xd0
mov eax, edx
push eax
push 0x2f0003
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne case.default.0x811682
mov byte [esp + 0xf], 0
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4