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

Disassembly:
mov ecx, dword [esp + 8]
sub esp, 0x3c
push ebx
mov eax, dword [ecx + 0x2c]
shl eax, 5
push esi
mov ecx, dword [esp + 0x48]
push edi
mov ebx, dword [esp + 0x58]
push ebp
mov dword [esp + 0x30], 1
lea esi, [eax + ecx + 0x498]
mov dword [esp + 0x2c], 1
mov eax, dword [esi + 0x14]
dec eax
test eax, eax
jg 0x7f91a93a
xor eax, eax
shl eax, 2
mov ecx, dword [esi + 0x1c]
lea ebp, [eax + eax*4]
movsx edx, word [ebp + ecx + 8]
mov ebp, dword [esp + 0x54]
mov eax, dword [ebp + 0xc]
cmp eax, edx
jge 0x7f91a955
mov edx, eax
mov ecx, dword [esi + 0xc]
sub ecx, edx
cmp ebx, ecx
jl 0x7f91a960
mov ebx, ecx
test ebx, ebx
jg 0x7f91a966
xor ebx, ebx
add eax, ebx
mov ecx, dword [esp + 0x50]
push eax
push 0xffffffffffffffff
push ecx
call fcn.7f901e10
lea ecx, [esp + 0x24]
lea edx, [esp + 0x28]
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push ebx
push eax
push ecx
call fcn.7f901d30
mov dword [esp + 0x10], eax
test eax, eax
jge 0x7f91a9d0
mov eax, dword [esi + 0x14]
dec eax
test eax, eax
jg 0x7f91a9a1
xor eax, eax
mov dword [esp + 0x10], eax
shl eax, 2
mov ecx, dword [esp + 0x50]
mov ebx, dword [esi + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xe0]
sub eax, dword [ebx + edx]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x1c]
movsx ecx, word [eax + edx + 8]
mov ebx, dword [esi + 0xc]
sub ebx, ecx
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
sub eax, ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
shl ecx, 2
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x14], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x54]
add eax, edx
mov edx, dword [esp + 0x14]
mov edi, eax
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x20], eax
cmp edx, eax
jge 0x7f91aa65
mov eax, dword [esi + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x7f91aa65
mov dword [esp + 0x48], 3
movsx ecx, word [edi + 8]
mov eax, dword [esp + 0x20]
cdq
idiv dword [esp + 0x48]
cmp eax, ecx
jg 0x7f91aa42
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x1c]
add edi, 0x14
add eax, ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [edi - 0x14]
inc edx
add ebp, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
cmp eax, ecx
jl 0x7f91aa15
mov eax, dword [esp + 0x30]
test eax, eax
je 0x7f91aab6
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x7f91aab6
mov eax, dword [esp + 0x14]
test eax, eax
je 0x7f91aab6
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x7f91aaab
mov ecx, dword [esp + 0x54]
cmp dword [ecx + 0x14], ebx
jg 0x7f91aaab
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
movsx eax, word [eax + 8]
add eax, ecx
add ebx, eax
jmp 0x7f91a928
mov eax, dword [esp + 0x14]
add ebx, eax
jmp 0x7f91a928
xor edi, edi
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + 0x14]
cmp ebx, edx
je 0x7f91aaef
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x18]
sub eax, edi
mov dword [ecx + 0x28], ebp
mov edi, dword [esp + 0x24]
sub edx, ebx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edi
mov eax, dword [esp + 0x14]
mov edi, edx
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x14], ebx
mov eax, dword [esp + 0x64]
test eax, eax
je 0x7f91ab40
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x60]
test al, 4
je 0x7f91ab40
mov eax, dword [ecx + 0x74]
test ah, 0x20
je 0x7f91ab16
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x54]
add eax, dword [ecx + 8]
jmp 0x7f91ab43
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x2c]
cmp eax, 2
jl 0x7f91ab25
sub eax, 2
shl eax, 4
mov ecx, dword [esp + 0x50]
mov eax, dword [eax + ecx + 0x460]
mov ecx, 0x5a0
imul eax, dword [esi]
cdq
idiv ecx
jmp 0x7f91ab43
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x58]
sub eax, edx
inc eax
cmp eax, ecx
jl 0x7f91ab57
mov eax, ecx
test eax, eax
jg 0x7f91ab5d
xor eax, eax
mov ecx, dword [esp + 0x54]
mov esi, dword [ecx + 0x10]
sub esi, eax
je 0x7f91ab6b
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
sub eax, ecx
cmp eax, 0xfffffad4
jne 0x7f91acbb
test edi, edi
jne 0x7f91ab8c
test esi, esi
je 0x7f91acbb
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
mov dword [esp + 0x3c], eax
add eax, ebx
mov dword [esp + 0x44], eax
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
add eax, edx
mov dword [esp + 0x40], eax
cmp ebx, edi
jle 0x7f91ac0d
cmp esi, edx
jge 0x7f91ac0d
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ebx, eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x74]
test al, 0x20
jne 0x7f91abda
mov eax, dword [ecx]
mov ebp, dword [sym.imp.USER32.dll_HideCaret]
push eax
call ebp
lea eax, [esp + 0x38]
push 2
mov ecx, dword [esp + 0x54]
push 0
push ebx
push eax
push 0
mov edx, dword [ecx]
push edi
push esi
push edx
call dword [sym.imp.USER32.dll_ScrollWindowEx]
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x74]
test al, 0x20
jne 0x7f91ac22
mov eax, dword [ecx]
mov ebp, dword [sym.imp.USER32.dll_ShowCaret]
push eax
call ebp
jmp 0x7f91ac22
xor ebx, ebx
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x50]
push ebx
push eax
mov edx, dword [ecx]
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [esp + 0x38]
push ebx
mov ecx, dword [esp + 0x54]
push eax
push edi
push esi
push ecx
call fcn.7f91bda0
test ebx, ebx
je 0x7f91ac3f
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x50]
push 0
push ecx
call fcn.7f919f10
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x78]
test al, 0x40
jne 0x7f91ac5f
mov eax, dword [ecx]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x7f91acb1
test edi, edi
je 0x7f91ac88
mov ecx, dword [esp + 0x50]
push 0xffffffffffffffff
push 1
push ecx
call fcn.7f91b2b0
mov ecx, dword [esp + 0x50]
push 0x602
push ecx
call fcn.7f8ff980
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x7f91acb1
test esi, esi
je 0x7f91acb1
mov ecx, dword [esp + 0x50]
push 0xffffffffffffffff
push 0
push ecx
call fcn.7f91b2b0
mov ecx, dword [esp + 0x50]
push 0x601
push ecx
call fcn.7f8ff980
mov ecx, dword [esp + 0x50]
push ecx
call fcn.7f90b1a0
test edi, edi
jne 0x7f91accf
test esi, esi
jne 0x7f91accf
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x3c
ret 0x18
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x3c
ret 0x18