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

Disassembly:
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [esp + 0x1c]
test edi, edi
mov esi, eax
je 0x422b80
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x422b80
cmp dword [esp + 0x24], 0
je 0x422b80
test esi, esi
je 0x422b80
movzx eax, byte [esi + 0x30]
and eax, 0x7f
mov dword [esp + 0x14], eax
jne 0x422b8c
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0xc
ret
push ebp
mov eax, 0x48b894
mov ecx, esi
call fcn.004229c0
test eax, eax
jne 0x422d5e
mov eax, 0x48b884
mov ecx, esi
call fcn.004229c0
test eax, eax
je 0x422e36
push 0
push 0
push str.Audio
push 0x3e8
push 0
push 2
push ebx
push edi
call fcn.004129f0
mov ebp, eax
add esp, 0x20
test ebp, ebp
je 0x422d33
push ebp
call fcn.0041a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x422d33
push 0
push ebp
call fcn.004171d0
add esp, 8
test eax, eax
je 0x422d33
mov byte [eax], 0
mov byte [eax + 1], 0
mov cl, byte [esi + 0x61]
mov byte [eax + 2], cl
mov dl, byte [esi + 0x60]
mov byte [eax + 3], dl
mov word [eax + 6], 2
mov cx, word [esi + 0x62]
push 0x1000
mov word [eax + 0x10], cx
mov dx, word [esi + 0x6e]
push 0
mov word [eax + 0x12], dx
mov ecx, dword [esi + 0x64]
push ebp
push edi
mov dword [eax + 0x18], ecx
call fcn.00417790
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
jne 0x422d3b
push ebp
call fcn.0041f3d0
mov edi, eax
add esp, 4
test edi, edi
je 0x422d33
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x18], edx
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
push 0x989680
push ecx
push edx
call fcn.00415080
mov ecx, dword [0x48b8e8]
push ecx
mov ecx, dword [0x48b8e4]
push ecx
push edx
push eax
call fcn.00414e80
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
mov eax, dword [esi + 0x74]
add esp, 0x1c
test eax, eax
je 0x422cd1
mov edx, dword [esi + 0x78]
push edx
push eax
mov eax, dword [esp + 0x28]
push 0
push ebp
push eax
call fcn.00416230
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne 0x422d3b
push 0
push ebp
call fcn.00415d50
add esp, 8
test eax, eax
je 0x422d33
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x4c]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
test byte [esi + 0x40], 1
jne 0x422e2c
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x28]
push 0x2710
push ecx
push edx
call fcn.00415080
mov ecx, dword [esi + 0x3c]
push ecx
mov ecx, dword [esi + 0x38]
push ecx
push edx
push eax
call fcn.00414e80
mov dword [edi + 0x20], edx
mov edx, dword [esp + 0x40]
push edx
mov dword [edi + 0x1c], eax
call fcn.004203a0
add esp, 0x20
test eax, eax
jne 0x422e0e
mov dword [esp + 0x10], 0xa
test ebp, ebp
je 0x422d52
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push ebp
push eax
push ecx
call fcn.00411980
add esp, 0xc
mov eax, dword [esp + 0x10]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
push 0
push 0
push str.Video
push 0x3e8
push 0
push 1
push ebx
push edi
call fcn.004129f0
mov ebp, eax
add esp, 0x20
test ebp, ebp
je 0x422d33
movzx edx, word [esi + 0x46]
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x3c]
push ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
call fcn.0041a4c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x422d33
mov ecx, dword [esp + 0x10]
mov eax, edi
shl eax, 0x10
shl ecx, 0x10
push 0
push ebp
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], ecx
call fcn.00416700
add esp, 8
test eax, eax
je 0x422d33
movzx edx, byte [esi + 0x48]
mov byte [eax], dl
movzx ecx, byte [esi + 0x49]
mov byte [eax + 1], cl
movzx edx, byte [esi + 0x4a]
mov byte [eax + 2], dl
movzx ecx, byte [esi + 0x4b]
mov dx, word [esp + 0x10]
push 0x1000
push 0
mov word [eax + 0x1a], dx
mov edx, dword [esp + 0x28]
mov byte [eax + 3], cl
mov cx, word [esp + 0x1c]
push ebp
push edx
mov word [eax + 0x18], di
mov word [eax + 0x4a], cx
call fcn.00416ea0
jmp 0x422c3e
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
push edx
mov edx, dword [edi + 0x1c]
push eax
push ecx
push edx
call fcn.0041f2d0
add esp, 0x10
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], edx
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0xc
ret
pop ebp
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0xc
ret