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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x124
mov eax, dword [0x1009de80]
xor eax, esp
mov dword [esp + 0x120], eax
cmp byte [0x1009fab0], 0
push ebx
push esi
push edi
jne 0x100016d8
xor ebx, ebx
mov byte [0x1009fab0], 1
push ebx
push ebx
push ebx
push 4
push 1
call sym.project.dll_caerDeviceOpen
add esp, 0x14
mov dword [esp + 0x70], eax
push 1
push 1
push 0xfffffffffffffffe
push eax
call sym.project.dll_caerDeviceConfigSet
add esp, 0x10
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
push dword [esp + 0x70]
call sym.project.dll_caerDeviceDataGet
pop ecx
test eax, eax
jne 0x10001319
lea eax, [esp + 0x70]
push eax
call sym.project.dll_caerDeviceClose
pop ecx
lea ecx, [esp + 0x4c]
call fcn.100016fd
xor eax, eax
lea edi, [esp + 0x28]
stosd dword es:[edi], eax
push ecx
push 0x1000
lea ecx, [esp + 0x30]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], 7
mov word [esp + 0x30], ax
call fcn.10001769
push ebx
call fcn.10030040
mov edi, eax
lea eax, [esp + 0xf8]
push eax
push edi
call fcn.10030860
push edi
call fcn.10038a70
lea ecx, [esp + 0xf8]
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000138f
sub ecx, edx
lea eax, [esp + 0xf8]
push ecx
push eax
push esi
call fcn.10039060
push 0x80
lea eax, [esp + 0x7c]
push ebx
push eax
call fcn.10051b60
add esp, 0xc
mov dword [esp + 0xac], 3
lea eax, [esp + 0x70]
mov dword [esp + 0xec], 0xfe
mov dword [esp + 0x80], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xc0], eax
push 0x41
pop eax
mov word [esp + 0xf8], ax
lea eax, [esp + 0x78]
push eax
push esi
mov dword [esp + 0xe0], 0x32
mov dword [esp + 0x78], 1
call fcn.10037d20
push esi
call fcn.100384b0
push esi
call fcn.10038400
push edi
call fcn.100306d0
cmp dword [esp + 0x3c], 7
lea eax, [esp + 0x28]
push 0x1000
cmova eax, dword [esp + 0x2c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ebx
push ebx
push 0x100909f4
call fcn.1002e130
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100014b3
push ebx
push 2
mov ebx, str.32_bit_float_mono_audio
push ebx
push 0x10090a10
push edi
call fcn.1002e1c0
add esp, 0x14
mov esi, eax
xor eax, eax
push eax
push 2
push ebx
push 0x10090a14
push edi
call fcn.1002e1c0
add esp, 0x14
mov dword [esp + 0x74], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x70], esi
push eax
push 0x10001152
push edi
call fcn.1002e1f0
add esp, 0xc
push edi
call fcn.1002e0d0
pop ecx
push edi
call fcn.1002e160
pop ecx
push edi
call fcn.1002e100
pop ecx
xor ebx, ebx
cmp dword [esp + 0x3c], 7
lea edx, [esp + 0x28]
mov esi, dword [esp + 0x38]
cmova edx, dword [esp + 0x28]
test esi, esi
je 0x100014ee
lea eax, [esi - 1]
or ecx, 0xffffffff
cmp eax, ecx
push 0x5c
cmovb ecx, eax
pop eax
lea ecx, [edx + ecx*2]
jmp 0x100014e3
cmp ecx, edx
je 0x100014ee
sub ecx, 2
cmp word [ecx], ax
jne 0x100014dc
sub ecx, edx
sar ecx, 1
jmp 0x100014f1
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x10]
stosd dword es:[edi], eax
cmp esi, ecx
cmovb ecx, esi
cmp dword [esp + 0x3c], 7
push ecx
stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x2c]
cmova eax, dword [esp + 0x2c]
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.10001977
lea ecx, [esp + 0x28]
call fcn.1000173e
push 6
pop ecx
lea esi, [esp + 0x10]
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x3c], 7
lea eax, [esp + 0x28]
cmova eax, dword [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push str.fppdata9_x64.dll
call ebx
xor esi, esi
mov eax, bind
sub eax, dword [esp + 0x38]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
cmp eax, 1
jb 0x100016ed
cmp dword [esp + 0x3c], 7
lea eax, [esp + 0x28]
push 1
cmova eax, dword [esp + 0x2c]
push ecx
push dword [esp + 0x40]
push eax
push ecx
push dword [esp + 0x84]
lea ecx, [esp + 0x28]
call fcn.10001afe
push ecx
lea edx, [esp + 0x14]
lea ecx, [esp + 0x5c]
call fcn.10001814
pop ecx
lea ecx, [esp + 0x10]
call fcn.1000173e
cmp dword [esp + 0x6c], 7
lea edx, [esp + 0x58]
lea edi, [esp + 0x10]
cmova edx, dword [esp + 0x58]
xor eax, eax
stosd dword es:[edi], eax
mov ecx, edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [esp + 0x20], esi
xor edi, edi
mov dword [esp + 0x24], esi
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x100015df
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x18]
call fcn.10001977
push ecx
push ecx
lea edx, [esp + 0x18]
lea ecx, [esp + 0x54]
call fcn.100011fb
mov esi, eax
lea eax, [esp + 0x48]
pop ecx
pop ecx
cmp eax, esi
je 0x1000163b
mov ecx, eax
call fcn.1000171f
mov eax, dword [esi + 4]
mov edi, dword [esi]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x40], edi
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
jmp 0x1000163f
mov edi, dword [esp + 0x40]
lea ecx, [esp + 0x4c]
call fcn.1000171f
mov edx, dword [esp + 0x24]
cmp edx, 7
jbe 0x10001661
mov ecx, dword [esp + 0x10]
lea edx, [edx*2 + 2]
call fcn.10001a8b
push str.wpdecodejp.dll
call ebx
push 0x2489
xor ebx, ebx
push ebx
lea esi, [eax + 0x1000]
push esi
call fcn.10051b60
add esp, 0xc
movzx eax, bl
lea edx, [ebx + edi]
imul eax, eax, 0x28
mov cl, 0x8c
sub cl, al
mov eax, 0x2489
add byte [edx], cl
inc ebx
cmp ebx, eax
jb 0x1000167f
push eax
push edi
push esi
call fcn.10051cc0
add esp, 0xc
xor eax, eax
push eax
push esi
call dword [sym.imp.USER32.dll_EnumWindows]
lea ecx, [esp + 0x58]
call fcn.1000173e
lea ecx, [esp + 0x40]
call fcn.1000171f
mov edx, dword [esp + 0x3c]
cmp edx, 7
jbe 0x100016d8
mov ecx, dword [esp + 0x28]
lea edx, [edx*2 + 2]
call fcn.10001a8b
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100503ce
mov esp, ebp
pop ebp
ret
call fcn.10001147
int3