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

Disassembly:
sub esp, 0x30
push ebx
push esi
push edi
mov esi, ecx
call fcn.0043d6e3
test eax, 0x200000
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0x1c
mov dword [esp + 0x24], 7
je 0x41096c
mov eax, dword [esi + 0x40]
push ebp
mov ebp, dword [esi + 0x60]
xor bl, bl
cdq
idiv ebp
xor edi, edi
mov dword [esp + 0x2c], edi
mov ecx, eax
mov eax, dword [esi + 0x68]
dec ecx
lea edx, [eax - 1]
mov dword [esp + 0x30], ecx
cmp ecx, edx
jge 0x4108a5
mov eax, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov bl, al
mov eax, dword [esi + 0x48]
cmp eax, edi
je 0x4108ee
mov eax, dword [esi + 0x50]
mov ecx, esi
push eax
mov dword [esi + 0x48], edi
call fcn.004113c0
jmp 0x4108ee
mov edi, dword [esi + 0x48]
lea edx, [eax - 1]
sub ecx, eax
mov eax, edi
mov dword [esp + 0x34], edx
add ecx, 2
cdq
idiv ebp
cmp eax, ecx
jle 0x4108ec
test edi, edi
jle 0x4108ec
mov eax, dword [esi + 0x50]
sub edi, ebp
push eax
mov ecx, esi
mov dword [esi + 0x48], edi
call fcn.004113c0
mov edi, dword [esi + 0x48]
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + 0x68]
mov ebp, dword [esi + 0x60]
mov eax, edi
sub ecx, edx
cdq
idiv ebp
add ecx, 2
cmp eax, ecx
jg 0x4108bd
xor edi, edi
mov eax, dword [esi + 0x48]
pop ebp
cmp eax, edi
jge 0x4108f9
mov dword [esi + 0x48], edi
mov eax, dword [esi + 0x48]
push edi
cdq
idiv dword [esi + 0x60]
push 0x200000
push edi
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.0043d717
test bl, bl
jne 0x410938
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x20]
push 1
push edx
push 1
push eax
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov ecx, dword [esi + 0x1c]
push edi
push 1
push ecx
call dword [sym.imp.USER32.dll_EnableScrollBar]
jmp 0x41096e
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x20]
push 1
push eax
inc edx
push 1
push ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov edx, dword [esi + 0x1c]
push 3
push 1
push edx
call dword [sym.imp.USER32.dll_EnableScrollBar]
jmp 0x41096e
xor edi, edi
test dword [esp + 0xc], 0x100000
je 0x410a2b
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x28], edi
cmp eax, edi
je 0x4109a5
mov eax, dword [esi + 0x78]
neg eax
sbb eax, eax
and eax, 4
add eax, 5
jmp 0x4109a7
xor eax, eax
cmp dword [esi + 0x74], edi
je 0x4109b4
mov ecx, dword [esi + 0x60]
lea edx, [ecx + ecx*2]
jmp 0x4109b6
xor edx, edx
cmp dword [esi + 0x70], edi
je 0x4109c0
mov ecx, dword [esi + 0x60]
jmp 0x4109c2
xor ecx, ecx
mov ebx, dword [esp + 0x10]
add ecx, edx
add ecx, eax
mov eax, dword [esp + 0x18]
sub eax, ebx
mov dword [esp + 0x2c], ecx
cdq
idiv dword [esi + 0x80]
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x4109e7
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x20]
push 1
push edx
and ebx, 0xfffffffb
push edi
push eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x34], ebx
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov ecx, dword [esi + 0x80]
mov edx, dword [esp + 0x18]
imul ecx, dword [esp + 0x2c]
sub edx, dword [esp + 0x10]
cmp ecx, edx
jl 0x410a2b
mov eax, dword [esi + 0x1c]
push edi
push edi
push eax
call dword [sym.imp.USER32.dll_EnableScrollBar]
pop edi
pop esi
pop ebx
add esp, 0x30
ret