Function at 0x44b9f0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [0x51e080]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp + 0x10]
cmp edi, 0x113
ja 0x44bbcf
je 0x44bbc0
cmp edi, 0xf
ja 0x44bb8d
je 0x44bb72
sub edi, 1
je 0x44ba8f
sub edi, 7
jne case.0x44bbfa.278
cmp dword [esi + 0x18c], edi
je 0x44ba62
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esp + 0xc]
push 0x2f
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [esi + 0x18c], edi
mov ecx, esi
call fcn.00446ca0
mov edi, dword [ebp + 0x14]
push edi
push ebx
push dword [ebp + 0xc]
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_DefWindowProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esi + 0x78], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [esi + 0x54], eax
mov dword [esi + 0x154], 0
mov dword [esi + 0x158], 0
mov dword [esi + 0x15c], 0
jbe 0x44bb07
xor edi, edi
xor ebx, ebx
push 0
push dword [0x5223f8]
push 0
push eax
push 0
push 0
push 0
push 0
push 0x46800202
push 0
push str.SysHeader32
push 0
call ecx
mov ecx, dword [esi + 0x144]
lea edi, [edi + 4]
inc ebx
mov dword [edi + ecx - 4], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [sym.imp.USER32.dll_CreateWindowExW]
cmp ebx, dword [esi + 0x78]
jb 0x44bac4
mov ebx, dword [ebp + 0x10]
push 0
push dword [0x5223f8]
push 0
push eax
push 0
push 0
push 0
push 0
push 0x56000000
push 0
push str.ScrollBar
push 0
call ecx
push esi
push dword [0x5223f8]
mov dword [esi + 0x148], eax
push 0
push dword [esi + 0x54]
push accept
push accept
push accept
push accept
push accept
push str.pd_tooltip
push str.pd_tooltip
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [esi + 0x14c], eax
jmp case.0x44bbfa.278
call fcn.00449ab0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10
cmp edi, 0x4e
je 0x44bbaa
cmp edi, 0x100
jne case.0x44bbfa.278
push ecx
push ebx
call fcn.0044aec0
jmp case.0x44bbfa.278
mov edi, dword [ebp + 0x14]
test ebx, ebx
jne 0x44ba6c
push edi
call fcn.00449f70
jmp 0x44ba6c
mov edi, dword [ebp + 0x14]
push edi
push ebx
call fcn.0044b630
jmp 0x44ba6c
cmp edi, 0x2a3
ja case.0x44bbfa.278
je 0x44c210
add edi, 0xfffffeec
cmp edi, 0xf6
ja case.0x44bbfa.278
movzx eax, byte [edi + 0x44c250]
jmp dword [eax*4 + 0x44c220]
movzx eax, bx
cmp eax, 7
ja case.default.0x44bc0d
jmp dword [eax*4 + 0x44c348]
mov dword [esi + 0x128], 0
jmp 0x44bcb6
mov eax, dword [esi + 0x12c]
sub eax, dword [esi + 0x124]
inc eax
jmp 0x44bcb0
mov ecx, dword [esi + 0x128]
xor eax, eax
mov edi, dword [esi + 0x164]
mov edx, ecx
sub edx, edi
cmp ecx, edi
cmovae eax, edx
jmp 0x44bcb0
mov eax, dword [esi + 0x164]
add dword [esi + 0x128], eax
jmp 0x44bcb6
mov ecx, dword [esi + 0x128]
mov edx, dword [esi + 0x124]
cmp ecx, edx
jae 0x44bc73
xor ecx, ecx
mov dword [esi + 0x128], ecx
jmp 0x44bcb6
mov eax, edx
shr eax, 3
sub ecx, eax
mov eax, edx
shr eax, 2
sub ecx, eax
shr edx, 1
sub ecx, edx
mov dword [esi + 0x128], ecx
jmp 0x44bcb6
mov edx, dword [esi + 0x124]
mov ecx, edx
mov eax, edx
shr ecx, 3
shr eax, 2
add ecx, eax
shr edx, 1
add ecx, edx
add dword [esi + 0x128], ecx
jmp 0x44bcb6
mov eax, ebx
shr eax, 0x10
mov dword [esi + 0x128], eax
mov ecx, esi
call fcn.00449d30
mov eax, dword [esi + 0x15c]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x158]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x154]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esi + 0x54]
mov dword [esp + 0x38], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edi, dword [ebp + 0x14]
push edi
push ebx
push 0x412
push dword [esi + 0x14c]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x44ba6c
push ecx
push ebx
call fcn.0044a3b0
jmp case.0x44bbfa.278
cmp dword [esi + 0x190], 0
jne 0x44bd50
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], 0x10
mov dword [esp + 0x24], 2
call dword [sym.imp.USER32.dll_TrackMouseEvent]
mov dword [esi + 0x190], 1
push 0
push 0
push 0x411
push dword [esi + 0x14c]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp case.0x44bbfa.278
cmp dword [esi + 0x18c], 0
mov edi, dword [ebp + 0x14]
jne 0x44bcf6
push edi
push ebx
call fcn.0044b360
jmp 0x44bcf6
cmp dword [esi + 0x18c], 1
jne case.0x44bbfa.278
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esp + 0xc]
push 0x2f
push eax
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esi + 0x8c]
mov dword [esi + 0x18c], 0
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0xf0], 0
jbe 0x44bded
xor edi, edi
xor ebx, ebx
mov eax, dword [esi + 0x108]
lea edi, [edi + 4]
inc ebx
mov edx, dword [eax + edi - 4]
mov ecx, dword [edx + 0x28]
shr ecx, 1
xor ecx, dword [edx + 0x28]
and ecx, 1
mov dword [edx + 0x28], ecx
cmp ebx, dword [esi + 0xf0]
jb 0x44bdc6
mov ebx, dword [ebp + 0x10]
lea eax, [esi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, esi
call fcn.00449d30
mov eax, dword [esi + 0x15c]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x158]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x154]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esi + 0x54]
mov dword [esp + 0x38], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, esi
call fcn.00446d00
jmp case.default.0x44bc0d
mov edi, dword [ebp + 0x14]
test bl, 0xc
jne 0x44ba6c
cmp dword [esi + 0x18c], 0
jne 0x44bcf6
mov eax, edi
shr eax, 0x10
movsx ecx, ax
mov eax, dword [esi + 0x15c]
cmp ecx, eax
jl 0x44bcf6
sub ecx, eax
xor eax, eax
add ecx, 0xfffffffe
cmovns eax, ecx
xor edx, edx
add eax, dword [esi + 0x128]
div dword [esi + 0x164]
cmp eax, dword [esi + 0xf0]
jae 0x44bcf6
push 0
push 1
push 0x410
push dword [esi + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x44bcf6
cmp dword [esi + 0x18c], 0
jne case.default.0x44bc0d
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_SetFocus]
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_SetCapture]
push 0
push 0
push 0x410
push dword [esi + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp + 0x14]
lea ecx, [esi + 0x70]
movsx eax, dx
mov dword [ecx], eax
mov eax, edx
shr eax, 0x10
push ecx
push dword [esi + 0x54]
cwde
mov dword [esi + 0x74], eax
call dword [sym.imp.USER32.dll_ClientToScreen]
push 0
push 0x28
push 0x2f
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [esi + 0x18c], 2
jmp case.default.0x44bc0d
cmp dword [esi + 0x18c], 2
jne case.default.0x44bc0d
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esp + 0xc]
push 0x2f
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [esi + 0x18c], 0
jmp case.default.0x44bc0d
cmp dword [esi + 0x18c], 0
jne case.default.0x44bc0d
push dword [esi + 0x54]
mov dword [esp + 0x18], 0
call dword [sym.imp.USER32.dll_SetFocus]
mov edi, dword [ebp + 0x14]
mov eax, edi
shr eax, 0x10
movsx ecx, ax
mov eax, dword [esi + 0x15c]
cmp ecx, eax
jl 0x44bcf6
sub ecx, eax
xor eax, eax
add ecx, 0xfffffffe
cmovns eax, ecx
xor edx, edx
add eax, dword [esi + 0x128]
div dword [esi + 0x164]
mov dword [esp + 0x10], eax
lea eax, [esi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x10]
cmp edx, dword [esi + 0xf0]
jae 0x44c081
mov eax, dword [esi + 0x108]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x28]
shr ecx, 1
xor ecx, dword [eax + 0x28]
test cl, 1
jne 0x44bfda
mov ecx, esi
call fcn.0044ad90
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x108]
lea ecx, [esi + 0x168]
mov dword [esp + 0x10], 0
mov eax, dword [eax + edx*4]
mov dword [eax + 0x28], 1
mov eax, dword [esi + 0x108]
mov edx, dword [eax + edx*4]
add edx, 8
mov dword [esp + 0x18], edx
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x44c02c
mov eax, dword [esp + 0x10]
add edx, 4
inc eax
add ecx, 4
mov dword [esp + 0x10], eax
cmp eax, 8
jb 0x44c008
mov dword [esp + 0x14], 0
jmp 0x44c034
mov dword [esp + 0x14], 1
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov dword [esi + 0x168], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x16c], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x170], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x174], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x178], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x17c], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x180], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x184], eax
jmp 0x44c088
mov ecx, esi
call fcn.0044ad90
lea eax, [esi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 0x15c]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x158]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x154]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esi + 0x54]
mov dword [esp + 0x38], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, esi
call fcn.00446d00
cmp dword [esp + 0x14], 0
je 0x44bcf6
push 0
push 8
push 0x410
push dword [esi + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x44bcf6
cmp dword [esi + 0x18c], 0
jne case.default.0x44bc0d
lea eax, [esi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [esi + 0xf0]
xor edx, edx
test edi, edi
je 0x44c13b
mov eax, dword [esi + 0x108]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x28]
shr ecx, 1
xor ecx, dword [eax + 0x28]
test cl, 1
jne 0x44c14d
mov eax, dword [esi + 0x108]
inc edx
cmp edx, edi
jb 0x44c120
lea eax, [esi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.default.0x44bc0d
lea eax, [esi + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 2
push 0x410
push dword [esi + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp case.default.0x44bc0d
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x128]
shr eax, 0x10
cwde
cdq
sub eax, edx
mov edx, 0
sar eax, 1
sub ecx, eax
mov eax, dword [esi + 0x12c]
cmovns edx, ecx
sub eax, dword [esi + 0x124]
inc eax
mov ecx, esi
cmp edx, eax
cmovle eax, edx
mov dword [esi + 0x128], eax
call fcn.00449d30
mov eax, dword [esi + 0x15c]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x158]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x154]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esi + 0x54]
mov dword [esp + 0x38], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0
push 0
push 0x411
push dword [esi + 0x14c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x3c]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x10
mov dword [esi + 0x190], 0
jmp case.default.0x44bc0d