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

Disassembly:
push esi
push edi
push ebx
push ebp
push esi
mov edi, ecx
xor ebx, ebx
mov dword [edi + 0x78], ebx
lea ebp, [edi + 0x24]
mov dword [edi + 0x74], ebx
mov eax, dword [ebp + 8]
test eax, eax
mov edx, dword [ebp]
jle 0x41e0d2
mov eax, ebx
mov ebx, edx
mov dword [esp], edi
mov esi, eax
test ebx, ebx
je 0x41e29d
mov ecx, ebx
mov ebx, dword [ebx]
mov edi, dword [ecx + 8]
push dword [edi + 0xc]
call fcn.00424e70
push edi
call fcn.00424e70
add esp, 8
inc esi
mov eax, dword [ebp + 8]
cmp esi, eax
jl 0x41e0a5
mov edi, dword [esp]
xor ebx, ebx
test eax, eax
jbe 0x41e105
mov ecx, dword [ebp]
test ecx, ecx
je 0x41e29d
mov edx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov dword [ebp], eax
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], ecx
dec eax
mov dword [ebp + 8], eax
jne 0x41e101
mov ecx, ebp
call fcn.004113d0
mov eax, dword [ebp + 8]
test eax, eax
ja 0x41e0d6
mov eax, dword [ebp + 0xc]
test eax, eax
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 0x10], ebx
je 0x41e12d
push eax
mov esi, dword [eax]
call fcn.0042592a
add esp, 4
mov eax, esi
test esi, esi
jne 0x41e115
mov dword [ebp + 0xc], 0
lea ebp, [edi + 0x3c]
inc dword [ebp + 0x20]
mov eax, dword [ebp]
test eax, eax
je 0x41e16a
mov ecx, dword [edi + 0x44]
test ecx, ecx
jbe 0x41e16a
mov edx, ebx
mov esi, edx
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x41e163
mov eax, ebx
mov ecx, ebp
push eax
mov ebx, dword [ebx + 8]
call fcn.00411450
test ebx, ebx
jne 0x41e14c
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x44]
inc esi
cmp esi, ecx
jb 0x41e145
xor ebx, ebx
push eax
call fcn.0042591f
add esp, 4
mov edx, dword [edi + 0x5c]
test edx, edx
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x40], ebx
je 0x41e1b4
mov eax, dword [edi + 0x64]
test eax, eax
mov dword [edi + 0x68], 0
je 0x41e1aa
mov ebx, edx
push eax
mov ebp, dword [eax]
call fcn.0042592a
add esp, 4
mov eax, ebp
test ebp, ebp
jne 0x41e190
mov dword [edi + 0x64], 0
mov edx, ebx
dec edx
mov dword [edi + 0x5c], edx
pop ecx
pop ebp
pop ebx
pop edi
pop esi
ret
movss xmm0, dword [0x4397fc]
pxor xmm3, xmm3
movaps xmm2, xmm0
divss xmm3, dword [edi + 0x48]
movaps xmm1, xmm3
cmpless xmm2, xmm3
cmpnltss xmm1, xmm0
andps xmm2, xmm0
movd ecx, xmm1
subss xmm3, xmm2
cvttss2si eax, xmm3
and ecx, 0x80000000
add eax, ecx
cmp eax, 0x11
jbe 0x41e293
inc ebx
mov ecx, dword [ebx*4 + 0x44ea60]
cmp eax, ecx
ja 0x41e1f5
cmp ecx, 0xffffffff
movaps xmm3, xmm0
movss xmm4, dword [edi + 0x50]
movaps xmm6, xmm0
cmovne eax, ecx
cvtsi2sd xmm1, eax
mov dword [edi + 0x44], eax
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x439720]
mov eax, SysReAllocStringLen
cvtsd2ss xmm1, xmm1
mulss xmm4, xmm1
mulss xmm1, dword [edi + 0x4c]
cmpless xmm3, xmm4
cmpless xmm6, xmm1
andps xmm3, xmm0
movaps xmm2, xmm4
movaps xmm5, xmm1
andps xmm6, xmm0
subss xmm4, xmm3
cmpnltss xmm2, xmm0
cmpnltss xmm5, xmm0
subss xmm1, xmm6
cvttss2si ebx, xmm4
movd ecx, xmm2
and ecx, eax
add ebx, ecx
movd ecx, xmm5
and ecx, eax
cvttss2si eax, xmm1
add eax, ecx
mov dword [edi + 0x54], ebx
cmp eax, 0x11
jae 0x41e28b
mov dword [edi + 0x58], 0
jmp 0x41e180
mov dword [ebp + 0x1c], eax
jmp 0x41e180
mov ecx, 0x11
jmp 0x41e201
push 0x80004005
call fcn.0041fe50
mov esi, esi
lea edi, [edi]
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x54
mov esi, ecx
mov ebx, dword [ebp + 0x14]
cmp dword [ebp + 0x1c], 0
jne 0x41e963
mov eax, dword [ebp + 0xc]
cmp eax, 1
je 0x41e971
cmp eax, 2
je 0x41e931
cmp eax, 7
je 0x41e8ce
cmp eax, 8
je 0x41e864
cmp eax, 0xf
je 0x41e825
cmp eax, 0x14
je 0x41e80b
cmp eax, 5
je 0x41e744
cmp eax, 0x87
je 0x41e704
cmp eax, 0x100
je 0x41e6c9
cmp eax, 0x201
je 0x41e68a
cmp eax, 0x203
je 0x41e5a1
cmp eax, 0x204
je 0x41e52c
cmp eax, 0x115
je 0x41e3f3
cmp eax, 0x20a
je 0x41e389
cmp eax, 0x20
jne 0x41e963
mov dword [esp + 0x4c], 1
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x41e963
xor eax, eax
lea ecx, [esp + 4]
mov ebx, 1
mov dword [esp + 0x4c], ebx
lea edi, [esp]
mov dword [esp], eax
mov dword [esp + 4], eax
push ecx
push edi
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetScrollRange]
push 1
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetScrollPos]
push 1
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetScrollPos]
xor edx, edx
add eax, 0xffffffd8
push ebx
cmovs eax, edx
push eax
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetScrollPos]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 1
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x41e95a
mov dword [esp + 0x4c], 1
push ebx
mov edx, dword [ebp + 0x10]
push edx
push eax
push dword [esi + 4]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_CallWindowProcA]
xor eax, eax
lea ecx, [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], edx
push ecx
push eax
push 1
mov edi, dword [ebp + 0x10]
push dword [esi + 4]
movzx edi, di
call dword [sym.imp.USER32.dll_GetScrollRange]
push 1
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetScrollPos]
mov edx, dword [esp + 0x3c]
cmp edi, 5
ja case.default.0x41e453
mov ecx, dword [edi*4 + 0x43a280]
jmp ecx
test ebx, ebx
jne 0x41e45c
mov ebx, dword [esi + 4]
mov dword [esp + 0x1c], 0x1c
lea eax, [esp + 0x1c]
mov dword [esp + 0x20], 0x10
push eax
push 1
push ebx
call dword [sym.imp.USER32.dll_GetScrollInfo]
push 0
push dword [esp + 0x38]
push 1
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetScrollPos]
jmp case.default.0x41e453
test ebx, ebx
jne 0x41e494
mov ebx, dword [esi + 4]
mov dword [esp], 0x1c
lea eax, [esp]
mov dword [esp + 4], 0x10
push eax
push 1
push ebx
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, 1
push eax
push dword [esp + 0x1c]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetScrollPos]
jmp case.default.0x41e453
cmp eax, edx
jge 0x41e507
jmp 0x41e9fb
test eax, eax
jle 0x41e507
mov edx, 0x32
cmp eax, 0x32
cmovl edx, eax
mov ecx, 1
push ecx
sub eax, edx
push eax
push ecx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetScrollPos]
push 1
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [eax], 0
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
xor ecx, ecx
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x4c], 1
mov dword [esp + 8], 3
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0x43ac34
mov dword [esp + 0x18], ecx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetParent]
lea edx, [esp]
push edx
push dword [esi + 0x6c]
push 0x4e
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [eax], 0
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
xor eax, eax
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov dword [esp], 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 4], eax
mov dword [esp + 8], 2
push ecx
call dword [sym.imp.USER32.dll_SetRectEmpty]
xor eax, eax
mov ecx, dword [esi + 0x70]
mov dword [esp + 0x24], eax
cmp ecx, 0xffffffff
mov dword [esp + 0x28], eax
je 0x41e616
mov eax, ecx
xor edx, edx
mov edi, dword [esi + 0x44]
div edi
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x41e616
mov eax, dword [eax + edx*4]
test eax, eax
je 0x41e616
cmp ecx, dword [eax + 0xc]
je 0x41ea20
mov eax, dword [eax + 8]
test eax, eax
jne 0x41e606
mov edx, 0xffffffff
xor eax, eax
mov dword [esp + 0x3c], edx
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 0x6c]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x38], 4
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetParent]
lea edx, [esp + 0x30]
push edx
push dword [esi + 0x6c]
push 0x4e
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [eax], 0
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov dword [esp + 0x4c], 1
lea edx, [esp + 0x4c]
push edx
push ebx
mov ebx, dword [ebp + 0x10]
mov ecx, esi
push ebx
push eax
call fcn.0041eb10
mov eax, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [eax], 0
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov dword [esp + 0x4c], 1
lea edx, [esp + 0x4c]
push edx
push ebx
mov ebx, dword [ebp + 0x10]
mov ecx, esi
push ebx
push eax
call fcn.0041ee00
mov edx, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [edx], eax
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov dword [esp + 0x4c], 1
push ebx
mov edx, dword [ebp + 0x10]
push edx
push eax
push dword [esi + 4]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_CallWindowProcA]
mov edx, dword [ebp + 0x18]
or eax, 0x81
cmp dword [esp + 0x4c], 0
mov dword [edx], eax
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x18]
test eax, eax
mov dword [esp + 0x4c], 1
je 0x41e768
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [esi + 4]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_CallWindowProcA]
xor eax, eax
lea edi, [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
push edi
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x28]
mov ecx, esi
mov edx, dword [esp + 0x24]
sub eax, dword [esp + 0x20]
sub edx, dword [esp + 0x1c]
mov dword [esi + 0x80], eax
mov dword [esi + 0x7c], edx
call fcn.0041f370
mov eax, dword [esi + 0x78]
xor edx, edx
mov ecx, dword [esi + 0x80]
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp], 0x1c
lea edi, [esp]
mov dword [esp + 4], 3
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
push eax
push edi
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov eax, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [eax], 0
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov edx, dword [ebp + 0x18]
mov eax, 1
mov dword [edx], 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov dword [esp + 0x4c], 1
lea edx, [esp + 0x4c]
push edx
push ebx
mov ebx, dword [ebp + 0x10]
mov ecx, esi
push ebx
push eax
call fcn.00420fc0
mov eax, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [eax], 0
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esi + 0x70]
cmp ecx, 0xffffffff
mov dword [esi + 0x84], 0
je 0x41e95a
mov eax, ecx
xor edx, edx
mov ebx, dword [esi + 0x44]
div ebx
mov eax, dword [esi + 0x3c]
test eax, eax
mov dword [esp + 0x4c], 1
je 0x41e8a9
mov eax, dword [eax + edx*4]
test eax, eax
je 0x41e8a9
cmp ecx, dword [eax + 0xc]
je 0x41eaa5
mov eax, dword [eax + 8]
test eax, eax
jne 0x41e899
xor eax, eax
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
lea eax, [esp]
push 1
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x41e95a
mov ecx, dword [esi + 0x70]
cmp ecx, 0xffffffff
mov dword [esi + 0x84], 1
je 0x41e95a
mov eax, ecx
xor edx, edx
mov ebx, dword [esi + 0x44]
div ebx
mov eax, dword [esi + 0x3c]
test eax, eax
mov dword [esp + 0x4c], 1
je 0x41e90f
mov eax, dword [eax + edx*4]
test eax, eax
je 0x41e90f
cmp ecx, dword [eax + 0xc]
je 0x41ead8
mov eax, dword [eax + 8]
test eax, eax
jne 0x41e8ff
xor eax, eax
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
lea eax, [esp]
push 1
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x41e95a
mov ecx, esi
mov dword [esp + 0x4c], 1
call fcn.0041e080
push dword [esi + 0x90]
call dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x41e95a
mov dword [esi + 0x90], 0
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
xor eax, eax
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x18]
test eax, eax
mov dword [esp + 0x4c], 1
je 0x41e99e
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [esi + 4]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_CallWindowProcA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x41e9a0
jmp 0x41e9da
xor ebx, ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov edx, dword [0x439808]
mov ecx, dword [esi + 4]
mov dword [esp + 8], edx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esi + 0x6c], eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetParent]
lea edx, [esp]
push edx
push dword [esp + 8]
push 0x4e
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [eax], ebx
je 0x41e963
mov eax, 1
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
sub edx, eax
mov ecx, 0x32
mov ebx, 1
cmp edx, 0x32
push ebx
cmovge edx, ecx
add eax, edx
push eax
push ebx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetScrollPos]
jmp case.default.0x41e453
cmp ecx, dword [eax]
jne 0x41e60f
mov edi, dword [eax + 4]
test edi, edi
je 0x41e616
mov eax, ebx
lea ecx, [edi + 0x14]
shr eax, 0x10
movzx edx, bx
push eax
push edx
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x41ea59
mov eax, dword [esp + 0x24]
mov edx, 0xffffffff
jmp 0x41e61d
movsd xmm0, qword [edi]
mov edx, dword [esi + 0x70]
movsd qword [esp], xmm0
movsd xmm1, qword [edi + 8]
movsd qword [esp + 8], xmm1
movsd xmm2, qword [edi + 0x10]
movsd qword [esp + 0x10], xmm2
movsd xmm3, qword [edi + 0x18]
movsd qword [esp + 0x18], xmm3
movsd xmm4, qword [edi + 0x20]
movsd qword [esp + 0x20], xmm4
movsd xmm5, qword [edi + 0x28]
movsd qword [esp + 0x28], xmm5
mov eax, dword [esp + 0x24]
jmp 0x41e61d
cmp ecx, dword [eax]
jne 0x41e8a2
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x41e8a9
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov edx, dword [ebx + 0x18]
mov dword [esp + 4], edx
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 8], ecx
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0xc], ebx
jmp 0x41e8ba
cmp ecx, dword [eax]
jne 0x41e908
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x41e90f
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov edx, dword [ebx + 0x18]
mov dword [esp + 4], edx
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 8], ecx
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0xc], ebx
jmp 0x41e920