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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x204
and dword [ebp - 4], 0
and word [ebp - 8], 0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 2
lea eax, [ebp - 8]
push eax
push 0xe9
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
xor eax, eax
cmp word [ebp - 8], 0x31
push 0x38
sete al
pop ecx
lea edi, [ebp - 0x104]
mov dword [0x100fe28], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, 0x1002e54
xor edi, edi
push eax
inc edi
push 0xffffffffffffffff
mov dword [ebp - 0x104], esi
mov dword [ebp - 0xfc], edi
mov dword [0x100f5a0], eax
call dword [sym.imp.USER32.dll_SetWindowsHookW]
mov ebx, dword [ebp + 0x10]
xor esi, esi
cmp byte [ebx], 0
mov dword [0x100f5a4], eax
je 0x1004355
movsx eax, byte [esi + ebx]
sub eax, 0x2d
je 0x100421e
dec eax
dec eax
jne 0x100434a
inc esi
mov al, byte [esi + ebx]
test al, al
je 0x100434b
movsx eax, al
cmp eax, 0x64
jg 0x1004317
je 0x100426d
sub eax, 0x44
je 0x100426d
sub eax, 0xe
jmp 0x100431a
cmp dword [0x100f02c], edi
movsx eax, al
jle 0x100425c
push 8
push eax
call fcn.01008e43
pop ecx
pop ecx
jmp 0x1004269
mov ecx, dword [0x100f024]
movzx eax, byte [ecx + eax*2]
and eax, 8
test eax, eax
je 0x1004275
inc esi
mov al, byte [esi + ebx]
test al, al
jne 0x1004245
mov al, byte [esi + ebx]
test al, al
je 0x100434b
xor edi, edi
cmp dword [0x100f02c], 1
movsx eax, al
jle 0x100429d
push 0x103
push eax
call fcn.01008e43
pop ecx
pop ecx
jmp 0x10042ac
mov ecx, dword [0x100f024]
movzx eax, word [ecx + eax*2]
and eax, 0x103
test eax, eax
jne 0x10042ed
cmp dword [0x100f02c], 1
movsx eax, byte [esi + ebx]
jle 0x10042c9
push 8
push eax
call fcn.01008e43
pop ecx
pop ecx
jmp 0x10042d6
mov ecx, dword [0x100f024]
movzx eax, byte [ecx + eax*2]
and eax, 8
test eax, eax
jne 0x10042ed
mov al, byte [esi + ebx]
inc esi
mov byte [ebp + edi - 0x204], al
mov al, byte [esi + ebx]
inc edi
test al, al
jne 0x1004282
and byte [ebp + edi - 0x204], 0
push reloc.USER32.dll_SetFocus
lea eax, [ebp - 0x204]
push 0
push eax
call fcn.01008e2c
xor edi, edi
add esp, 0xc
mov dword [ebp + 0x10], eax
mov dword [ebp - 4], 1
inc edi
jmp 0x100434b
sub eax, 0x72
je 0x1004344
dec eax
je 0x100433b
dec eax
je 0x1004332
sub eax, 4
jne 0x100434a
or word [ebp - 0xe8], 0x1002
jmp 0x100434b
or dword [ebp - 0xe8], 2
jmp 0x100434a
or dword [ebp - 0xe8], 0x20
jmp 0x100434a
mov dword [0x100f5b4], edi
inc esi
cmp byte [esi + ebx], 0
jne 0x100420d
test byte [ebp - 0xe8], 0x22
jne 0x100436b
push edi
lea eax, [ebp - 0xe8]
push eax
call fcn.01008742
xor esi, esi
test byte [ebp - 0xe8], 2
je 0x10043a5
push esi
push 0x1001380
call dword [sym.imp.USER32.dll_FindWindowW]
cmp eax, esi
je 0x10043a5
mov ecx, dword [ebp - 0xe8]
push esi
and ecx, 0x1000
push ecx
push 0x806a
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x100455f
test byte [ebp - 0xe7], 0x10
jne 0x100455f
cmp dword [ebp - 4], esi
je 0x10043dc
cmp dword [0x100f5b4], esi
je 0x10043c7
call dword [sym.imp.WINMM.dll_waveInGetNumDevs]
jmp 0x10043cd
call dword [sym.imp.WINMM.dll_waveOutGetNumDevs]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
jb 0x10043d7
mov dword [ebp - 4], esi
cmp dword [ebp - 4], esi
jne 0x10043f3
push dword [0x100f5b4]
lea eax, [ebp - 0xf4]
push eax
call fcn.010086de
mov dword [ebp + 0x10], eax
jmp 0x10043f9
mov dword [ebp - 0xf4], ecx
cmp dword [0x100f5b4], esi
lea eax, [ebp - 0xec]
push eax
push dword [ebp - 0xf4]
je 0x1004415
call fcn.01002dd3
jmp 0x100441a
call fcn.010036d9
test eax, eax
jl 0x100455f
test byte [ebp - 0xe8], 2
je 0x1004443
cmp dword [ebp + 0x10], esi
jne 0x100455f
or byte [ebp - 0xe7], 1
mov dword [ebp - 0x58], esi
jmp 0x10044cf
call fcn.01005f19
test eax, eax
jne 0x100445f
push 0xe3
push dword [ebp + 8]
push esi
call fcn.010085e2
jmp 0x100455f
push dword [ebp + 8]
call fcn.01005de9
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
mov ebx, 0x104
push ebx
push 0x100fc20
push 0xe4
push dword [ebp + 8]
call esi
test eax, eax
mov edi, 0x100
jne 0x1004491
or dword [ebp - 0xe8], edi
push ebx
push 0x100fa00
push 0xe5
push dword [ebp + 8]
call esi
test eax, eax
jne 0x10044ab
or dword [ebp - 0xe8], edi
mov eax, dword [ebp + 0x14]
cmp eax, 3
mov dword [ebp - 0x58], 1
je 0x10044bd
mov dword [ebp - 0x58], eax
test byte [ebp - 0xe8], 0x20
jne 0x10044cd
or byte [ebp - 0xe7], 2
xor esi, esi
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x191
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov ebx, eax
lea eax, [ebp - 0x104]
push eax
call fcn.0100411e
cmp eax, esi
mov ecx, dword [ebp - 0x100]
mov dword [0x100f5c4], ecx
je 0x100455f
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
jmp 0x1004552
cmp dword [ebp - 0x100], esi
je 0x100453e
cmp ebx, esi
je 0x100452a
lea eax, [ebp - 0x24]
push eax
push ebx
push dword [ebp - 0x100]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x1004552
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x100]
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x1004552
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push esi
push esi
lea eax, [ebp - 0x24]
push esi
push eax
call edi
test eax, eax
jne 0x1004509
cmp dword [0x100f5a4], esi
pop edi
pop esi
pop ebx
je 0x1004578
push dword [0x100f5a0]
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_UnhookWindowsHook]
xor eax, eax
leave
ret 0x10