Function at 0x1000478a
Capabilities:
Enumerate gui resources
Resolve function by parsing pe exports
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2c8
mov eax, dword [0x102e5cc0]
xor eax, esp
mov dword [esp + 0x2c4], eax
cmp byte [0x1033bdb8], 0
push esi
push edi
jne 0x1000518a
fld qword [0x102d2bb8]
lea ecx, [esp + 0x44]
sub esp, 0x10
mov byte [0x1033bdb8], 1
xor esi, esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
fstp qword [esp + 8]
fld qword [0x102d2bd0]
fstp qword [esp]
mov dword [esp + 0x5c], esi
call fcn.1000451f
fld qword [0x102d2be0]
lea eax, [esp + 0x48]
add esp, 0x10
push esi
push esi
push esi
push eax
push 1
sub esp, 0x10
fstp qword [esp + 8]
fld qword [0x102d2bd8]
fstp qword [esp]
call fcn.100becf0
add esp, 0x24
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], esi
mov edi, eax
mov dword [esp + 0x28], esi
push 0x17800
call fcn.10007979
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x18]
sub ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x44]
push edx
sar ecx, 2
push ecx
push dword [esp + 0x28]
lea ecx, [esp + 0x18]
sar eax, 2
push ecx
push eax
push dword [esp + 0x58]
push edi
call fcn.100bf5a0
add esp, 0x1c
lea eax, [esp + 0xb]
lea ecx, [esp + 0x20]
push eax
push dword [esp + 0x1c]
call fcn.10007920
mov dword [esp + 0x8c], 1
mov dword [esp + 0x88], 0xbb80
mov dword [esp + 0x90], 0x10002
test edi, edi
jne 0x100048d3
lea eax, [esp + 0x80]
push eax
push 0x20
push 0x102d2770
call fcn.10067ac0
mov ecx, dword [esp + 0x30]
add esp, 0xc
sub ecx, dword [esp + 0x20]
mov esi, eax
sar ecx, 2
push edi
push ecx
push dword [esp + 0x28]
push esi
call fcn.10067cf0
push esi
call fcn.10067270
add esp, 0x14
xor esi, esi
push edi
call fcn.100bf200
pop ecx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x10004900
mov eax, dword [esp + 0x28]
sub eax, ecx
and eax, 0xfffffffc
push eax
push ecx
call fcn.100082f3
pop ecx
pop ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x1000491a
mov eax, dword [esp + 0x4c]
sub eax, ecx
and eax, 0xfffffffc
push eax
push ecx
call fcn.100082f3
pop ecx
pop ecx
xor eax, eax
lea edi, [esp + 0x5c]
stosd dword es:[edi], eax
lea ecx, [esp + 0x5c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
xor edi, edi
mov dword [esp + 0x70], 7
push edi
push 0x1000
mov dword [esp + 0x74], edi
mov word [esp + 0x64], ax
call fcn.100065ff
lea eax, [esp + 0x80]
mov dword [esp + 0x18], edi
push eax
push edi
lea ecx, [esp + 0x20]
mov dword [esp + 0xac], edi
call sym.project.dll_public:_void___thiscall_RtAudio::constructor_enum_RtAudio::Api__class_std::function_void____cdecl___enum_RtAudioErrorType__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const_____
lea ecx, [esp + 0x80]
call fcn.10006262
push str.RtMidi_Input_Client
lea ecx, [esp + 0x84]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
call fcn.10005a79
push 0x64
lea eax, [esp + 0x84]
push eax
push edi
lea ecx, [esp + 0x18]
call sym.project.dll_public:_void___thiscall_RtMidiIn::constructor_enum_RtMidi::Api__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int_
lea ecx, [esp + 0x80]
call fcn.100066b9
mov ecx, dword [esp + 0x18]
call sym.project.dll_public:_unsigned_int___thiscall_RtApi::getDeviceCount_void_
mov ecx, dword [esp + 0x18]
mov esi, eax
call sym.project.dll_public:_unsigned_int___thiscall_RtApi::getDeviceCount_void_
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
call dword [edx + 0xc]
fld qword [0x102d2bd0]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], edi
mov dword [esp + 0x38], 0x100
fstp qword [esp + 0x20]
fld qword [0x102d2bd8]
fstp qword [esp + 0x28]
cmp esi, 0x40
jle 0x10004a93
push edi
lea eax, [esp + 0x24]
push eax
push 0x100045e3
lea eax, [esp + 0x44]
push eax
push 0xac44
push 0x20
push edi
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x38]
call sym.project.dll_public:_enum_RtAudioErrorType___thiscall_RtAudio::openStream_struct_RtAudio::StreamParameters___struct_RtAudio::StreamParameters___unsigned_long_int__unsigned_int__unsigned_int___int____cdecl___void___void___unsigned_int__double__unsigned_int__void____void___struct_RtAudio::StreamOptions__
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
call dword [eax + 0x14]
push str.RtMidi_Input
lea ecx, [esp + 0x84]
call fcn.10005a79
mov ecx, dword [esp + 0x10]
push eax
push edi
mov edx, dword [ecx]
call dword [edx + 8]
lea ecx, [esp + 0x80]
call fcn.100066b9
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
push 0x10004595
call sym.project.dll_public:_void___thiscall_MidiInApi::setCallback_void____cdecl___double__class_std::vector_unsigned_char__class_std::allocator_unsigned_char_____void____void__
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x108], 0xffffffce
je 0x10004a8a
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
lea ecx, [esp + 0xc]
call sym.project.dll_protected_virtual:_void___thiscall_RtMidi::destructor_void_
lea ecx, [esp + 0x18]
call sym.project.dll_public:_void___thiscall_RtAudio::destructor_void_
cmp dword [esp + 0x70], 7
lea eax, [esp + 0x5c]
push 0x1000
cmova eax, dword [esp + 0x60]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x10
push 0x60
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call fcn.1010d0b2
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10004aee
push 0x60
push edi
push esi
call fcn.1010f560
add esp, 0xc
mov ecx, esi
call fcn.100051a4
jmp 0x10004af0
mov eax, edi
push eax
lea ecx, [esp + 0x1c]
call fcn.100073ec
push 0x102d2798
lea ecx, [esp + 0x84]
call fcn.10005a79
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x80]
call fcn.10007447
lea ecx, [esp + 0x80]
call fcn.100066b9
push 0xe0
lea eax, [esp + 0x1e4]
push edi
push eax
call fcn.1010f560
add esp, 0xc
lea ecx, [esp + 0x1e0]
call fcn.10005424
lea eax, [esp + 0x18]
mov dword [esp + 0xc], edi
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edi
call fcn.100080f6
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x1e4]
call fcn.100156f0
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x10004b7d
call fcn.10003c24
fld dword [0x102d2b9c]
lea ecx, [esp + 0x1e0]
sub esp, 0xc
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
call fcn.100053b9
push 0x10
push 0x60
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
call fcn.1010d0b2
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10004bcb
push 0x60
push edi
push esi
call fcn.1010f560
add esp, 0xc
mov ecx, esi
call fcn.100051a4
jmp 0x10004bcd
mov eax, edi
push eax
lea ecx, [esp + 0x3c]
call fcn.100073ec
push dword [esp + 0x38]
lea ecx, [esp + 0x1e4]
call fcn.10005523
push 0x58
lea eax, [esp + 0xac]
push edi
push eax
call fcn.1010f560
add esp, 0xc
lea ecx, [esp + 0xa8]
push edi
call fcn.10005366
lea eax, [esp + 0x38]
mov dword [esp + 0xc], edi
push eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], edi
call fcn.100080f6
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xac]
call fcn.100156f0
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x10004c3b
call fcn.10003c24
push 0x10
fld1
push 0x60
fstp qword [esp + 0x100]
mov dword [esp + 0xfc], 0x32
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
call fcn.1010d0b2
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10004c7d
push 0x60
push edi
push esi
call fcn.1010f560
add esp, 0xc
mov ecx, esi
call fcn.100051a4
jmp 0x10004c7f
mov eax, edi
push eax
lea ecx, [esp + 0x10]
call fcn.100073ec
push dword [esp + 0xc]
lea ecx, [esp + 0xac]
call fcn.10005523
push 0xe0
lea eax, [esp + 0x104]
push edi
push eax
call fcn.1010f560
add esp, 0xc
lea ecx, [esp + 0x100]
call fcn.1000530a
lea eax, [esp + 0xc]
mov dword [esp + 0x20], edi
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x28], edi
call fcn.100080f6
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x104]
call fcn.100052cb
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x10004cef
call fcn.10003c24
push 0x38
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
call fcn.1010d082
pop ecx
push 0x38
mov esi, eax
push edi
push esi
call fcn.1010f560
add esp, 0xc
mov ecx, esi
push 1
call fcn.1003bd60
push eax
lea ecx, [esp + 0x24]
call fcn.100077d4
mov esi, dword [esp + 0x24]
test esi, esi
je 0x10004d2c
lock inc dword [esi + 4]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x160]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x28], esi
call fcn.10006489
test esi, esi
je 0x10004d54
mov ecx, esi
call fcn.10003c24
push 0x10
push 0x60
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.1010d0b2
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x10004d83
push 0x60
push 0
push edi
call fcn.1010f560
add esp, 0xc
mov ecx, edi
call fcn.100051a4
jmp 0x10004d85
xor eax, eax
push eax
lea ecx, [esp + 0x24]
call fcn.1000782f
fld qword [0x102d2ba0]
lea ecx, [esp + 0x100]
push dword [esp + 0x20]
fstp qword [esp + 0x174]
call fcn.100074ce
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x10004db9
call fcn.10003c24
test esi, esi
je 0x10004dc4
mov ecx, esi
call fcn.10003c24
lea ecx, [esp + 0x100]
call fcn.1000528e
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x10004ddd
call fcn.10003c24
mov ecx, dword [esp + 0xf0]
test ecx, ecx
je 0x10004ded
call fcn.10003c24
lea ecx, [esp + 0xa8]
call fcn.10005237
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x10004e06
call fcn.10003c24
lea ecx, [esp + 0x1e0]
call fcn.10005219
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10004e1f
call fcn.10003c24
cmp dword [esp + 0x70], 7
lea edx, [esp + 0x5c]
mov esi, dword [esp + 0x6c]
cmova edx, dword [esp + 0x5c]
test esi, esi
je 0x10004e5a
lea eax, [esi - 1]
or ecx, 0xffffffff
cmp eax, ecx
push 0x5c
cmovb ecx, eax
pop eax
lea ecx, [edx + ecx*2]
jmp 0x10004e4f
cmp ecx, edx
je 0x10004e5a
sub ecx, 2
cmp word [ecx], ax
jne 0x10004e48
sub ecx, edx
sar ecx, 1
jmp 0x10004e5d
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x44]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x5c]
xor edi, edi
cmp esi, ecx
mov dword [esp + 0x54], edi
cmovb ecx, esi
mov dword [esp + 0x58], edi
cmp dword [esp + 0x70], 7
push ecx
cmova eax, dword [esp + 0x60]
lea ecx, [esp + 0x48]
push eax
call fcn.10007b5b
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x60]
call fcn.1000592f
lea ecx, [esp + 0x44]
call fcn.100065b6
mov dword [esp + 0xc], edi
xor eax, eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
lea edi, [esp + 0x38]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x10]
push eax
push ecx
push 2
pop edx
lea ecx, [esp + 0x44]
call fcn.10004460
add esp, 0xc
lea ecx, [esp + 0x38]
call fcn.10004643
lea eax, [esp + 0x20]
xor edx, edx
push eax
lea eax, [esp + 0x10]
inc edx
push eax
push ecx
lea ecx, [esp + 0x50]
call fcn.10004460
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.10005652
lea ecx, [esp + 0x44]
call fcn.10006360
lea ecx, [esp + 0x38]
call fcn.10004643
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x10]
push eax
push ecx
push 3
pop edx
lea ecx, [esp + 0x50]
call fcn.10004460
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.10005652
lea ecx, [esp + 0x44]
call fcn.10006360
lea ecx, [esp + 0x38]
call fcn.10004643
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x10]
push eax
push ecx
push 4
pop edx
lea ecx, [esp + 0x50]
call fcn.10004460
add esp, 0xc
lea ecx, [esp + 0x38]
push eax
call fcn.10005652
lea ecx, [esp + 0x44]
call fcn.10006360
lea ecx, [esp + 0x38]
call fcn.10004643
lea ecx, [esp + 0x38]
call fcn.10006360
mov esi, dword [esp + 0x20]
push 0xc
pop ecx
test esi, esi
je 0x10004fe2
mov edi, dword [esp + 0x24]
cmp esi, edi
je 0x10004fbc
mov ecx, esi
call fcn.10006463
push 0xc
pop ecx
add esi, ecx
cmp esi, edi
jne 0x10004fa8
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
sub eax, esi
cdq
idiv ecx
imul eax, eax, 0xc
push eax
push esi
call fcn.100082f3
pop ecx
pop ecx
xor eax, eax
push 0xc
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
pop ecx
mov esi, dword [esp + 0xc]
test esi, esi
je 0x1000501b
mov edi, dword [esp + 0x10]
cmp esi, edi
je 0x10005006
mov ecx, esi
call fcn.10006463
push 0xc
pop ecx
add esi, ecx
cmp esi, edi
jne 0x10004ff2
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
sub eax, esi
cdq
idiv ecx
imul eax, eax, 0xc
push eax
push esi
call fcn.100082f3
pop ecx
pop ecx
cmp dword [esp + 0x70], 7
lea eax, [esp + 0x5c]
cmova eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xor edi, edi
mov eax, 0x7ffffffe
sub eax, dword [esp + 0x6c]
and dword [esp + 0x78], edi
and dword [esp + 0x7c], edi
mov dword [esp + 0x74], edi
cmp eax, 1
jb 0x1000519e
cmp dword [esp + 0x70], 7
lea eax, [esp + 0x5c]
push 1
cmova eax, dword [esp + 0x60]
push ecx
push dword [esp + 0x74]
push eax
push ecx
push dword [esp + 0x20]
lea ecx, [esp + 0x98]
call fcn.1000898a
push 0xb
push 0x102d273c
lea ecx, [esp + 0x88]
call fcn.10005891
push eax
lea ecx, [esp + 0x24]
call fcn.10005966
lea ecx, [esp + 0x80]
call fcn.100065b6
cmp dword [esp + 0x34], 7
lea eax, [esp + 0x20]
lea ecx, [esp + 0x80]
cmova eax, dword [esp + 0x20]
push eax
call fcn.100059a1
push ecx
push ecx
lea edx, [esp + 0x88]
lea ecx, [esp + 0x4c]
call fcn.100046f8
mov esi, eax
lea eax, [esp + 0x7c]
pop ecx
pop ecx
cmp eax, esi
je 0x100050fe
mov ecx, eax
call fcn.1000656b
mov eax, dword [esi + 4]
mov edi, dword [esi]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x74], edi
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
lea ecx, [esp + 0x44]
call fcn.1000656b
lea ecx, [esp + 0x80]
call fcn.100065b6
push str.xmencmp3.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x24ad
push 0
lea esi, [eax + 0x1000]
push esi
call fcn.1010f560
add esp, 0xc
xor eax, eax
mov dword [esp + 0x18], eax
lea edx, [eax + edi]
mov cl, 0xd4
movzx eax, al
imul eax, eax, 0x1a
sub cl, al
mov eax, dword [esp + 0x18]
add byte [edx], cl
inc eax
mov ecx, 0x24ad
mov dword [esp + 0x18], eax
cmp eax, ecx
jb 0x1000513a
push ecx
push edi
push esi
call fcn.1010efe0
add esp, 0xc
push 0
push esi
call dword [sym.imp.USER32.dll_EnumWindows]
lea ecx, [esp + 0x20]
call fcn.100065b6
lea ecx, [esp + 0x74]
call fcn.1000656b
lea ecx, [esp + 0x5c]
call fcn.100065b6
mov ecx, dword [esp + 0x2cc]
pop edi
pop esi
xor ecx, esp
call fcn.1010d06f
mov esp, ebp
pop ebp
ret
call fcn.10003903
int3