Function at 0x105a2f7
Capabilities:
Extract resource via kernel32 functions
Register raw input devices

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c0
mov eax, dword [0x108e1f8]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x274], edx
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], ecx
cmp byte [0x10986ac], bl
jne 0x105a36b
mov esi, dword [sym.imp.USER32.dll_ShowCursor]
push 1
call esi
push dword [ebp + 0x20]
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
push dword [ebp - 0x274]
push dword [0x1098690]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
push ebx
mov edi, eax
call esi
mov eax, edi
jmp 0x105aa2f
mov eax, dword [ebp + 0x1c]
mov dword [0x1098650], eax
mov eax, 0x105a107
cmp ecx, eax
je 0x105a38a
mov dword [0x10986a8], ecx
mov dword [ebp - 0x24c], eax
jmp 0x105a390
mov dword [0x10986a8], ebx
push 5
push edx
push dword [0x1098690]
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x248], ebx
cmp eax, ebx
je 0x105a512
push eax
push dword [0x1098690]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x270], eax
cmp eax, ebx
je 0x105a512
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
cmp edi, ebx
je 0x105a4fc
push edi
call fcn.0105804b
mov esi, eax
cmp esi, dword [0x10986f0]
jl 0x105a412
mov eax, dword [0x10986ec]
cmp eax, ebx
je 0x105a3f9
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea eax, [esi + 0x3e8]
push eax
push 0x40
mov dword [0x10986f0], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x10986ec], eax
mov eax, dword [0x10986ec]
cmp eax, ebx
je 0x105a4fc
cmp esi, dword [0x10986f0]
jge 0x105a4fc
push esi
push edi
push eax
call sub.msvcrt.dll_memcpy
xor eax, eax
push 0x3e
mov word [ebp - 0x44], ax
lea eax, [ebp - 0x42]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0x18
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [0x10986ec]
call fcn.01058129
test al, al
je 0x105a4d5
push 1
call fcn.01057ef6
push dword [0x109868c]
movzx esi, ax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
push 0x58
push edi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [ebp - 0x248], eax
fild dword [ebp - 0x248]
push edi
push dword [0x109868c]
fdivr qword [0x10125c0]
fstp qword [ebp - 0x288]
call dword [sym.imp.USER32.dll_ReleaseDC]
movzx eax, si
mov dword [ebp - 0x248], eax
fild dword [ebp - 0x248]
fmul qword [ebp - 0x288]
call sub.msvcrt.dll__ftol2
movzx eax, ax
push eax
lea eax, [ebp - 0x44]
push eax
push dword [0x10986ec]
call fcn.0105817d
push dword [ebp + 0x20]
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
push dword [0x10986ec]
push dword [0x1098690]
call dword [sym.imp.USER32.dll_CreateDialogIndirectParamW]
mov dword [ebp - 0x248], eax
push dword [ebp - 0x270]
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov esi, dword [ebp - 0x248]
cmp esi, ebx
jne 0x105a53b
push dword [ebp + 0x20]
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
push dword [ebp - 0x274]
push dword [0x1098690]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov esi, eax
mov dword [ebp - 0x248], esi
push 0xc
pop eax
mov word [ebp - 0x280], ax
xor eax, eax
inc eax
push 0xc
push eax
mov word [ebp - 0x27e], ax
lea eax, [ebp - 0x280]
push eax
mov dword [ebp - 0x27c], ebx
mov dword [ebp - 0x278], esi
call dword [sym.imp.USER32.dll_RegisterRawInputDevices]
push ebx
push dword [ebp - 0x250]
call dword [sym.imp.USER32.dll_EnableWindow]
push 5
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp byte [ebp + 0x18], bl
je 0x105a597
push dword [ebp + 0x14]
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0x101217c
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [ebp - 0x270], eax
jmp 0x105a9bf
cmp eax, 0xffffffff
je 0x105a9e0
mov eax, dword [ebp - 0x268]
cmp eax, dword [ebp - 0x270]
je 0x105a9e0
cmp eax, 0x100
jne 0x105a8d9
mov eax, dword [ebp - 0x264]
cmp eax, 0x28
jne 0x105a63a
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01057bf2
test al, al
jne 0x105a9bf
push 0xfffffffffffffff0
push dword [ebp - 0x26c]
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xf
cmp eax, 9
je 0x105a612
cmp eax, 4
jne 0x105a637
push ebx
push dword [ebp - 0x26c]
push dword [ebp - 0x248]
call dword [sym.imp.USER32.dll_GetNextDlgGroupItem]
mov esi, eax
push esi
push dword [ebp - 0x26c]
call fcn.01057b27
test al, al
jne 0x105a699
push ebx
jmp 0x105a6a1
cmp eax, 0x26
jne 0x105a6b1
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01057bf2
test al, al
jne 0x105a9bf
push 0xfffffffffffffff0
push dword [ebp - 0x26c]
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xf
cmp eax, 9
je 0x105a673
cmp eax, 4
jne 0x105a69f
push 1
push dword [ebp - 0x26c]
push dword [ebp - 0x248]
call dword [sym.imp.USER32.dll_GetNextDlgGroupItem]
push dword [ebp - 0x26c]
mov esi, eax
push esi
call fcn.01057b27
test al, al
je 0x105a69f
push esi
jmp 0x105a79e
push 1
push dword [ebp - 0x248]
call fcn.01057b5d
jmp 0x105a9bf
cmp eax, 0x25
je 0x105a6bf
cmp eax, 0x27
jne 0x105a7a9
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01057bf2
test al, al
jne 0x105a9bf
mov esi, dword [ebp - 0x26c]
call fcn.010579be
test al, al
je 0x105a7a9
xor eax, eax
cmp byte [0x1098640], bl
sete al
push eax
push dword [ebp - 0x26c]
push dword [ebp - 0x248]
call dword [sym.imp.USER32.dll_GetNextDlgTabItem]
cmp dword [ebp - 0x264], 0x25
mov edi, eax
jne 0x105a744
mov esi, dword [ebp - 0x26c]
lea eax, [ebp - 0x290]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x2a0]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x290]
cmp eax, dword [ebp - 0x2a0]
jl 0x105a79d
xor eax, eax
cmp byte [0x1098640], bl
setne al
push eax
push dword [ebp - 0x26c]
push dword [ebp - 0x248]
call dword [sym.imp.USER32.dll_GetNextDlgTabItem]
cmp dword [ebp - 0x264], 0x27
mov edi, eax
jne 0x105a7a9
mov esi, dword [ebp - 0x26c]
lea eax, [ebp - 0x2c0]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x2b0]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x2c0]
cmp eax, dword [ebp - 0x2b0]
jle 0x105a7a9
push edi
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x105a9bf
cmp dword [ebp - 0x264], 0x25
je 0x105a7bb
cmp dword [ebp - 0x264], 0x27
jne 0x105a7dd
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
call fcn.01057908
test al, al
jne 0x105a8c4
call fcn.01057a71
test al, al
jne 0x105a8c4
cmp dword [ebp - 0x264], 0x25
je 0x105a7ef
cmp dword [ebp - 0x264], 0x27
jne 0x105a869
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
cmp esi, ebx
je 0x105a9bf
push 0x100
lea eax, [ebp - 0x244]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameW]
test eax, eax
jle 0x105a9bf
mov ecx, 0x101259c
lea eax, [ebp - 0x244]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x105a84b
cmp dx, bx
je 0x105a847
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x105a84b
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x105a825
xor eax, eax
jmp 0x105a850
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x105a9bf
cmp byte [0x1098640], bl
je 0x105a869
push ebx
push ebx
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [ebp - 0x264], 0xa6
jne 0x105a88e
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01057bf2
push ebx
push ebx
push ebx
push ebx
push 0x1b
jmp 0x105a8a9
cmp dword [ebp - 0x264], 0xd
jne 0x105a98e
cmp byte [0x10986f4], bl
jne 0x105a8b9
push ebx
push ebx
push ebx
push ebx
push 0x20
push dword [ebp - 0x248]
call fcn.01054f07
jmp 0x105a9bf
mov byte [0x10986f4], bl
jmp 0x105a98e
cmp dword [ebp - 0x264], 0x25
push ebx
push ebx
push ebx
push ebx
jne 0x105a8d5
push 0x26
jmp 0x105a8a9
push 0x28
jmp 0x105a8a9
cmp eax, 0xff
jne 0x105a98e
cmp byte [ebp - 0x264], bl
jne 0x105a9e0
push 0x10
lea eax, [ebp - 0x24c]
push eax
push ebx
push 0x10000003
push dword [ebp - 0x260]
mov dword [ebp - 0x24c], ebx
call dword [sym.imp.USER32.dll_GetRawInputData]
push dword [ebp - 0x24c]
call fcn.0103472f
mov esi, eax
pop ecx
cmp esi, ebx
je 0x105a9e0
push 0x10
lea eax, [ebp - 0x24c]
push eax
push esi
push 0x10000003
push dword [ebp - 0x260]
call dword [sym.imp.USER32.dll_GetRawInputData]
cmp eax, dword [ebp - 0x24c]
jne 0x105a9d9
cmp dword [esi], 2
jne 0x105a9d9
cmp dword [esi + 0x10], 3
jne 0x105a987
cmp byte [esi + 0x18], 2
jne 0x105a987
cmp byte [esi + 0x19], 9
jne 0x105a987
cmp byte [esi + 0x1a], 2
jne 0x105a987
push ebx
push ebx
push ebx
push ebx
push 0xd
push dword [ebp - 0x248]
mov byte [0x10986f4], 1
call fcn.01054f07
push esi
call fcn.0103479e
pop ecx
lea eax, [ebp - 0x26c]
push eax
push dword [ebp - 0x248]
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x105a9bf
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, ebx
jne 0x105a5ad
jmp 0x105a9e0
push esi
call fcn.0103479e
pop ecx
mov esi, dword [ebp - 0x250]
push 1
push esi
call dword [sym.imp.USER32.dll_EnableWindow]
push dword [ebp - 0x248]
call dword [sym.imp.USER32.dll_DestroyWindow]
push 0xc
push 1
lea eax, [ebp - 0x280]
push eax
mov dword [ebp - 0x278], esi
call dword [sym.imp.USER32.dll_RegisterRawInputDevices]
mov ecx, dword [0x1098654]
cmp ecx, ebx
je 0x105aa22
mov eax, dword [ecx]
push 1
call dword [eax]
movzx eax, word [ebp - 0x264]
mov dword [0x1098654], ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01034b69
leave
ret 0x1c