Function at 0x4077f0
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
push edi
mov dword [0x45f4e4], 0x11
call fcn.00401db0
mov eax, dword [0x46182c]
push eax
call fcn.00401f20
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add esp, 4
mov dword [0x45f4e4], 0x12
push str.kernel32.dll
call esi
push 1
push str.kernel32.dll
mov dword [0x457cd8], eax
call fcn.00438910
add esp, 8
mov dword [0x457cdc], eax
push str.wininet.dll
call esi
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x457cf4], eax
test eax, eax
jne 0x407862
push str.wininet.dll
call edi
mov dword [0x457cf4], eax
push 1
push str.wininet.dll
call fcn.00438910
add esp, 8
mov dword [0x457cf8], eax
push str.winmm.dll
call esi
test eax, eax
mov dword [0x457d10], eax
jne 0x407892
push str.winmm.dll
call edi
mov dword [0x457d10], eax
push 1
push str.winmm.dll
call fcn.00438910
add esp, 8
mov dword [0x457d14], eax
push str.dsound.dll
call esi
test eax, eax
mov dword [0x457d2c], eax
jne 0x4078c2
push str.dsound.dll
call edi
mov dword [0x457d2c], eax
push 1
push str.dsound.dll
call fcn.00438910
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x457d30], eax
mov eax, dword [0x457cd8]
add esp, 8
test eax, eax
mov edi, 2
mov bl, 0xe9
je 0x407a87
push str.VirtualProtectEx
push eax
mov dword [0x45f4e4], 0x14
call esi
mov ecx, dword [0x457cd8]
push str.WriteProcessMemory
push ecx
mov dword [0x457adc], eax
mov dword [0x45f4e4], 0x15
call esi
mov dword [0x457b20], eax
mov eax, dword [0x457cdc]
test eax, eax
mov dword [0x45f4e4], 0x16
mov dword [0x457ae4], edi
je 0x407951
push 1
push 0xa
push 0
push 0
call fcn.00407e60
add esp, 0x10
test eax, eax
je 0x4079d0
mov edx, dword [0x457adc]
push 1
push 0
push 0
mov eax, dword [edx]
mov dword [0x457ae8], eax
mov eax, dword [0x457ae4]
mov ecx, dword [edx + 4]
mov dword [0x457aec], ecx
mov dx, word [edx + 8]
mov word [0x457af0], dx
mov byte [eax + 0x457ae8], bl
mov ecx, dword [0x457adc]
mov edx, dword [0x457ae4]
sub ecx, 0x457ae8
mov eax, 0x407060
sub ecx, 5
mov dword [edx + 0x457ae9], ecx
mov ecx, dword [0x457adc]
sub eax, ecx
mov byte [0x457af2], bl
mov dword [0x457af3], eax
mov byte [0x457af7], 0xeb
mov byte [0x457af8], 0xf9
call fcn.00406db0
add esp, 0xc
test eax, eax
jne 0x4079d6
pop edi
pop esi
xor eax, eax
pop ebx
ret
mov eax, dword [0x457cdc]
mov dword [0x45f4e4], 0x17
test eax, eax
mov dword [0x457b28], edi
je 0x407a03
push 1
push 0xa
push 1
push 0
call fcn.00407e60
add esp, 0x10
test eax, eax
je 0x407a81
mov ecx, dword [0x457b20]
push 1
push 1
push 0
mov edx, dword [ecx]
mov dword [0x457b2c], edx
mov edx, dword [0x457b28]
mov eax, dword [ecx + 4]
mov dword [0x457b30], eax
mov cx, word [ecx + 8]
mov word [0x457b34], cx
mov byte [edx + 0x457b2c], bl
mov eax, dword [0x457b20]
mov ecx, dword [0x457b28]
sub eax, 0x457b2c
mov edx, 0x407100
sub eax, 5
mov dword [ecx + 0x457b2d], eax
mov eax, dword [0x457b20]
sub edx, eax
mov byte [0x457b36], bl
mov dword [0x457b37], edx
mov byte [0x457b3b], 0xeb
mov byte [0x457b3c], 0xf9
call fcn.00406db0
add esp, 0xc
test eax, eax
jne 0x407a87
pop edi
pop esi
xor eax, eax
pop ebx
ret
mov eax, dword [0x457cf4]
test eax, eax
je 0x407b76
push str.CreateUrlCacheEntryA
push eax
mov dword [0x45f4e4], 0x1a
call esi
mov dword [0x457b64], eax
mov eax, dword [0x457cf4]
push str.CreateUrlCacheEntryW
push eax
mov dword [0x45f4e4], 0x1b
call esi
mov dword [0x457ba8], eax
mov eax, dword [0x457cf8]
test eax, eax
mov dword [0x45f4e4], 0x1c
mov dword [0x457b6c], edi
je 0x407af3
push 1
push 0xa
push edi
push 1
call fcn.00407e60
add esp, 0x10
test eax, eax
je 0x407b70
mov ecx, dword [0x457b64]
push 1
push edi
push 1
mov edx, dword [ecx]
mov dword [0x457b70], edx
mov edx, dword [0x457b6c]
mov eax, dword [ecx + 4]
mov dword [0x457b74], eax
mov cx, word [ecx + 8]
mov word [0x457b78], cx
mov byte [edx + 0x457b70], bl
mov eax, dword [0x457b64]
mov ecx, dword [0x457b6c]
sub eax, 0x457b70
mov edx, 0x4071a0
sub eax, 5
mov dword [ecx + 0x457b71], eax
mov eax, dword [0x457b64]
sub edx, eax
mov byte [0x457b7a], bl
mov dword [0x457b7b], edx
mov byte [0x457b7f], 0xeb
mov byte [0x457b80], 0xf9
call fcn.00406db0
add esp, 0xc
test eax, eax
jne 0x407b76
pop edi
pop esi
xor eax, eax
pop ebx
ret
mov eax, dword [0x457d10]
test eax, eax
je 0x407d14
push str.waveOutWrite
push eax
mov dword [0x45f4e4], 0x1f
call esi
mov dword [0x457c30], eax
mov eax, dword [0x457d10]
push str.midiStreamOut
push eax
mov dword [0x45f4e4], 0x20
call esi
mov dword [0x457c74], eax
mov eax, dword [0x457d14]
test eax, eax
mov dword [0x45f4e4], 0x21
mov dword [0x457c38], edi
je 0x407be2
push 1
push 0xa
push 5
push edi
call fcn.00407e60
add esp, 0x10
test eax, eax
je 0x407c5f
mov ecx, dword [0x457c30]
push 1
push 5
push edi
mov edx, dword [ecx]
mov dword [0x457c3c], edx
mov edx, dword [0x457c38]
mov eax, dword [ecx + 4]
mov dword [0x457c40], eax
mov cx, word [ecx + 8]
mov word [0x457c44], cx
mov byte [edx + 0x457c3c], bl
mov eax, dword [0x457c30]
mov ecx, dword [0x457c38]
sub eax, 0x457c3c
mov edx, 0x407230
sub eax, 5
mov dword [ecx + 0x457c3d], eax
mov eax, dword [0x457c30]
sub edx, eax
mov byte [0x457c46], bl
mov dword [0x457c47], edx
mov byte [0x457c4b], 0xeb
mov byte [0x457c4c], 0xf9
call fcn.00406db0
add esp, 0xc
test eax, eax
jne 0x407c65
pop edi
pop esi
xor eax, eax
pop ebx
ret
mov eax, dword [0x457d14]
mov dword [0x45f4e4], 0x22
test eax, eax
mov dword [0x457c7c], edi
je 0x407c91
push 1
push 0xa
push 6
push edi
call fcn.00407e60
add esp, 0x10
test eax, eax
je 0x407d0e
mov eax, dword [0x457c74]
push 1
push 6
push edi
mov ecx, dword [eax]
mov dword [0x457c80], ecx
mov ecx, dword [0x457c7c]
mov edx, dword [eax + 4]
mov dword [0x457c84], edx
mov ax, word [eax + 8]
mov word [0x457c88], ax
mov byte [ecx + 0x457c80], bl
mov edx, dword [0x457c74]
mov eax, dword [0x457c7c]
sub edx, 0x457c80
mov ecx, 0x407240
sub edx, 5
mov dword [eax + 0x457c81], edx
mov eax, dword [0x457c74]
sub ecx, eax
mov byte [0x457c8a], bl
mov dword [0x457c8b], ecx
mov byte [0x457c8f], 0xeb
mov byte [0x457c90], 0xf9
call fcn.00406db0
add esp, 0xc
test eax, eax
jne 0x407d14
pop edi
pop esi
xor eax, eax
pop ebx
ret
mov eax, dword [0x457d2c]
test eax, eax
je 0x407deb
push str.DirectSoundCreate
push eax
mov dword [0x45f4e4], 0x25
call esi
mov ecx, dword [0x457d30]
mov dword [0x457cb8], eax
test ecx, ecx
mov dword [0x45f4e4], 0x26
mov dword [0x457cc0], edi
je 0x407d6b
push 1
push 0xa
push 7
push 3
call fcn.00407e60
add esp, 0x10
test eax, eax
je 0x407de5
mov eax, dword [0x457cb8]
mov edx, dword [eax]
push 1
mov dword [0x457cc4], edx
mov ecx, dword [eax + 4]
mov dword [0x457cc8], ecx
mov dx, word [eax + 8]
mov eax, dword [0x457cc0]
mov word [0x457ccc], dx
push 7
push 3
mov byte [eax + 0x457cc4], bl
mov ecx, dword [0x457cb8]
mov edx, dword [0x457cc0]
sub ecx, 0x457cc4
sub ecx, 5
mov eax, 0x407250
mov dword [edx + 0x457cc5], ecx
mov ecx, dword [0x457cb8]
sub eax, ecx
mov byte [0x457cce], bl
mov dword [0x457ccf], eax
mov byte [0x457cd3], 0xeb
mov byte [0x457cd4], 0xf9
call fcn.00406db0
add esp, 0xc
test eax, eax
jne 0x407deb
pop edi
pop esi
xor eax, eax
pop ebx
ret
mov eax, dword [0x457cdc]
mov dword [0x45f4e4], 0x28
test eax, eax
je 0x407e07
push eax
call fcn.00438b60
add esp, 4
mov eax, dword [0x457d14]
mov dword [0x45f4e4], 0x29
test eax, eax
je 0x407e23
push eax
call fcn.00438b60
add esp, 4
mov eax, dword [0x457d30]
mov dword [0x45f4e4], 0x2a
test eax, eax
je 0x407e3f
push eax
call fcn.00438b60
add esp, 4
pop edi
pop esi
mov dword [0x45f4e4], 0x2b
mov eax, 1
pop ebx
ret