Function at 0x109b463
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 [0x10c671c]
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 [0x10d2574], bl
jne 0x109b4d7
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 [0x10d2558]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
push ebx
mov edi, eax
call esi
mov eax, edi
jmp 0x109bb9b
mov eax, dword [ebp + 0x1c]
mov dword [0x10d2518], eax
mov eax, 0x109b273
cmp ecx, eax
je 0x109b4f6
mov dword [0x10d2570], ecx
mov dword [ebp - 0x24c], eax
jmp 0x109b4fc
mov dword [0x10d2570], ebx
push 5
push edx
push dword [0x10d2558]
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x248], ebx
cmp eax, ebx
je 0x109b67e
push eax
push dword [0x10d2558]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x270], eax
cmp eax, ebx
je 0x109b67e
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
cmp edi, ebx
je 0x109b668
push edi
call fcn.01099008
mov esi, eax
cmp esi, dword [0x10d25b8]
jl 0x109b57e
mov eax, dword [0x10d25b4]
cmp eax, ebx
je 0x109b565
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea eax, [esi + 0x3e8]
push eax
push 0x40
mov dword [0x10d25b8], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x10d25b4], eax
mov eax, dword [0x10d25b4]
cmp eax, ebx
je 0x109b668
cmp esi, dword [0x10d25b8]
jge 0x109b668
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 [0x10d25b4]
call fcn.010990e6
test al, al
je 0x109b641
push 1
call fcn.01098eb3
push dword [0x10d2554]
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 [0x10d2554]
fdivr qword [0x1034738]
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 fcn.01075c40
movzx eax, ax
push eax
lea eax, [ebp - 0x44]
push eax
push dword [0x10d25b4]
call fcn.0109913a
push dword [ebp + 0x20]
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
push dword [0x10d25b4]
push dword [0x10d2558]
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 0x109b6a7
push dword [ebp + 0x20]
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
push dword [ebp - 0x274]
push dword [0x10d2558]
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 0x109b703
push dword [ebp + 0x14]
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0x10342f0
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [ebp - 0x270], eax
jmp 0x109bb2b
cmp eax, 0xffffffff
je 0x109bb4c
mov eax, dword [ebp - 0x268]
cmp eax, dword [ebp - 0x270]
je 0x109bb4c
cmp eax, 0x100
jne 0x109ba45
mov eax, dword [ebp - 0x264]
cmp eax, 0x28
jne 0x109b7a6
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01098b4e
test al, al
jne 0x109bb2b
push 0xfffffffffffffff0
push dword [ebp - 0x26c]
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xf
cmp eax, 9
je 0x109b77e
cmp eax, 4
jne 0x109b7a3
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.01098a83
test al, al
jne 0x109b805
push ebx
jmp 0x109b80d
cmp eax, 0x26
jne 0x109b81d
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01098b4e
test al, al
jne 0x109bb2b
push 0xfffffffffffffff0
push dword [ebp - 0x26c]
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xf
cmp eax, 9
je 0x109b7df
cmp eax, 4
jne 0x109b80b
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.01098a83
test al, al
je 0x109b80b
push esi
jmp 0x109b90a
push 1
push dword [ebp - 0x248]
call fcn.01098ab9
jmp 0x109bb2b
cmp eax, 0x25
je 0x109b82b
cmp eax, 0x27
jne 0x109b915
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01098b4e
test al, al
jne 0x109bb2b
mov esi, dword [ebp - 0x26c]
call fcn.0109891a
test al, al
je 0x109b915
xor eax, eax
cmp byte [0x10d2508], 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 0x109b8b0
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 0x109b909
xor eax, eax
cmp byte [0x10d2508], 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 0x109b915
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 0x109b915
push edi
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x109bb2b
cmp dword [ebp - 0x264], 0x25
je 0x109b927
cmp dword [ebp - 0x264], 0x27
jne 0x109b949
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
call fcn.01098864
test al, al
jne 0x109ba30
call fcn.010989cd
test al, al
jne 0x109ba30
cmp dword [ebp - 0x264], 0x25
je 0x109b95b
cmp dword [ebp - 0x264], 0x27
jne 0x109b9d5
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
cmp esi, ebx
je 0x109bb2b
push 0x100
lea eax, [ebp - 0x244]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameW]
test eax, eax
jle 0x109bb2b
mov ecx, 0x1034714
lea eax, [ebp - 0x244]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x109b9b7
cmp dx, bx
je 0x109b9b3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x109b9b7
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x109b991
xor eax, eax
jmp 0x109b9bc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x109bb2b
cmp byte [0x10d2508], bl
je 0x109b9d5
push ebx
push ebx
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [ebp - 0x264], 0xa6
jne 0x109b9fa
push dword [ebp - 0x248]
push dword [ebp - 0x26c]
call fcn.01098b4e
push ebx
push ebx
push ebx
push ebx
push 0x1b
jmp 0x109ba15
cmp dword [ebp - 0x264], 0xd
jne 0x109bafa
cmp byte [0x10d25bc], bl
jne 0x109ba25
push ebx
push ebx
push ebx
push ebx
push 0x20
push dword [ebp - 0x248]
call fcn.01096f50
jmp 0x109bb2b
mov byte [0x10d25bc], bl
jmp 0x109bafa
cmp dword [ebp - 0x264], 0x25
push ebx
push ebx
push ebx
push ebx
jne 0x109ba41
push 0x26
jmp 0x109ba15
push 0x28
jmp 0x109ba15
cmp eax, 0xff
jne 0x109bafa
cmp byte [ebp - 0x264], bl
jne 0x109bb4c
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.01075501
mov esi, eax
pop ecx
cmp esi, ebx
je 0x109bb4c
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 0x109bb45
cmp dword [esi], 2
jne 0x109bb45
cmp dword [esi + 0x10], 3
jne 0x109baf3
cmp byte [esi + 0x18], 2
jne 0x109baf3
cmp byte [esi + 0x19], 9
jne 0x109baf3
cmp byte [esi + 0x1a], 2
jne 0x109baf3
push ebx
push ebx
push ebx
push ebx
push 0xd
push dword [ebp - 0x248]
mov byte [0x10d25bc], 1
call fcn.01096f50
push esi
call fcn.0109c587
pop ecx
lea eax, [ebp - 0x26c]
push eax
push dword [ebp - 0x248]
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x109bb2b
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 0x109b719
jmp 0x109bb4c
push esi
call fcn.0109c587
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 [0x10d251c]
cmp ecx, ebx
je 0x109bb8e
mov eax, dword [ecx]
push 1
call dword [eax]
movzx eax, word [ebp - 0x264]
mov dword [0x10d251c], ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0107591b
leave
ret 0x1c